Tiliman’s Weblog

January 1, 2010

OS Independent Mobile Software Development with MoSync

Introduction

MoSync is truely amazing platform for cross platform development for Mobile Phone Softwares. It comes as a full IDE based on Eclipse. It supports currently Windows Mobile, Symbian, Blackberry (Java),Moblin and J2ME. Support for iPhone,Maemo and Android is planned. MoSync was made opensource a while ago and seems to have very active developers. The best thing is that it creates a binary instead of creating some sort of virtual machine code and thus slowing down the whole application.

In my experience as much as 80% of code needs be ported between platforms. Symbian’s disregard of providing standard C API initially and later requirement to install OpenC on phones with your software, overall confusing the install process for user, made it sub-optimum to use OpenC. The userinterface coding takes a long time on most phones even if there is standard API for core system like IO/Network.

Now MoSync promises that you can make one UI code and use it on other phones, as well as MoSync API translates to Core OS API which means no need to spend time in porting at all.

Test Results on a few phones

This sounded too good to be true so I had to try and spend a night playing with it. The IDE is based on Eclipse. I tried their UI samples on HTC Diamond, Samsung Omnia and N82.

Here are my findings

  • There was no need to install each SDK for Symbian, Windows Mobile or Black berry.
  • The binaries are made per Mobile phone and not per OS.This is a little inconvenience as they are not always compatible on different phones running same OS as I found out with Samsung Omnia.

    HTC Diamond with MAUIEx sample displaying a grid of images

    HTC Diamond MoSync Main interface (Diamond has higher resolution than Omnia)

  • HTC Diamond binary was a native exe and when installed ran fine. Although the selection of items had to be done with keypad.
  • The same HTC Diamond Windows Mobile binary when installed on Samsung didn’t run and crashed. The cab was created by MoSync. This is strange as it is same OS.
  • The simple example which outputs keycodes when keys are pressed was not able to recognise back button on HTC Diamond.
    Omnia MoSync landscape didn't show properly

    Omnia MoSync landscape didn't show properly

    Omnia MoSync Main Screen MAUIEx sample (jar file)

  • When I compiled same code for Samsung Omnia, to my surprise, I got Java (jad/jar) files instead of native binaries. The UI ran fine but as it was not touch UI, I had to reboot phone.
  • The HTC Diamond exe took over whole of screen on Samsung Omnia before crashing and had the taskbar on top hidden. Icouldn’t get that taskbar back and had to reboot phone. This is very scaryif all UI apps built with MoSync do it. This would mean that Windows Mobile Certification test will fail as they require ability to go to “Today Screen”(main screen of phone) using Start menu. More on that later.

    N82 Symbian Native BInary MoSync MAUIEx Clock sample

    N82 Symbian Native binary running MAUIEx created using MoSync

  • The N82 was also a native binary that functioned pretty well as it is not a touch screen and soft-keys (keypad) was mapped perfectly fine.
  • The UI development with MoSync has same limitation where support for both touch UI and keypad UI has to be coded by developer making it less automatic porting.

Final Thoughts

All in all MoSync would reduce development time by reducing the code portability needed but the need to test on each phone is highly increased due to uncertain behavior of same app on different phones. Again stressing here on HTC Diamond Windows Mobile app not able to run on Omnia which almost never happens with traditional development. I will play more with MoSync and create more entries on blog if I find something interesting or contradicting to my these initial findings.

Advertisements

10 Comments »

  1. Hi Tiliman,

    Interesting blog you have here, and a great article. As one of the members of the MoSync dev team I’d like to hint that MoSync is continuously being improved and the main idea behind it is that you will get the same behaviour on any phone that it supports. In a few weeks we will be releasing a stable version which will have debugging support and much more. The version you tested did not have any support for orientation switching. Thus it didn’t render properly when the orientation was changed, but this is something that is in our roadmap along with many other things, and we’re working hard to get new releases out with more features.

    Best of regards,
    Ali

    Comment by Blitz — January 3, 2010 @ 6:17 pm

  2. Thanks Ali

    I should have spent more time with MoSync but I couldn’t resist writing about it as soon I was able to test the samples as it is indeed revolutionary for mobile software development.

    I will keep an eye on MoSync developments and enhancements.

    Comment by tiliman — January 3, 2010 @ 6:36 pm

  3. I completly understand. Keep up the good work Tiliman! =)

    Regards,
    Ali

    Comment by Blitz — January 4, 2010 @ 9:25 am

  4. Hey did you try our mobile apps developed on MITR. I would like someone evaluate us as well. You can download apps which have developed on MITR, MITR is another OS independent cross platform application development SDK.
    Thanks, and regards,
    Pradeep Singh

    Comment by Pradeep Singh — January 4, 2010 @ 1:42 pm

  5. Hi Pradeep

    I didn’t know about MITR at all. I am glad that you pointed that out. I will surely try it in next couple of days and create a post about it.

    This is getting interesting. A whole new way of development world is opening to me.

    Regards

    Faizan Naqvi (Tili)

    Comment by tiliman — January 4, 2010 @ 2:31 pm

  6. Hi,

    I’ve used similar products in the past for games development and they’ve generally suffered from being a lowest common denominator approach. That means you get a very average results, rather than getting the best from each handset.

    Do you think MoSync falls into this camp, or could you create highly graphical and responsive interfaces with it?

    Thanks

    Paul

    Comment by pb59 — February 4, 2010 @ 3:32 pm

  7. Hi

    The interfaces can be highly graphical and responsive. MoSync creates binary for each handset in native code which means it is fast enough. Having said that I don’t think MoSync is suitable for professional game development at all.

    We have used EdgeLib for game development and it is being a great platform doesn’t really support 3D rendering that well which makes it good for 2D games only.

    I tested AirplaySDK for game development and they seem to be able to take best out of any handset by selecting software renderer or GPU. We have not built any complete game with it as our current game was already in last stages of development but I can’t imagine doing game development without Airplay.

    Comment by tiliman — February 4, 2010 @ 4:00 pm

  8. Hi Tiliman,

    Thanks for your excellent post on MoSync. The SDK now has basic touch support in place, along with other improvements as well as Moblin/MeeGo and Andriod support.

    Looking forward to your findings!

    BR

    Alex

    Comment by Alex — March 9, 2010 @ 10:38 am

  9. hi,
    Can you provide me list of application which is stable and already developed by MoSync os.

    Comment by MALAY PARIKH — August 11, 2010 @ 8:51 am

    • Sorry. I don’t have any such list.

      Comment by tiliman — August 11, 2010 @ 8:57 am


RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Blog at WordPress.com.

%d bloggers like this: