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()
andisCancellable()
methods onDialog
- 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>