Titanium SDK 8.1.0.RC - 22 July 2019
About this release
Titanium SDK 8.1.0 is a minor release of the SDK, addressing high-priority issues from previous releases.
As of this release, Titanium SDK 8.0.x will not receive updates more than six months after the release of 8.1.0 (current) (2020-01-22). Any needed fixes will be in 8.1.x or later supported releases within the 8.x branch. See Axway Appcelerator Deprecation Policy and Nominal Lifetimes documents for details.
Notice of feature and behavior Changes
- TIMOB-27250 - Add Node 8 deprecation warning for SDK 9.0 release
- With the release of Titanium SDK 9.0.0, users should see a deprecation notice for Node.js if they are using a version lower than 10.13
New features
Android platform
- TIMOB-4041 - Android: Add "separatorStyle" property to Ti.UI.ListView
- Added support for
ListView.separatorStyle
-
- Added support for
- TIMOB-14460 - Android: Add Ti.Platform.canOpenURL() support
- Added support for Ti.Platform.canOpenURL()
- TIMOB-26793 - Android: Hide radio buttons OptionDialog
-
Added support to use
OptionDialog
without radio buttons -
-
iOS platform
- TIMOB-18421 - iOS: Add animation properties "springVelocity" and "dampingRatio"
- Added
dampingRatio
andspringVelocity
to allow iOS spring animations
- Added
- TIMOB-26523 - iOS 11+: Support large title style (dynamic fonts)
- Added support for dynamic fonts in
UIFontTextStyleLargeTitle
-
- Added support for dynamic fonts in
- TIMOB-26599 - iOS: Add "allowTranscoding" option to Ti.Media.openPhotoGallery()
- Added option to disable video compression when importing video
- TIMOB-26973 - iOS: Add accessibilityIdentifier
- Added
accessibilityIdentifier
which can compose views on iOS the same waycontent description
is composed on Android
- Added
- TIMOB-27124 - iOS 13: Support running on Xcode 11 Simulators
- Added support for Xcode 11
Windows platform
- TIMOB-25778 - Windows: Implement Ti.UI.Label.ellipsize
- Implemented
Ti.UI.Label.ellipsize
TEXT_ELLIPSIZE_TRUNCATE_START
,TEXT_ELLIPSIZE_TRUNCATE_MIDDLE
, andTEXT_ELLIPSIZE_TRUNCATE_MARQUEE
are not supported on Windows because platform component doesn't support them
- Implemented
Multiple platforms
- TIMOB-26571 - TiAPI: Global process object compatible with Node.js
- Expanded the global process object to be more compatible with Node.js
- TIMOB-26669 - TiAPI: Create Node-compatible assert module API
- Added Node.js-compatible
asset
module API
- Added Node.js-compatible
- TIMOB-26670 - TiAPI: Create Node-compatible util module API
- Added Node.js-compatible
util
module API - This API does not include every method of
util.types
, nor does it includeutil.extends()
,util.isDeepStrictEqual()
, orutil.inspect
- Currently supports
depth
,showHidden
, and to some degreebreakLength
- Added Node.js-compatible
- TIMOB-27150 - Add ability to alias required modules in Titanium
- Added ability to alias required modules
Community credits
- Prafulla Bansode - TIMOB-24415
- Sandro Lain - TIMOB-24418, TIMOB-24423, TIMOB-24443
- Hans Knöchel - TIMOB-26101, TIMOB-26854, TIMOB-26862, TIMOB-26885, TIMOB-26946, TIMOB-27049, TIMOB-27082, TIMOB-27089, TIMOB-27090, TIMOB-27100, TIMOB-27103, TIMOB-26523, TIMOB-26566, TIMOB-26509, TIMOB-26686, TIMOB-26770, TIMOB-27155, TIMOB-27210
- kedomuz - TIMOB-26326
- Michael Gangolf - TIMOB-26456, TIMOB-26993, TIMOB-25556, TIMOB-26793
- Sergey Volkov - TIMOB-26973
- shumne - TIMOB-26795
- alessandro la rocca - TIMOB-26829
- Andreas Pingas - TIMOB-26878, TIMOB-27188, TIMOB-27232
- Arbind - TIMOB-26898
- grebulon - TIMOB-26954
- Muhammad Ahmed Fahad - TIMOB-26986
- Adam Armstrong - TIMOB-27087
- Tim Poulsen - TIMOB-14460
- Richard Lustemberg - TIMOB-26599
- Mark Henderson - TIMOB-27098
Fixed issues
Android
- TIMOB-24415 - Android: Listview not able to add accessibility label in the ListItem components
- TIMOB-24881 - Android: Label ellipsize modes START and MIDDLE don't work if "autoLink" is true
- TIMOB-26456 - Android: Optimize TiBlob.imageAsResized
- TIMOB-26650 - Android: Using toImage on views with border properties not added to UI results in empty blob
- TIMOB-26841 - Android: Reading TextField "backgroundDisabledColor" will crash if background/border color is assigned
- TIMOB-26862 - Android: TextField/TextArea within a TableView can have performance issues with some keyboards
- TIMOB-26869 - CLI: Android build fails with cannot find module error
- TIMOB-26878 - Android: Ti.Database.install() fails if destination directory does not exist
- TIMOB-26954 - Android: Reading a JSON file fails on Android Q
- TIMOB-26993 - Android: WebView sometimes crashes on window close after zooming content
- TIMOB-27087 - Android: ShortcutItem not being updated based on "id"
- TIMOB-27100 - Android: TabGroup labels not displayed anymore (SDK 8.1.0+)
- TIMOB-27153 - Android: Prevent multiple exception logs
- TIMOB-27188 - Android: TabGroup crashes if tab "title" property is not set as of 8.0.2
- TIMOB-27232 - Android: Setting Window "barColor" while using a theme without an ActionBar/TitleBar will cause a crash as of 8.1.0
iOS
- TIMOB-26795 - iOS: Event listener on overlay is not working for camera when camera is kept idle for a few minutes
- TIMOB-26829 - iOS: Titanium.Media.openMusicLibrary returns empty items on iOS 9.3.5
- TIMOB-26833 - iOS: Two startup log messages are output
- TIMOB-26838 - iOS: the openWindow() method of NavigationWindow does not work when called from base window open event
- TIMOB-26854 - iOS: Crash when handling user-activities
- TIMOB-26885 - iOS: Crash when trying to push a window twice (e.g. on slow devices)
- TIMOB-26946 - iOS: Launch screen shows last screen when quickly relaunching the app
- TIMOB-27049 - iOS: Simulator can crash because of the "trackUserInteraction" feature
- TIMOB-27074 - IOS: Rebuilding the app with simulator fails with due to log port being occupied
- TIMOB-27082 - iOS: Modules using TiBlob and built before SDK 8.1 causing app crash
- TIMOB-27089 - iOS: App crashes when asking for location permissions (SDK 8.1.0+)
- TIMOB-27090 - iOS: Using a non-string value in alert() causes app to crash in SDK 8.0.0+
- TIMOB-27098 - iOS: debugger does not show all app files loaded
- TIMOB-27103 - iOS: Native extensions without sources are crashing build
- TIMOB-27155 - iOS: Incremental builds broken
- TIMOB-27175 - iOS: Ti.Platform.id changes when updating to SDK 8.0.0
- TIMOB-27202 - IOS:Rebuilding app on device throws Couldn't find module error
- TIMOB-27203 - iOS: no apiversion validation performed on application build
- TIMOB-27210 - iOS: Cannot find iOS 13 simulators in Xcode 11 Beta 3
- TIMOB-27230 - iOS: CLI prefers Xcode 11/iOS 13 even though Xcode 10.2.1 is selected
Windows
- TIMOB-24418 - Windows Phone: OptionDialog undefined error
- TIMOB-24423 - Windows Phone: TableViewRow and Label layout not respected
- TIMOB-24443 - Windows Phone: Progressbar not respect width and not resize
- TIMOB-25134 - Windows: Mocha test Titanium.UI.TextField padding test failure
- TIMOB-26550 - Windows: Add support for file property to HTTPClient
- TIMOB-26664 - Windows: Ti.Geolocation.lastGeolocation should return string
- TIMOB-26689 - Windows: Wrong height for TableViewRow with Label
- TIMOB-26690 - Windows: TabGroup does not fire open/close events
- TIMOB-26791 - Windows: Ti.UI.View reports top/left/bottom/right values as Strings always
- TIMOB-26797 - Windows: removeEventListener removes wrong callback
- TIMOB-26969 - Windows: Codec encodeNumber/decodeNumber should throw Error on invalid setup
- TIMOB-27257 - [Windows] Error is shown when packaging a windows module
Multiple platforms
- TIMOB-27204 - CLI: apiversion validation always fails for native modules installed via npm
Improvements
Android
- TIMOB-26686 - Android: Allow Ti.Network.HTTPClient "file" parameter to be
set to Ti.Filesystem.File object like iOS
- Parity for
File
object support
- Parity for
- TIMOB-26817 - Android: Add parity for Window's barColor property.
- Parity for
barColor
property of Ti.UI.Window
- Parity for
- TIMOB-26848 - Android: Re-add "baseURL" support to WebView.setHtml() that
was removed in 6.0.3
- Re-implemented
baseURL
to supportWebView.setHtml
- Re-implemented
- TIMOB-26877 - Android: Ti.Database.install() should throw exception like iOS if source
db file not found
- Modified
Ti.Database.install()
to throw an exception if given source database file was not found
- Modified
- TIMOB-26909 - Android: Improve V8 cold start performance
- Updated V8 to 7.3.492.26 which provides performance updates
- TIMOB-26957 - Android: Update V8 runtime to 7.3.492.26
- Updated V8 to 7.3.492.26 which provides performance updates
- TIMOB-27042 - Android: Update ti.playservices to 16.1.3
- Updated
ti.playservices
to version 16.1.3
- Updated
- TIMOB-27111 - Android: Implement async Ti.Database.DB methods
- Implement asynchronous
Ti.Database.DB
methods for executing SQL queriesTi.Database.DB.executeAsync(query, parameters[], callback)
Ti.Database.DB.executeAllAsync(queries[], callback)
- Implement method for executing multiple queries in one request
- Implement asynchronous
iOS
- TIMOB-26509 - iOS: Allow Ti.UI.SearchBar to be displayed in navigation-bar
- Added support to show search bar navigation for
TiUIListView
andTiUITableView
- Added support to show search bar navigation for
- TIMOB-26770 - iOS: Use Swift 5 by default
- Added support for Swift 5
- TIMOB-27043 - Cache JS processing between builds
- Improved incremental app build times
- TIMOB-27047 - iOS: Version of SDKs default modules are not up to date
- Updated the following modules
urlSession
from 2.1.0 to 2.2.0ti.map
from 3.1.0 to 3.1.2ti.safaridialog
from 1.1.1 to 3.1.0- ti.identity from 1.0.5 to 1.0.6
- Updated the following modules
- TIMOB-27164 - iOS: Implement async Ti.Database.DB methods
- Implement asynchronous
Ti.Database.DB
methods for executing SQL queriesTi.Database.DB.executeAsync(query, parameters[], callback)
Ti.Database.DB.executeAllAsync(queries[], callback)
- Implement method for executing multiple queries in one request
- Implement asynchronous
Windows
- TIMOB-19965 - Windows: Implement WebView.data
- Implemented
WebView.data
-
- Implemented
- TIMOB-26575 - Windows: Support async variants of Ti.Network.TCP #read and #write
- Parity for
async
variants ofTi.Network.TCP
- Parity for
- TIMOB-26855 - Windows: Add "baseURL" support to WebView.setHtml()
- Re-implemented
baseURL
to supportWebView.setHtml
- Re-implemented
Multiple platforms
-
TIMOB-26574 - TiAPI: Implement set/clearImmediate
- Implemented
process.nextTick()
and the globalsetImmediate
/clearImmediate
- Implemented
- TIMOB-26729 - TiAPI: Ship baseline polyfills in built SDK
- This update injects the core-js/regenerator polyfills into the bundle
common
JS SDK code we ship when we build
- This update injects the core-js/regenerator polyfills into the bundle
- TIMOB-27045 - Pass along ENV variables to process.env on development builds
- Write
env.json
file withENV
variables
- Write
- TIMOB-27182 - Update Hyperloop to 4.0.3
- Android: Debugging in Hyperloop enabled projects
- iOS: Debugging in Hyperloop enabled projects
- iOS: Correctly require minimum SDK 8.0.0
API changes
New APIs
SDK modules versions
Android and iOS
Module
|
Android version
|
iOS version
|
---|---|---|
urlSession | n/a | 2.2.0 |
8.0.0 | 6.0.0 | |
ti_coremotion | n/a | 2.0.1 |
ti_map | 4.3.1 | 3.1.2 |
ti_safaridialog | n/a | 1.1.1 |
ti_webdialog | 1.1.0 | 1.1.0 |
ti_touchid | 3.0.1 | 2.1.4 |
ti_identity | 2.1.0 | 1.0.6 |
ti_cloudpush | 6.0.1 | n/a |
ti_playservices | 16.1.3 | n/a |
CommonJS
Module
|
Version
|
---|---|
ti.cloud | 3.2.11 |
Hyperloop
Module
|
Version
|
---|---|
Hyperloop | 4.0.3 |