NeoMAD 3.1 release notes

July 10, 2012

New Features

Supported targets

NeoMAD 3.1 introduces the highly anticipated support for iPhone through the IPHONE target, along with a new WINDOWSPHONE71 target to address phones running version 7.1 of the Windows Phone platform (both are available in the evaluation version).

Go to http://neomades.com/fr/liste-telephone.php to get an up-to-date list of targets supported by NeoMAD.

MAC OS compatible version

NeoMAD is now available for Windows and MAC OS.

The MAC OS version is especially needed to build applications for iPhone, as this process requires the use of the Xcode tool that is available only on this environment. However, Android and Java ME can also be fully addressed using the MAC version of NeoMAD. The support for Windows Phone targets is also partially covered (project generation only, no binary generation), while BlackBerry targets cannot be addressed with this version at the moment.

Please refer to the NeoMAD User Guide for more information. Especially, this document offers a compatibility matrix of the versions of NeoMAD.

Generating the project in the target platform format

NeoMAD automatically generates a project in the target platform format for targets that require a call to the NeoMAD transcompiler (that is to say non-Java targets). Thus, a Visual Studio or a Xcode project is generated when compiling a NeoMAD application respectively for Windows Phone and iOS targets. This project generation is part of the normal NeoMAD compilation process for these targets.

On the contrary, the NeoMAD compilation process for Java targets (Android, BlackBerry and Java ME) is fully integrated and there is no need for NeoMAD to create a project in the target platform to be able to generate the application binaries. However, this can be a very useful option, as not locking the users into a restrictive system is part of the NeoMAD philosophy.

That is why the new -gp (-generate-project) option allows to generate a project in the target platform format when compiling for Android targets. The support of this option for BlackBerry and Java ME targets will come in future releases.

Examples

IconsExample

As NeoMAD covers more and more targets and technologies, there are some specific requirements that become harder to deal with. Providing well sized and properly designed icon images is one of them, as each platform can have very precise guidelines to follow.

NeoMAD 3.1 comes with a new “IconsExample” sample application that shows how icons must be declared in the NeoMAD project in order to generate an application that will suit the requirements for all targeted platforms. A specific chapter about application icon images has also been added to the NeoMAD User Guide.

DemoGenericApi

“DemoGenericAPI” is a sample application aimed at demonstrating the power of the NeoMAD Generic API. This application presents most of the UI components offered by the Generic API, how they look on each platform and how they can be customized to fit specific needs.

Enhancements

CSV File

Language names, which are declared as column titles in the CSV file, must now be compliant with the ISO 639-1 norm, and can be followed by the region code in the ISO 3166-1 format (e.g. en, en-US, fr, fr-FR, fr-CA).

Generic API

Compatibility

The Generic API is now compatible with Java ME phones running CLDC 1.0, along with BlackBerry phones with an OS version lower than 5.0. For this latter ones, the NeoMAD Generic API for Java ME is used instead of the one for RIM, as they run a Java ME virtual machine too. This means that applications built for those targets will be Java ME applications (a .cod file can be generated anyway).

TargetInfo

New IOS, BLACKBERRY and JAVA_ME constants have been added to the TargetInfo interface, allowing the use of conditional coding on the platform for all targets (ANDROID and WINDOWS_PHONE_7 were already existing).

Android

Add the <supports-screens> tag into the Android manifest file generated by NeoMAD when compiling for a target with an API Level 4 or higher. This tag, introduced in Android 1.6, is used by the Android system to handle the application display properly on various screen configurations.

Windows Phone 7

Tile Image

Two icons are required for Windows Phone 7 compilation:

  • the application icon, which is displayed in the application menu of the phone
  • the application tile image, which is used to represent the application in Start

The application icon is declared in the usual <icon> tag of the URS file. The application tile image is declared using the new <windowsphone> sub-tag.

<icon path="res/icon.png">
   <windowsphone tilebackgroundpath="res/wp_tile_icon.png"/>
</icon>

Eclipse plugin

Add the possibility to handle the client ID and license key validation from the NeoMAD Eclipse plugin interface.

Fixed bugs

Here is the list of bugs that have been fixed since the previous release of NeoMAD.

Build chain

  • Simulators are now launched asynchronously to avoid blocking the NeoMAD process
  • Fix error in the target name display when using the -n option

Generic API

  • Generic API for Java ME:
    • Fix a bug when trying to exit the application
    • Fix bugs with the menu
    • Implement the setCancellable() and isCancellable() methods on Dialog
    • Fix the focus move with the keyboard when a menu is displayed
    • Optimization and minor bug fixes

Android

  • Fix resource path behavior for Android targets: NeoMAD used to keep extra-high and extra-large variations for all Android targets, but extra-high density was only introduced in API Level 8 and extra-large size in API Level 9
  • Rename the Android default.properties file to project.properties
  • Fix the project.properties file content (specify the build target as android-$ANDROID_API_LEVEL instead of $ANDROID_VERSION)

BlackBerry

  • Fix bug in the .cod file generation when using the suboutpath attribute of the <binaryname> tag in the URS file

Java ME

  • Do not add “MIDlet-Permissions: ” in the jad file when no permission is declared in the URS file
  • Fix -s option: display a warning if the simulator path declared in the simulators.properties file does not exist

Windows Phone 7

Application language

A Windows Phone application must declare a language in a Properties/AssemblyInfo.cs file (located in the generated project and binary). NeoMAD used to define “fr-FR” as the value for this element whatever the compilation language defined with the -l parameter. Now it uses the language name declared in the CSV file.

If the -m parameter is used to generate a multi-language application, only the first language is declared in the AssemblyInfo.cs file.

Application title

A Windows Phone application must declare a title in a Manifest file (located in the generated project and binary). NeoMAD used to define “Title” as the value for this element for all applications. Now it uses the application name declared in the URS file.

Eclipse plugin

  • Fix in order to take into account the modification of the neomad.properties file without restarting Eclipse

Upgrading from version 3.0

When upgrading to version 3.1, you need to adapt your projects in order to have full benefit from the new features and improvements brought by this new version.

CSV File

Language names must now be compliant with the ISO 639-1 norm, and can be followed by the region code in the ISO 3166-1 format (e.g. en, en-US, fr, fr-FR, fr-CA).

Make sure the language names declared in your NeoMAD projects meet this new requirement.

Windows Phone 7

For Windows phone, the application tile image is declared using the tilebackgroundpath attribute of the <windowsphone> tag. This modification is mandatory if you want to compile your NeoMAD project for a Windows Phone target. Please refer to the NeoMAD User Guide for more information about the icon images guidelines for Windows Phone.

Example of URS file declaring a Windows Phone tile icon:

<icon path="res/icon.png">
   <windowsphone tilebackgroundpath="res/wp_tile_icon.png"/>
</icon>