NeoMAD 3.7 release notes

November 17, 2014

New features

Starter Version

A new type of license has been introduced: “Starter version”.

Users of the starter version can use all the features of NeoMAD described with some restrictions:

  • the only available platforms are iOS and Android
  • a splash screen with the Neomades logo will be inserted at the launching of all the produced applications
  • the “specific code” feature is not available (see Platform specific code)

Prefer a full version to be free of these restrictions.

SlideScreen

A new com.neomades.app.SlideScreen screen allows to create applications with sliding menus like those made popular in the Google+, YouTube, and Facebook apps.

With this screen you can create 3 types of sliding menus:

  • slide menu with right menu only
  • slide menu with left menu only
  • slide menu with both left and right menus

In this version the SlideScreen is available only for Android and iOS. Next version will support other platforms.

Animations

The Animation API (defined in the com.neomades.ui.animation package) enables view timeline animation. An example AnimationExample has been added to show how to use this API.

Gestures

The Gesture API (defined in the com.neomades.gesture package) enables recognition of specific touch gestures like drag, pinch, tap.

In this version the Gestures are available only for Android and iOS. Next version will support other platforms.

Contacts

The Contact API (defined in the com.neomades.contact package) allows to pick a contact from the address book in order to edit it.

VideoView

A new com.neomades.ui.VideoView control allows to show and manage a Video track.

In this version the VideoView is available only for Android and iOS. Next version will support other platforms.

RichTextLabel

A new com.neomades.ui.RichTextLabel control allows to display text from HTML string.

In this version the RichTextLabel is available only for Android and iOS. Next version will support other platforms.

Pull to refresh

A new com.neomades.ui.listeners.PullToRefreshListener listener allows to show a “Pull to refresh” control in ListView.

In this version the “Pull to refresh” is available only for Android and iOS. Next version will support other platforms.

MapDirectionRequest

A new com.neomades.maps.MapDirectionRequest class allows to display route using the system map application (Google Map, Bing Map, iMap…).

ZoomView

A new com.neomades.ui.ZoomView control allows to display, zoom (with pinch-to-zoom) and scroll a nested view.

In this version the ZoomView is available only for Android and iOS. Next version will support other platforms.

ProgressBar

A new com.neomades.ui.ProgressBar control allows to display a progress indicator.

In this version the ProgressBar is available only for Android and iOS. Next version will support other platforms.

Android version management

For Android targets, three new attributes are now available in the URS: minSdkVersion, targetSdkVersion, maxSdkVersion. By default, minSdkVersion has 8 value, targetSdkVersion has 14 or later (depends on your Android SDK installation), maxSdkVersion is undefined. To change theses values, the URS file should specify part as follows:

<specific>
   <android minSdkVersion="8" targetSdkVersion="14" maxSdkVersion="15" />
</specific>

Third-Party Libraries

It is now possible to edit URS specific-code properties in order to insert third-party libraries for iOS (.framework, .dylib, .a) or Windows (.dll).

A new <specific> tag allows to set properties by platform.

Minor features

  • In TextLabel, the new setMaxLines() method allows to set a height limit.
  • In TextField, the new setReturnKeyType() method allows to set a Search button instead of Return.
  • In TextField, the new setReturnKeyListener() method allows to listen clicks from the Return key of the keyboard.
  • In HorizontalListView, the new setPagerMode() method allows to enable a ViewPager effect in the control.
  • In AbsListView, the new setFadingEdgeEnabled(), setFadingEdgeColor(), setFadingEdgeLength() methods allow to customize edges with fading colors.
  • In TabScreen, TabLayout, tab texts keep the native case (e.g. in Android tabs have upper case, in Windows Phone PanoramaItem text have lower case.

Deprecation

  • ANDROID22 to ANDROID44 targets have been depreciated and will be removed in the next version of NeoMAD. Please use the ANDROID target instead. If you need to target a specific version of Android, please use the new minSdkVersion, targetSdkVersion and maxSdkVersion parameters that are now available in the URS.
  • The TargetInfo.WINDOWS_PHONE_7 constant has been removed (use TargetInfo.WINDOWS_PHONE instead).
  • The TargetInfo.ANDROID_MINIMAL_VERSION constant has been removed.
  • The TargetInfo.ANDROID_MINIMAL_API_LEVEL constant has been removed.

Compatibility changes

For IPHONE, IPAD and IOS targets, the source code in the generated Xcode project is now organized in folders corresponding to the Java packages of your NeoMAD project source code. If your existing project uses specific code for iOS, either rearrange the files located in specific-impl/ios in dedicated package folders or use the packageFolderDisabled option in the URS to ensure backward compatibility, as follows:

<specific>
   <ios packageFolderDisabled="true" />
</specific>

Fixes

  • Fix the -z command line option when the path of the NeoMAD project contains whitespaces.
  • iOS
    • Fix memory leaks
    • Improve memory management when screens are popped
    • Fix ViewPager.setCurrentPage() bug when it was called many times with the same value (the pager was loading many times each page).
    • Fix View.setBackgroundImage(null) bug (the background was not cleared)
    • Fix NeoMAD command line result to NeoMAD Build FAILED when xcodebuild failed
    • Fix HttpRequest memory management with big downloads
    • Fix -s (launch emulator) option bug with XCode 6
  • Windows Phone
    • Fix WebView.setVerticalScroll(false), setHorizontalScroll(false) bugs (they did nothing)
    • Fix TextLabel content alignement bug when alignment is VCENTER or BOTTOM (it was always considered as TOP)
    • Fix System.out.println() to be visible in “Immediate” Windows of Visual Studio
    • Improve ViewPager performance