NeoMAD 4.1.3 release notes

January 10, 2017

NeoMAD 4.1.3 is a maintenance release proposing small enhancements and fixes.

Support of App Transport Security

From the 1st January 2017, Apple will enforce its ATS (App Transport Security) policy.

From the Apple documentation:

“On Apple platforms, a networking security feature called App Transport Security (ATS) is available to apps and is enabled by default. It improves privacy and data integrity by ensuring your app’s network connections employ only industry-standard protocols and ciphers without known weaknesses. This helps instill user trust that your app does not accidentally leak transmitted data to malicious parties.”

To be conformed with ATS, your mobile application connections and its server part must follow some specific requirements:

  • The HTTP connection must use HTTPS.
  • The negotiated Transport Layer Security (TLS) version of the contacted server must be TLS 1.2.
  • The digital certificate of the server must follow the X. 509 norm and must be trusted by a certificate authority.
  • The leaf server certificate must be signed with RSA or ECC keys.
  • The connection must use either the AES-128 or AES-256 symmetric cipher.

If a connection to a back end server cannot fulfill all the requirements, ATS can be bypassed by configuring the URS of the project. However, in that case, you will have to justify this in iTunes Connect when the application will be prepared for publication and Apple may reject the application.

For further details about ATS and its configuration, please refer to Network security.

## Text size is separated from Font

Because TTF font are vectoriel fonts, they do not need to be associated with a size.

New functions

  • setTextSize(int size) method, available on all views that support Font, will apply a size to the text of the view whatever is the font.

Deprecated functions

  • Font.createFont(Font font, int style, int size) -> use Font.createFont(Font font, int style) and ``setTextSize(int size)``instead
  • ResManager.getFont(int resId, int size) -> ``ResManager.getFont(int resId)``and ``setTextSize(int size)``instead
If setTextSize(int size) is not called on the view that use the font, a default size will applied be depending on the platform and the view type.

Fixes

  • Fix XML layout parsing: attributes were ignored in self-closing tags
  • Fix build crash that occured when there was annotations in the source code
  • Android
    • Fix HttpRequest to support TLS 1.2 on devices with an Android version lower than 4.4
  • Windows Phone
    • Fix DatePicker validate and cancel missing icons