Websites Navigation: Airbit | Shop | m-shell.net
Languages: EN | DE

Blog

mShell 3.07 Released

Wednesday, September 07, 2011, Jürg Bühler

Version 3.07 of mShell has been released and can be downloaded here.

This new release is mostly dedicated to compatibility with Symbian^3 and Symbian Anna devices.

New in this release:

  • cam2.icon() configures the view finder to return images as icons or to draw directly on the screen.

Since the beginning mShell has a good reputation because of its power and execution speed. Having m now on the latest Symbian devices with plenty of memory and fast CPUs makes mShell even more the choise for pasionate mobile app developers.

mShell 3.05 Released

Wednesday, April 07, 2010, Jürg Bühler

 Version 3.05 of mShell has been released and can be downloaded here.

This new release aids the development of professional looking standalone apps with neet features.

New in this release:

  • app.cature() registers a certain key event, for processing by ui.cmd, regardless
    whether m has the keyboard focus or not.
  • module calendar now supports to get or set the description field of an entry and its synchronisation mode (public, private, none).
  • new module cam2. Basically the same as module cam but with extended functionality like support for (auto) focus or setting the flash mode.
  • files.wait() waits for the contents of a directory being updated, i.e. a file in this
    directory being created, renamed, or deleted.
  • graph.show(x, y, degrees) has an optional third parameter to rotate the view in steps of 90 degrees.
  • system.lock() allows to get and set the system wide key lock state in a m script.
  • ui.form() does no longer silently ignore the dialog title on S60 devices, it will be displayed in the application title bar instead.
  • ui.label() allows to get/set the labels of the left and right soft button (S60) or the text in the application title bar. Together with flag ui.opt2, when declaring interest in keyboard events by means of ui.keys(), it's now possible to completely overwrite the standard behavior of the mShell soft keys.
  • better exception handling, especially in module async.
  • on S60 5th Ed devices the Return-key will be treated the same as the Go-key. Makes mShell better usable on devices with a keyboard, but no five way navigation button, like the Nokia N97 mini.

Make SIS with autostart option

Tuesday, September 01, 2009, Jürg Bühler

Make SIS has now the ability to create standalone m applications that launches automaticaly when the phone is booting. To make your app automatically start, just set the «Autostart:» option to «Enabled». The application has to be signed (DevCert-, Open- or Express-Signed) to make this feature work.

Furthermore Make SIS outputs now also the package file (.pkg) used to create the SIS file. Having the original package file eases the submission for Express Signed on symbiansigned.com.

mShell 3.04 Released

Thursday, July 09, 2009, Lukas Knecht

Version 3.04 of mShell has been released and can be downloaded here.

The new features are:

  • A debug module providing runtime debugging facilities.
  • A programming tools manual describing the debugging facilities, a documentation generator with source scanner module.
  • m add-ons: pure m modules for UIs, HTTP clients and other functions.
  • A new documentation format mdoc, describing the m add-ons.

The m add-ons come as .zip files which can be installed with the inbox2m script. They install into the ablib folder by default (make it part of your libpath).

The add-ons currently include:

  • mDocumenter: the mdoc documentation generator.
  • abgui (with abbasegui, abdialog, abfilegui): a user interface and application framework. We have successfully developed several commercial applications based on this framework. The mDocumenter documentation generation tool also uses it.
  • abhttp: a HTTP client with connection caching.
  • abutils: general utilities and generic properties (required by other add-ons).
  • msource: a generic m source scanner.

mShell 3.03 Released

Thursday, June 11, 2009, Lukas Knecht

Version 3.03 of mShell has been released and can be downloaded here.

This new release contains specific packages for S60 5th Edition devices, and supports keyboardless operation via the touch screen.

Other new features:

  • ui.opt1 and ui.opt2 flags to separately handle option keys on S60 devices.
  • ui.focus flag in ui.ptr() to forward pointer events to the application.
  • memio module for streams operating on in-memory buffers.
  • io.copy() copying data from one stream to another.
  • io.flush() also flushes the input buffer on seekable streams.
  • encoding.fromhtml() and encoding.tohtml() to encode and decode HTML character entities.
  • location.stop() to stop a location source (save power when not needing the GPS any longer).
  • math.isnan() and math.isinf() to check for specific IEEE 754 values.

mVNC for S60 5th Edition Available

Monday, June 08, 2009, Lukas Knecht

mVNC 2.02 now installs and runs flawlessly on S60 5th edition devices, e.g. the Nokia 5800 XpressMusic. The touch interface is fully supported, including handwriting recognition which allows to enter text by drawing it via the mouse.

mVNC for S60 5th Edition is part of the standard mVNC distribution which can be downloaded here.

mShell creates opportunities on app stores

Friday, May 29, 2009, Jürg Bühler

G-Meter main screen square white right bar G-Meter uses the built in accelerometer of the latest Nokia S60 devices to measure the current value and direction of G-force acting on the mobile phone. It models a traditional analog instrument and therefore ensures simple handling and maximum readability.

The application is entirely made with the freely available mobile development platform mShell (v3.02). The programming of this commercialy distributed app (Handango, Nokia OVI, airbit Web Shop) tooks little time, due to the power of mShell and its large standard library - for instance, module accel provides easy access to the built in accelerometer sensor that can be found on many latest Nokia phones running under Symbian OS, including volume modells like the N95_8GB.

The chalange was not really the programming or making the distribution file, it was more  the testing and providing all the promotional materials needed to publish an application on a commercial application store.

mVNC 2.02 Released

Thursday, April 23, 2009, Lukas Knecht

mVNC 2.02 is released and can be downloaded here. This is mostly a bug fix release, but has one major change: a new licensing scheme.

To use the free version, the license key 0 must be used and not 34.

To purchase the full version, please go to our brand new shop and get a license key. We accept PayPal, Visa and Master Card. To see what the differences are between the free and full version, refer to the product page.

Additionally the old serial numbers do not work anymore and a new license key has to be obtained. This can be done on the shop using your old serial number as a voucher. Follow these steps to get a new license key:

  • Go to this link and add one mVNC item to the cart. Note: you can only redeem one item at a time. If you have multiple serials, please repeat this process for every serial.
  • Checkout using your email or creating an account (optional).
  • When selecting your payment method, select "Redeem Voucher".
  • Enter your old serial number as the voucher,. You can use spaces or dashes or none at all.
  • Continue the transaction until you see the transaction details. There you will see the new license key. You will also recieve a confirmation email.

If you have any problems redeeming your voucher or purchasing a new license, please contact us at support [at] m-shell.net.

http://shop.airbit.ch/products/mvnc.aspx

 

mShell 3.02 Released

Wednesday, April 08, 2009, Lukas Knecht

Version 3.02 of mShell has been released and can be downloaded here.

Most important bugs fixed:

  • ui.keys(false, true) sometimes produced double strokes.
  • ui.form() did not preselect first item.
  • sleep() did not work with async.call().
  • array.sort() did not also sort the array keys.
  • location.get() threw ErrInUse after 255 calls.
  • ui.font() sometimes shrank font size on restore of old font specification.
  • Exiting a script with a pending async.call() could crash m.
  • Aborted io.write() followed by io.timeout() crashed m.

New features:

  • Added navigation scan codes to module ui.
  • Added ui.keys() variant to simultaneously support keys presses, releases and strokes, and to allow key handling before the application sees them.
  • Added module digest offering standard message digests (hashes).
  • Added module encoding encoding and decoding strings into and from standard formats.
  • Added an error traceback dialog to better follow runtime exceptions.
  • Replaced the registration transaction by a one way registration SMS. gsm.number cannot be obtained from the transaction response anymore, but must be set in the properties. It was never supported in standalone applications anyway.

Website changes:

  • Changed documentation links from numbered parts to more persistent title texts.
  • Streamlined Make SIS page.

Site has Moved

Friday, March 06, 2009, Lukas Bühler

Today we moved to the new server which is much faster than the old one. We also redesigned the whole site so that it's in the airbit look and feel. Hope you like it!

Following pages or services have changed or are removed:

  • Script download page will be moved to the forum. 
  • Web activation is discontinued.
  • Supported phones page is discontinued.
  • The mShell blog is much simpler, no more comments etc., because it was duplicating something that was already available through the forum. Make sure to update the RSS feed link as it has changed also. The relevant old posts were imported so that's why they have all the same date.

mShell 3.01 Released

Friday, March 06, 2009, Lukas Bühler

Version 3.01 of mShell has been released and can be downloaded here.

We would like to apologize for the unexpected delay, mostly caused by last minute changes due to compatibility issues on some platforms and newest firmware releases.

We are convinced this is the best m release ever, substantially enhancing the possibilities for m users. Enjoy! 

New features:

  • Static compilation option removes the need for installation of mEnvironment.sis on target devices, making deployment and signing of compiled applications much easier.
  • User properties and permissions are transferred to standalone application via .mex file.
  • Module Library search path allows searching for m modules in defined list of folders.
  • m Supervisor & Viewer is now a separate package also available for 3rd edition devices. m Supervisor allows running m at device startup and controlling it via SMS, m Viewer adds .m/.mm/.mex file type recognition.

New library modules and functions:

  • io.format() and io.printf() for formatted output
  • video.record() to record videos
  • ui.text() to support FEP editing in graphical UIs
  • light module to control device lighting [S60 3rd only]
  • mail module to send and receive e-mails using existing configurations (POP3 and IMAP4) [S60 3rd and UIQ3 only]
  • location module to obtain position and satellite data (if available) [S60 3rd only]
  • system.reboot() and system.shutdown() to reboot and power off the device

Major bugs fixed:

  • Fixed broken coding help. Help key moved from double left shift to Yes key.
  • Fixed video module on UIQ3.
  • Fixed accel module on N96 and Symbian 5th ed devices (new sensor API is used if available).
  • Fixed "use try" in compiled code.

mVNC 2.01 Released

Friday, March 06, 2009, Lukas Bühler

The long awaited update for mVNC is here. By now, mVNC has found wide spread acceptance as the ultimate remote view tool for symbian. Due to changes by Nokia, some of the devices experienced issues with the version 2.00, now, the ones we know of, should be fixed. The new version can be downloaded here.

Here's the release log:

  • 2.01-1: Added support for Nokia PC Suite version 7.
  • 2.01-2: Added configurable server priority.
  • 2.01-3: Added support for landscape (camera) mode on UIQ3.
  • 2.01-4: Numerous performance improvements.
  • 2.01-5: Added preferred network access point to network connection configurations.
  • 2.01-6: Added special keyboard support for specific S60 models (E90, N96).
  • 2.01-7: Made server configuration dialog easier to understand.
  • 2.01-8: Added support to connect and disconnect server from other applications.
  • 2.01-9: Set default passive network IP to root server address.
  • 2.01-10: Fixed truncated screen problem on N95, N95 8GB, N96.
  • 2.01-11: Fixed other bugs.

This fixes the often occuring problem when connecting with USB through the proxy.

Little Lives

Friday, March 06, 2009, Lukas Bühler

Little Lives is a very simple side-scrolling game written for mShell 3.0. It takes advantage of m's new object-oriented programming support, such as classes and inheritance. It is designed to show the power and speed of mShell on Symbian mobile devices, and furthermore the creative results a small m script can produce.

The game is built up around the Object class which contains two methods process() and paint(). The process() method is responsible for processing the objects logics, such as movement and simple AI. The paint() method is responsible for drawing the object on screen, including it's rotation and viewport offset. For each frame in the game, every living (active) object is processed and painted once.

The arrow keys on the mobile device control an on-screen cursor. The object .tadpole will always follow this cursor. Furthermore, moving the cursor off the edge of the screen will scroll the viewport. If available, the cursor may also be controlled using the phone's accelerometer.

The following objects have been implemented: DebugObject, Cursor, Ripple, Beam, Energy, WaterPlant, Food, Letter, WaterAnimal, Tadpole, AITadpole, RadioWave, EnergyBar and Fish.  

Please feel free to modify this script to your wishes and needs. Feedback is always appreciated.

Downloads 

LittleLives.m (38.85 kb)
Update: Current version supports phones without accelerometer module.

Screenshots

LitleLives Screenshot1   LitleLives Screenshot2

More about the Objects

View - used by most objects during thier paint() method for thier on-screen offset. This class does not offer any functionality (yet).
Map - contains all the objects within the game. objects is the superset of backgroundObjects, gameObjects and guiObjects. The objects are organized in such a way for easy and quick layering.
Object - the core class of the game. Every entity must extend this class. The two methods process() and paint() must be implemented by these subclasses. These methods are called on all living objects on every frame.
Cursor Object - displays a cross-hair cursor on screen. Used for influencing the .tadpole movement as well as controlling the viewport position.
Ripple Object - mimicks a single ripple moving through the water. Eventually fades away when reaching maxSize.
Beam Object - A horizontal and vertical beam flashes and dissappears slowly at the given x and y coordinates...
Energy Object - visual representation of energy consumption. Displayed when a tadpole eats some food and gains energy.
Water Plant Object - a simple floating water plant. This object drifts slowly in the water and is designed to be in a cluster.
Food Object - a randomly drifting piece of food which can be eaten by tadpoles. When a food is eaten, the tadpole gains in energy and size...
Letter Objects - represents a single character floating randomly onscreen. Use the function addLetterText(x,y,text) to display a series of these letters onscreen.
Water Animal - super class for any moving water animal. This class provides the functionality for moving through the water, wiggling tails and/or fins, navigating to a specific point, and accelerating/decelerating...
Tadpole Water Animal - represents a small tadpole. Tadpole is a WaterAnimal, thus it automatically knows how to move through the water and wiggle it's tail.
AI Tadpole Water Animal - a tadpole which can move by itself. This object either moves to a random location, to our own tadpole, or to a targetted random piece of food.
Fish Water Animal - a large fish water animal which can move through the water by itself. This object moves to either a random location or towards our own tadpole.
Energy Bar Object - A thin horizontal bar at the screen bottom which displays our tadpoles current energy. The bar dissappears after a short moment in order to enable a fuller gaming experience.
Radio Wave Object - a set of small radio waves which are dispersed at the given angle from the origin. 

mShell 3.0 Released

Friday, March 06, 2009, Lukas Bühler

Finally we can announce mShell v3.00 to the community. It's the most radical update so far and we are quite proud of the new features. Also apologies about the long wait; again and again we had to move back the release date due to other commercial projects that required our attention. The files can be downloaded on this site: http://www.m-shell.net/Download.aspx. Note that we outsourced the links and that the URL mshelldev.net will appear.

Enough the talking, here is the release log (as you can see it also contains other version numbers which were internal development cycles, but the current version includes all these points):

  • 2.03-1: Added OOP extensions.
  • 2.03-2: Added graph.size(text,bounds).
  • 2.03-3: Added graph.screen.
  • 2.03-4: Added video module.
  • 2.03-5: Increased I/O buffer size.
  • 2.03-6: Improved output of arrays, class instances, function references.
  • 2.03-7: Streamlined VM instruction set.
  • 2.03-8: Added ui.mode.
  • 2.03-9: Added Exif JPEG support to cam module.
  • 2.04-1: Added code externalization (Compile command) and ability to execute externalized code (.mex files).
  • 3.00-1: Refactored internals of mShell app to clarify separation.
  • 3.00-2: Changed semantics of proc.close, proc.runs and proc.stop if there is no such process.
  • 3.00-3: Extended semantics of proc.run.
  • 3.00-4: Separation into environment and IDE for standalone application support.
  • 3.00-5: Added mex2sis for sis generation.
  • 3.00-6: Added support for changeable document directory and subfolders.
  • 3.00-7: Added async module for asynchronous operation multiplexing.
  • 3.00-8: Added accel module for S60 3rd Edition.
  • 3.00-9: Added alpha channel support to module graph.
  • 3.00-10: Added graphclip.
  • 3.00-11: Added ui.xxxkey2 for UIQ four way navigation.
  • 3.00-12: Added support to load and display PNG files with alpha channel.
  • 3.00-13: Removed dynamic iwlib.dll on 2nd edition devices, which was sometimes causing conflicts with other SW depending on it.
  • 3.00-14: Removed net.adr without parameters (obsolete, use net.local).
  • 3.00-15: Rewrote directory synchronization to keep scripts always ordered.
  • 3.00-16: UI command cleanup.
  • 3.00-17: Fixed bugs.

What people have been waiting for the longest is a way to compile and distribute scripts, this is now also possible. On the phone .mex files can be created and then on a web service they can be compiled into .sis files which can be distributed. Here's the link to the service: http://www.m-shell.net/Makemsis.aspx

Important: Before you install version 3.00 uninstall previous versions of mShell. It avoids errors when installing the new version.

How To Make a SIS File (Video)

Friday, March 06, 2009, Lukas Bühler

Here's a video how to compile a m script.


The phone is a N95 8gb, with the self signed version of mShell 3.00 installed.

mShell Home  > Blog