Skip to end of metadata
Go to start of metadata

Titanium SDK 7.0.0.GA - 8 December 2017

About this release

Titanium SDK 7.0.0.GA is a major release of the SDK, addressing high-priority issues from previous releases. Highlights for this release include integration of Hyperloop in the SDK core and introduction of Appcelerator Daemon.

Appcelerator Daemon

The Appcelerator Daemon is a server that runs on the developer's computer and hosts services which power the tooling for Axway products such as Titanium SDK. The Appcelerator Daemon aims to solve tooling issues by introducing a robust, flexible, and consistent foundation for implementing product tooling. It does this by providing plugins that define services which are exposed via the built-in web server to any HTTP, WebSocket, Node.js client, or shell script. The Appcelerator Daemon is designed to be highly decoupled. All product-specific logic is run inside a plugin while the Appcelerator Daemon provides core functionality to plugins such as file system watching and spawning subprocesses.

Notice of feature and behavior Changes 

  • Integrated Hyperloop into SDK core
    • TIMOB-25058 - Begin making hyperloop part of the core SDK (and using it for SDK development)
    • TIMOB-25059 - Add Hyperloop to pre-packaged native modules listing in the SDK
    • TIMOB-25060 - Build Android hyperloop against SDK 7.0.0 / v8 5.7+ 
  • TIMOB-25459 - Android: toImage method needs parity with iOS
    • The toImage method has changed for iOS with this release. Test case:

  • TIMOB-23958 - Remove deprecated Python and unused files
    • Removed Python dependency
  • TIMOB-24593 - TiAPI: Update Facebook-SDKs to 4.22, support Graph v2.9 
    • Update Android Facebook SDK to 4.20.0 and iOS Facebook SDK to 4.20.2

New features 

Android platform

  • TIMOB-17340 - TiAPI: Text - Add lineHeight property to Ti.UI.Label and Ti.Ui.TextArea
    • Added Ti.UI.ATTRIBUTE_BASELINE_OFFSET support to AttributedString (controls line height in Labels, TextFields, and TextAreas)
  • TIMOB-23802 - Android N: Expose Sustained Performance API for Nexus devices
    • Added support for sustainedPerformancemode
  • TIMOB-23903 - Android: Update V8 runtime to 5.7.492.71
  • TIMOB-24510 - Android N: Implement support for Custom quick settings tiles
    • Add support for custom quick settings tiles in Android N and above
  • TIMOB-24639 - Android: Support TextInputLayout
    • Allow animated hintType to be set using attributedHintText although attributes will be ignored (Android limitation)
    • Always respect height property
    • Set EditText background color to transparent
  • TIMOB-24723 - Android: Support V8 inspector API for debugging to replace "legacy" debugger protocol
    • Added support for V8 inspector for debugging
  • TIMOB-24963 - Android: Add scrollToTop() to ScrollView
    • Added scrollToTop() to ScrollView

iOS platform

  • TIMOB-10787 - iOS: Expose UDID replacements available in iOS6
    • Added support for UDID replacement

Windows platform

  • TIMOB-24964 - Windows: Add scrollToTop() to ScrollView
    • Added scrollToTop() to ScrollView
  • TIMOB-25233 - Windows: Feature request - Ti.UI.TextField setSelection method
    • Added Windows parity for setSelection of Ti.UI.TextFields
  • TIMOB-25234 - Windows: Feature request - Ti.UI.TextField clearButtonMode
    • Added Windows parity for clearButtonMode of Ti.UI.TextFields
  • TIMOB-25235 - Windows: Feature request - Ti.UI.TextField blur method
    • Added Windows parity for blur of Ti.UI.TextField
  • TIMOB-25236 - Windows: Feature request - Ti.UI.TEXT_ALIGNMENT_JUSTIFY
    • Added Windows parity for Ti.UI.TEXT_ALIGNMENT_JUSTIFY

  • TIMOB-25237 - Windows: Feature request - Ti.UI.Picker borderColor property
    • Added Windows parity for borderColor of Ti.UI.Picker
  • TIMOB-25250 - Windows: Feature request - Ti.UI.ActivityIndicator.style/ Titanium.UI.ActivityIndicator.indicatorDiameter
    • Added Windows parity for  Ti.UI.ActivityIndicator.style and Titanium.UI.ActivityIndicator.indicatorDiameter
  • TIMOB-25303 - Windows: Feature request - Ti.UI.Picker font property
    • Added Windows parity for Ti.UI.Picker of Ti.UI.PICKER_TYPE_DATE
  • TIMOB-25345 - Windows: Prevent app from suspension
    • Implemened extended execution to prevent suspension
  • TIMOB-25400 - Update module apiversion
    • Updated apiversion to use "4" for SDK 7.0.0

Multiple platforms

  • TIMOB-14795 - TiAPI: Add "parent" property for all Ti.UI.View subclasses
    • Added support for parent property for Ti.UI.View

Community credits

We would like to thank the community for their assistance on the following tickets:

Fixed issues

Android

  • TIMOB-6392 - Android: Ti.UI.Button text values with too many displayable characters draw improperly
  • TIMOB-9680 - Android: Textfield: The focus on textfield does not happen through textfield focus method
  • TIMOB-10070 - Android: Landscape Left/Right handling is backwards
  • TIMOB-11709 - Android: String.formatTime causes app crash when date is string.
  • TIMOB-18500 - Android: event.cancel not set properly for optionsDialog
  • TIMOB-19878 - Orientation Change is not correctly detected on Android
  • TIMOB-20439 - Android: Using camera bloats app storage
  • TIMOB-23996 - Android: Can't package android modules with NDK r13 & r14
  • TIMOB-24297 - Android native modules build is getting failed with Android NDK r13b
  • TIMOB-24537 - TI Gestures not firing even on orientation change on Android
  • TIMOB-24679 - Android: Deprecate invalid proxy constants in 7.0.0
  • TIMOB-24866 - Android: Setting a TextField's "padding" resets its alignment to left/center
  • TIMOB-24937 - Android: Default module manifest template uses wrong API version
  • TIMOB-25021 - Android: Unable to release weak global references
  • TIMOB-25051 - Android. persistentObjects leak
  • TIMOB-25160 - Android O : CLI does not detect android O device's model & shows "android device" when "appc ti info" is run
  • TIMOB-25225 - Android: Touch Id authentication issue
  • TIMOB-25241 - Android: Ti.Network.createHTTPClient log 404 : Not Found error in application log
  • TIMOB-25242 - Android: V8Exception on launch
  • TIMOB-25323 - Android: Application can crash after exiting
  • TIMOB-25324 - Android: AssetManager will release when suspended to background
  • TIMOB-25374 - borderColor not visible on Android tiSDK 6.2.2
  • TIMOB-25382 - Android: Wrong thread error in DrawerLayout when not running on main thread
  • TIMOB-25384 - Android: extendBackground extends the screen below soft system navigation
  • TIMOB-25398 - Android: Alert window does not appear with remote security policy when device is offline
  • TIMOB-25456 - Android: Crash after calling Stringify on Ti.UI.Window
  • TIMOB-25462 - Android: webview userAgent doesn't change
  • TIMOB-25467 - Android: "Ti.UI.Window.orientation" should return screen orientation in split-screen mode
  • TIMOB-25471 - TableView : java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.util.HashMap.containsKey(java.lang.Object)' on a null object reference
  • TIMOB-25487 - Android: Prevent kroll from removing null proxy object pointer
  • TIMOB-25501 - Android: App crash on receiving notification if app in background
  • TIMOB-25514 - Android: Vertical ScrollView.scrollTo() goes to wrong position when animated as of 6.2.2
  • TIMOB-25515 - Android: ScrollView.scrollTo() ignores "ti.ui.defaultunit" when animated
  • TIMOB-25525  - Android: Textfield focus issue with multiple textfields
  • TIMOB-25546 - Android: Simple Code Crash after installing Titanium SDK 7.0.0 Beta

iOS

  • TIMOB-9111 - TiAPI: Ti.Utils.base64encode() modified to not insert newlines in returned result
  • TIMOB-19040 - iOS9: Replace MPMoviePlayerController in Ti.Media.VideoPlayer with AVPlayerViewController
  • TIMOB-20404 - iOS: ProgressBar gets clipped in parent with height Ti.UI.SIZE
  • TIMOB-24994 - iOS: Remove Ti.UI.iOS.AdView
  • TIMOB-25005 - iOS: Remove Ti.UI.iPhone namespace
  • TIMOB-25024 - iOS: Remove <iphone> section from tiapp.xml
  • TIMOB-25449 - iOS: WebView content offset of 20 pixels when positioned at the top
  • TIMOB-25459 - iOS: toImage method needs parity with Android & Windows
  • TIMOB-25466 - setLargeTitleEnabled - unrecognized selector sent to instance
  • TIMOB-25491 - iOS: Ti.UI.SearchBar not slide down when set visible a view on top
  • TIMOB-25496 - iOS Document Viewer no longer allows sharing of pdf to other apps
  • TIMOB-25504 -2436h@3x Images on iPhone X are not used when -736h@3x exists
  • TIMOB-25519 - iOS: App can crash with unhandled Analytics SQLite error

Windows

  • TIMOB-23291 - Windows: Random Values while trying to decrypt value using AES encryption on device
  • TIMOB-24124 - Windows: Updating a tableView section with a headerView causes a layout issue
  • TIMOB-24832 - Windows: Unable to set a footerView or headerView on a TableView after data has been set
  • TIMOB-24858 - Windows: TableViewRow defaults to horizontal layout
  • TIMOB-24863 - Windows: TableView.filterAttribute does not work
  • TIMOB-24906 - Windows: Get an "Error device not found" error now and again when building to an Android emulator
  • TIMOB-25013 - Windows: Asserting the value returned from getPersonByIdentifier crashes an application
  • TIMOB-25027 - Windows: Remove deprecated property Ti.UI.View.enabled
  • TIMOB-25038 - (Windows) When "SearchBar.showCancel" Is used and the "X" is pressed text is removed but not "X"
  • TIMOB-25255 - Windows: Setting label.color to null causes label text to become transparent
  • TIMOB-25257 - Windows: Crash when adding tableview back to window
  • TIMOB-25275 - Windows: index property of TableView click event should be index of whole TableView and not section
  • TIMOB-25281 - Windows: Ti.Media.saveToPhotoGallery does not accept a blob
  • TIMOB-25282 - Windows: saveToPhotoGallery throws exception
  • TIMOB-25291 - Windows: Calling send with data will upgrade from a GET to a POST
  • TIMOB-25325 - Windows: Click event of Button does not provide X, Y coordinates
  • TIMOB-25326 - Windows: image property of ListItem should not overlay text
  • TIMOB-25327 - Windows: currentPage property of scrollableview.scrollend event is always 0
  • TIMOB-25460 - Windows: picker height not working
  • TIMOB-25463 - Windows: Incorrect event's source.id when in separate controller

Multiple platforms

  • TIMOB-25010 - nodejs build script: npm install failing on linux and windows
  • TIMOB-25016 - Allow node-ios-device to be installed on Windows and Linux
  • TIMOB-25176 - CLI: SDK 7 broken on node 4
  • TIMOB-25328 - CLI: Option "Enable Javascript Minification" break code from SDK >= 6.1.1.G.A

Improvements

Android

  • TIMOB-10724 - Android: Modules: remove gperf as a build dependency
    • Removed gperf as an Android build dependency on Windows 7
  • TIMOB-18441 - Android: Add CLI option to override keystore signature algorithm
    • Added --sigalg option in the CLI for overriding keystore signing algorithm
  • TIMOB-23645 - Android notification: allow to set color of background
    • Added Color to Android notification color behind icon
  • TIMOB-25353 - Android: Move Play Services into a module
    • Moved Google Play Services to ti.playservices module
  • TIMOB-25441 - Android: Support ARM64
    • Added native support for ARM64
  • TIMOB-25448 - Android: Update module build tools to compile with Java 7
    • Updated module build tools to support Java 7 language features
  • TIMOB-25483 - Android: Add FACE_UP/FACE_DOWN support to Ti.Gesture
    • Added support for FACE_UP and FACE_DOWN for Android
  • TIMOB-25498 - Android: Deprecate getEventsInYear and getEventsInMonth 
    • Deprecated getEventsInYear() and getEventsInMonth() methods from Ti.Calendar.Calendar
  • TIMOB-25510 - Android: Lower min "targetSdkVersion" from 25 to 23  
    • Due to file permission issues, this release pushed the targetSdkVersion back to 23 

iOS

  • TIMOB-23136 - iOS: Deprecate TiJScore / Kroll-Thread in SDK-Core
    • Deprecated TiJSCore. TiJSCore will be removed in SDK 8.0.0.
  • TIMOB-23495 - iOS: Support parent property on Ti.Filesystem.File
    • Added iOS parity for Ti.Filesystem.File.parent property
  • TIMOB-24327 - iOS: Implement AllowsMultipleSelectionWhenEditing and getSelectedRow in ListView
    • Implemented AllowMultipleSelectionWhenEditing property and getSelectedRows method
  • TIMOB-25195 - iOS: Improve native module template
    • Create new iOS modules in ios/ instead of iphone/
    • Use recommended build-settings like post-processing and assert-removal
    • Refactored the default readme attached to a module
    • Refactored and linted the default templates to match our clang-format
    • Prevent the README.md from the platform/ directory from being zipped
    • Added a .gitignore for default ignored files and directories
    • Updated the default license-headers to match Axway
  • TIMOB-25279 - iOS: Clean-up Titanium core, resolve all compiler warnings
    • Improved on the following Xcode 9 features:
      • Static analyser warnings
      • Fix some "missing localization" warnings by using NSLocalizedString
      • Fix unreachable code

Windows

  • TIMOB-24426 - Remove "Alert" title from alert()
    • Removed the "Alert" title from alert() function
  • TIMOB-24975 - Windows: SearchBar should show No Results text if there are no results in a search
    • SearchBar now displays "No Results" if there are no results from a search
  • TIMOB-25433 - Windows: Auto-detect requirement of cmake needing to be rerun in module build
    • Added feature that automatically builds the cmake directory if it doesn't exist. Use the --run-cmake command.

Multiple platforms

  • TIMOB-24000 - CLI: Module build should error if the apiversion in manifest does not match the SDKs apiversion
    • Added feature that the module build will announce an error if the apiversion in the manifest does not match the SDK's apiversion
  • TIMOB-25561 - CLI: Module build should error if the apiversion in manifest does not match the SDKs apiversion
    • Module build will throw an error if the apiversion is incorrect
  • TIMOB-25562 - CLI: Automatically migrate native Android modules to SDK 7 during module-build
    • Added feature that will migrate older module's apiversionminsdk, and version and create a backup of the manifest file (manifest.bak)

Known issues

  • SDK 7.0.0 does not support node.js 9
  • DAEMON-209 - Studio: iOS SDK home not found and NullPointerException
    • There's a bug in ioslib when it tries to build the list of teams. If one of the provisioning profiles does not have any teams, then the teamIds will be null. The code that builds the unique list of teams expects teams to be an array.
    • To manually fix this issue, follow these steps:
      1. Close Appcelerator Studio.
      2. Open a terminal.
      3. Stop the daemon: appc appcd stop
      4. Change directories into the appcelerator package: cd ~/.appcelerator/install/7.0.0/package
      5. Install the update for ioslib: npm install ioslib@next
      6. Reopen Studio.

API changes

New APIs

The following APIs are new or have expanded platform support in Release 7.0.0.

APITypeNotes
Titanium.Android.Notification.colorproperty

Accent color used behind icon. (New API, supported on Android.)

Titanium.Android.Notification.getColormethod

Gets the value of the Titanium.Android.Notification.color property. (New API, supported on Android.)

Titanium.Android.Notification.setColormethod

Sets the value of the Titanium.Android.Notification.color property. (New API, supported on Android.)

Titanium.Android.QuickSettingsServiceobject

Android service for creating custom quick settings tiles and handling user's interaction with them. (New API, supported on Android.)

Titanium.Android.TILE_STATE_ACTIVEproperty

QuickSettings tile is active. (New API, supported on Android.)

Titanium.Android.TILE_STATE_INACTIVEproperty

QuickSettings tile is inactive. (New API, supported on Android.)

Titanium.Android.TILE_STATE_UNAVAILABLEproperty

QuickSettings tile is unavailble. (New API, supported on Android.)

Titanium.UI.ListView.allowsMultipleSelectionDuringEditingproperty

Determines whether multiple items of this list view can be selected at the same time while editing the table. (New API, supported on iPhone and iPad.)

Titanium.UI.ListView.getAllowsMultipleSelectionDuringEditingmethod

Gets the value of the Titanium.UI.ListView.allowsMultipleSelectionDuringEditing property. (New API, supported on iPhone and iPad.)

Titanium.UI.ListView.getSelectedItemsmethod

Gets the value of the Titanium.UI.ListView.selectedItems property. (New API, supported on iPhone and iPad.)

Titanium.UI.ListView.selectedItemsproperty

Returns the selected list view items. (New API, supported on iPhone and iPad.)

Titanium.UI.ListView.setAllowsMultipleSelectionDuringEditingmethod

Sets the value of the Titanium.UI.ListView.allowsMultipleSelectionDuringEditing property. (New API, supported on iPhone and iPad.)

Titanium.UI.ListView.setSelectedItemsmethod

Sets the value of the Titanium.UI.ListView.selectedItems property. (New API, supported on iPhone and iPad.)

Titanium.UI.ScrollView.getRefreshControlmethod

Gets the value of the Titanium.UI.ScrollView.refreshControl property. (Added support for Android.)

Titanium.UI.ScrollView.refreshControlproperty

View positioned above the first row that is only revealed when the user drags the scroll view contents down. (Added support for Android.)

Titanium.UI.ScrollView.setRefreshControlmethod

Sets the value of the Titanium.UI.ScrollView.refreshControl property. (Added support for Android.)

Titanium.UI.Window.getLargeTitleDisplayModemethod

Gets the value of the Titanium.UI.Window.largeTitleDisplayMode property. (New API, supported on iPhone and iPad.)

Titanium.UI.Window.getLargeTitleEnabledmethod

Gets the value of the Titanium.UI.Window.largeTitleEnabled property. (New API, supported on iPhone and iPad.)

Titanium.UI.Window.largeTitleDisplayModeproperty

The mode to use when displaying the title of the navigation bar. (New API, supported on iPhone and iPad.)

Titanium.UI.Window.largeTitleEnabledproperty

A Boolean value indicating whether the title should be displayed in a large format. (New API, supported on iPhone and iPad.)

Titanium.UI.Window.setLargeTitleDisplayModemethod

Sets the value of the Titanium.UI.Window.largeTitleDisplayMode property. (New API, supported on iPhone and iPad.)

Titanium.UI.Window.setLargeTitleEnabledmethod

Sets the value of the Titanium.UI.Window.largeTitleEnabled property. (New API, supported on iPhone and iPad.)

Titanium.UI.iOS.LARGE_TITLE_DISPLAY_MODE_ALWAYSproperty

Always use a larger title when this item is top most. (New API, supported on iPhone and iPad.)

Titanium.UI.iOS.LARGE_TITLE_DISPLAY_MODE_AUTOMATICproperty

Automatically use the large out-of-line title based on the state of the p revious item in the navigation bar. (New API, supported on iPhone and iPad.)

Titanium.UI.iOS.LARGE_TITLE_DISPLAY_MODE_NEVERproperty

Never use a larger title when this item is top most. (New API, supported on iPhone and iPad.)

Deprecated APIs

The following APIs are deprecated in Release 7.0.0.

APITypeNotes
Titanium.Filesystem.File.getParentmethod

Use the Titanium.Filesystem.File.parent property to receive a File reference instead. If you wish to receive the path, use the nativePath property of that reference instead.

Titanium.Geolocation.AUTHORIZATION_AUTHORIZEDproperty

Use Titanium.Geolocation.AUTHORIZATION_ALWAYS as advised by Apple.

  • No labels
Page: Titanium SDK 3.5.1 Release Note Page: Titanium SDK 4.0.0 Release Note Page: Titanium SDK 4.1.0 Release Note Page: Titanium SDK 4.1.1 Release Note Page: Titanium SDK 5.0.0 Release Note Page: Titanium SDK 5.0.1 Release Note Page: Titanium SDK 5.0.2 Release Note Page: Titanium SDK 5.1.0 Release Note Page: Titanium SDK 5.1.1 Release Note Page: Titanium SDK 5.1.2 Release Note Page: Titanium SDK 5.2.0.RC Release Note Page: Titanium SDK 5.2.0 Release Note Page: Titanium SDK 5.2.1.GA Release Note Page: Titanium SDK 5.2.1.RC Release Note Page: Titanium SDK 5.2.2 Release Note Page: Titanium SDK 5.3.0.Beta Release Note Page: Titanium SDK 5.3.0.GA Release Note Page: Titanium SDK 5.3.0.RC Release Note Page: Titanium SDK 5.3.1.GA Release Note Page: Titanium SDK 5.3.1.RC Release Note Page: Titanium SDK 5.4.0.Beta Release Note Page: Titanium SDK 5.4.0.GA Release Note Page: Titanium SDK 5.4.0.RC Release Note Page: Titanium SDK 5.5.0.Beta Release Note Page: Titanium SDK 5.5.0.GA Release Note Page: Titanium SDK 5.5.0.RC Release Note Page: Titanium SDK 5.5.1.GA Release Note Page: Titanium SDK 6.0.0.Beta Release Note Page: Titanium SDK 6.0.0.GA Release Note Page: Titanium SDK 6.0.0.RC Release Note Page: Titanium SDK 6.0.1.GA Release Note Page: Titanium SDK 6.0.2.GA Release Note Page: Titanium SDK 6.0.2.RC Release Note Page: Titanium SDK 6.0.3.GA Release Note Page: Titanium SDK 6.0.3.RC Release Note Page: Titanium SDK 6.0.4.GA Release Note Page: Titanium SDK 6.0.4.RC Release Note Page: Titanium SDK 6.1.0.GA Release Note Page: Titanium SDK 6.1.0.RC Release Note Page: Titanium SDK 6.1.1.GA Release Note Page: Titanium SDK 6.1.1.RC Release Note Page: Titanium SDK 6.1.2.GA Release Note Page: Titanium SDK 6.1.2.RC Release Note Page: Titanium SDK 6.2.0.GA Release Note Page: Titanium SDK 6.2.0.RC Release Note Page: Titanium SDK 6.2.1.GA Release Note Page: Titanium SDK 6.2.2.GA Release Note Page: Titanium SDK 6.3.0.GA Release Note Page: Titanium SDK 6.3.0.RC Release Note Page: Titanium SDK 7.0.0.Beta Release Note Page: Titanium SDK 7.0.0.GA Release Note Page: Titanium SDK 7.0.0.RC Release Note