Cross-platform SDK and HTML5 tools for mobile app development

What's New in MoSync SDK 2.5

Our 2.5.Pyramid release introduces new APIs, runtime features, IDE improvements, application examples, and user guides. Here is a quick overview of what is new in this release.

Release Highlights

  • Widget API (Native UI) for iPhone (iOS) and Android devices* — access each platform's own user interface widgets using our new maWidget syscalls.
  • Support for OpenGL ES 1.0 on iPhone (iOS) and Android devices* — use OpenGL for Embedded Systems 1.0 to create a manipulate graphics.
  • Multitouch support for touchscreen devices — keep track of successive screen touches and respond to movement.
  • Program loading on Android devices — load another program from your MoSync Android application.
  • File API on Android devices — manage files from your MoSync Android application.
  • New example applications for beginners — heavily commented so that you can see how to build MoSync apps line-by-line.

* Not available on the MoSync emulator.

Important Change Since MoSync 2.4

  • In MAUI's WidgetSkin.h file we have moved the using namespace MAUtil declaration into the namespace MAUI declaration. This means that the MAUtil namespace is not explicitly visible to any program elements that include WidgetSkin.h. Some existing code may therefore fail to compile if it doesn't already explicitly declare the MAUtil namespace. An example of when this might occur is when you have used Moblet::run in your code, rather than the more correct MAUtil::Moblet::run. A simple solution is to put the declaration using namespace MAUtil; at the start of any file that fails to compile.
  • The MoSync slippy map library has been updated. Existing applications will need to be migrated if you want to compile them with MoSync 2.5. For a complete description of the new library see Using the MAP Library.

New Syscalls

We have implemented dozens of new syscalls. A brief summary is given below. All new syscalls are documented in the reference documentation included in the package.

On iPhone (iOS) and Android:

  • maWidget* — create and destroy Native UI widgets; manage layout, screen stacks, and widget properties. The available widgets include Screen,TabScreen, StackScreen, Button, Image, ImageButton, Label, EditBox, ListView, ListViewItem, CheckBox, HorizontalLayout, VerticalLayout, RelativeLayout, SearchBar, GLView,and WebView. GLView gives access to OpenGL.
  • maMessageBox — pop up a message box with information for the user.

On Android:

  • maHomeScreen* — listen for home screen events; add a shortcut to the home screen on the desktop.
  • maNotification* -- show your application on the notification bar.
  • maScreen* — set/lock screen orientation, display app fullscreen, listen for screen state events.

Support for all new syscalls will be added to the MoSync emulator in the near future.

New Event Types

All new event types are documented in the reference documentation included in the package.

  • WIDGET (parameters in the event give more information)

Updated Syscalls and Event Types

On all platforms:

  • maHttpCreate — HTTP PUT and DELETE methods added.

On iPhone (iOS) and Android:

  • All EVENT_TYPE_POINTER* events now have touchID to indicate successive touches (multitouch). Note that only some touchscreen devices support multitouch, and that the maximum number of touch points a device can handle varies: iPhone = 5, iPad = 11, HTC Wildfire = 3, Samsung Galaxy S = 5, LG Optimus 2X = 10, MoRE emulator = 2.

On Android:

  • File API implemented - manage files from your application.
  • maLoadProgram implemented - load another MoSync program from your application.

Updated Library Functions

  • MAUtil::BluetoothConnection::connect (url) — new connection method that accepts a Bluetooth URL.

Updated IDE Features and Tools

In MoSync SDK for Windows and MoSync SDK for OS X:

  • Support for path parameters (like %mosync-home%) so that full paths no longer need to be specified in each project's Build Settings.

In MoSync SDK for Windows:

New project templates, available in both versions of MoSync:

  • MoSync NativeUI Template
  • MoSync OpenGL Template

All project templates now contain a small sample of code so that they are immediately runable on an appropriate device. All templates have been revised in line with our Coding Conventions.

Eclipse have changed the way the hover function works. See:

New and Updated Example Applications

  • HelloNativeUI — a new example for iOS and Android devices, showing how to work with the platform's own screens and widgets.
  • HelloOpenGLES — a new example for iOS and Android devices, demonstrating the enormous power of OpenGL for Embedded Systems.
  • HelloWorld — our simplest app, now fully commented from head to toe.
  • HelloMoblet — our basic Moblet example, re-commented for beginners.
  • ScreenOrientation — a new example showing how to set, detect, respond to changes in the orientation of a device.
  • MultiTouch — a new example showing how to handle multitouch events like pinch, swipe and rotate.
  • HelloMAUI — a new example, introducing screen and widget handling using MoSync's MAUI library.
  • RockPaperScissors — a full application playing the traditional playground game using NativeUI.
  • Graphun — this complex application is a 3d graphical visualizer built with MoSync NativeUI and OpenGL.
  • BluetoothServer — a replacement example, showing how to make your application behave as a Bluetooth server.
  • BluetoothClient — a replacement example, showing how to make your application behave as a Bluetooth client.
  • NativeUIDemo — a full demostration of the capabilities of the MoSync NativeUI based on the Widget API.

Documentation for all examples is available at

New User Guides and Tutorials

We have an entirely new Developer Centre at our website from which you can access a huge range of tutorials, code examples, and resources.

Many of our existing user guides and tutorials have been updated and expanded for this release, including:

All documentation is available online at

Known Issues with MoSync 2.5

Issues Resolved Since MoSync 2.4 (r2425)

Details about every resolved issue can be found in our issue tracker.