Titanium SDK 8.1.0.GA - 13 August 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-02-13). 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.
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-27094 - Android: ListView's SearchBar/SearchView wrongly overlaps rows as of 8.0.1
- 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
- TIMOB-27269 - Android: Do not retry sending events if no connectivity
- TIMOB-27300 - Android: AssetCryptImpl buffer overflow for large JS assets
- TIMOB-27314 - Android: Unable to build to device on Windows
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
- TIMOB-27270 - iOS: Allow capture of signal exceptions
- TIMOB-27277 - iOS: Invalid analytics platform
- TIMOB-27278 - iOS: App crashes upon giving permission to Calendar
- TIMOB-27313 - IOS:Regression-Console.log does not concatenate and log if it has multiple arguments with space
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
- TIMOB-26961 - Windows: Save HttpClient instance until callback is fired
- The httpClient instance is saved until onerror or onloadcallback is called
-
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 |