Titanium SDK 9.1.0.GA - 25 August 2020
About this release
Titanium SDK 9.1.0 is a minor release of the SDK, addressing high-priority issues from previous releases, as well as the addition of new features/functionality/APIs.
As of this release, Titanium SDK 9.0.x will not receive updates more than six months after the release of 9.1.0 (2021-02-25). Any needed fixes will be in 9.1.x or later supported releases within the 9.x branch. See Axway Appcelerator Deprecation Policy and Nominal Lifetimes documents for details.
Overview
Titanium SDK 9.1.0's Notable new features include: Webpack project support, Intl
JS APIs on both major platforms, Cross-platform Dark/Light mode theming, Named/Semantic Colors, new focused
/closed
query methods on some UI components, cross-platform parity for Ti.UI.Shortcut
, and Ti.UI.View.borderRadius
extended to support 2 or 4 values (in addition to single value existing support) to allow for custom border radii (rounded corners).
Community Credits
Michael Gangolf
- TIMOB-27879 - add getScaledTouchSlop() to ListView (901f991)
- TIMOB-27977 - add "isTrusted" property to Slider "change" event (8e96445)
- TIMOB-25633 - adding androidback property to showCamera (b890f7c)
- TIMOB-27855 - animate color (4fa4e19) and elevation (38a82ed)
- fix OptionDialog example (c0b13a1 and 6b99cf9)
- TIMOB-27834 - navigationWindow open/close event (ec1976a)
Andrea Vitale
- TIMOB-27958 - add fallback for countryCode in reverseGeocoder method (9823b0d)
Hans Knöchel
- TIMOB-27895 - support using named colors for color properties directly (5135b59)
- TIMOB-27757 - fix watchOS targets that include frameworks (bd59e19)
- TIMOB-27773 - add search bar token API (0680dcd)
Sergey Volkov
- TIMOB-27519 - semantic colors with alpha value (3c9aa10)
- fix keyboardToolbar property type (7fbf2c7)
- fix Ti.UI.iOS.MenuPopup.items type (e886d64)
Skoften
- TIMOB-27697 - Add "progress" event to Ti.UI.WebView for Android (parity) (2caa8e7)
Bug Fixes
Android platform
- TIMOB-27513 - TabGroup bottom navigation style fires redundant event
- TIMOB-27519 - Semantic Colors with alpha value
- TIMOB-27616 - TextField with decimal keyboard type does not allow comma for decimal separator
- TIMOB-27731 - Camera fails to open when using saveToPhotoGallery: true (56986c3)
- TIMOB-27779 - Setting "labels" via TabbedBar "click" event hangs app (749ff1d)
- TIMOB-27797 - Unable to see "error" event in remote images (68d11f7)
- TIMOB-27825 - High CPU usage in Android Studio (11dff9d)
- TIMOB-27834 - NavigationWindow doesnt trigger open and close events
- TIMOB-27872 - Blob imageAsX() methods ignore EXIF orientation if not wrapping a file (7ce3ae1)
- TIMOB-27882 - Unable to do a production build after switching SDK on Windows
- TIMOB-27916 - App logs Titanium version as
__VERSION__
on startup as of 9.1.0 (08227a9) - TIMOB-27927 - Changing currently selected row's color in picker does not update shown color
- TIMOB-27950 - "tiapp.xml" setting
<navbar-hidden>
is ignored if<fullscreen>
or<statusbar-hidden>
is also not set as of 9.0.0 (54e42b1) - TIMOB-27963 - Always specify default Tab.tintColor (9a6d417)
- TIMOB-27972 - ACS push notifications received multiple times on same device after re-installing app
- TIMOB-27990 - Ti.UI.ShortcutItem has lot of issues
- TIMOB-28020 - Parity with iOS Shortcut click event payload (dc102e3)
- TIMOB-28064 - Setting border fills view when backgroundColor is not specified
- TIMOB-28073 - DateTimeFormat mishandles some combinations of settings on Android 8
- TIMOB-28092 - Native modules pinned to build Titanium SDK version
- changing picker row color should update selected text (7aa5290)
- clean/rebuild should release gradle file locks (be923f1)
iOS platform
- TIMOB-18256 - setting TextField.value to wrong type triggers change event (e06f9b5)
- TIMOB-27649 - deprecate statusbar constant (3c83fd8)
- TIMOB-27757 - watchOS: Frameworks are referenced incorrectly
- TIMOB-27767 - Parity: httpClient should trigger error callback when url is invalid (7630868)
- TIMOB-27821 - ti.urlsession - Event sessioncompleted does not get all specified values (ebae7bd)
- TIMOB-27832 - Liveview disconnect triggers infinate error loop
- TIMOB-27846 - Calling Ti.Platform.openURL without all parameters causes the app to crash (regression) (b5bb437)
- TIMOB-27874 - parseDecimal() whitespace thousands sep handling (ed7bbe6)
- TIMOB-27897 - master branch is not building on Xcode < 11
- TIMOB-27930 - iPad crashing intermittently during unit test suite (c2e5fb5)
- TIMOB-27935 - TableViewRow does not return getRect methods
- TIMOB-27958 - Ti.Geolocation.reverseGeocoder() crashes the app on iOS
- TIMOB-27969 - View in a tab window goes under tabs in a tabgroup on Ipad (e9330a9)
- TIMOB-27994 - itemclick event its firing instead of a move event when ordering items in a list (iOS 13+) (40cc28d)
- TIMOB-27997 - Ti.Blob images from device (via Ti.UI.View#toImage()) would report dimensions in points, not pixels (51b6237)
- TIMOB-28001 - setting TableView row layout to "horizontal" or "vertical" crashes (fd53a51)
- TIMOB-28031 - CLI: Unable to find an iOS Simulator running iOS 14.0.
- TIMOB-28067 - iOS: swipe down gallery photo picker does not fire cancel callback
- TIMOB-28095 - Border Radius of a view cannot be changed
- allow custom property getters to work in bindings (a53f8c6)
- call callback with success no byte event on writeFromBuffer with no length (8a639d8)
- define dark/light theme constants/properties for ios < 13 (a16e698)
- don't ignore close call immediately after open on Window (07502db)
- handle Ti.Stream.write with length 0 or empty buffer as success no-op (b58349d)
- have Ti.Color hex be AARRGGBB format (not RRGGBBAA) (9c3321b)
- make Ti.UI.Window close/open run more async ala Android (6a6fda4)
- properly report partial results on thrown error for Ti.DB.executeAll (f1372ba)
- remainingComplicationUserInfoTransfers is number on ipad (0fcd6d2)
- TableViewRow does not return getRect methods (b15d184)
Multiple platforms
- TIMOB-27785 - buffer: Proxy object's 'set' trap returned falsy value for property '0' (a45a8d0)
- TIMOB-27808 - add missing console.trace (83a64a1)
- TIMOB-27525 - Liveview: Commented out line with Ti.include in it causes LiveView failure
- TIMOB-27416 - LiveView: Changes made to a theme's style are not reflected in app when using LiveView
- TIMOB-26267 - LiveView: Calling "liveview server stop" causes exception, but stops connections
- TIMOB-26649 - LiveView: Unable to use LiveView with KitchenSink-v2
- TIMOB-26798 - Angular: Project template is outdated
- TIMOB-28054 - WebPack (Android/IOS) : .tss changes do not show up after app rebuild
- do not remove log file when cleaning (a699bf5)
- add .buffer and #set to Buffer (264b175)
- add no-op stubs for fs.chown methods (1dd99ef)
- assume hex is ARGB (daf8056)
- copy sliced buffer doesn't extend beyond view now (035c579)
- expose Buffer.hexSlice to fix console.log of ArrayBuffer (d7f863b)
- expose constructor off global console instance (2568c6f)
- correct type sniffing of some ES6 types (bac4bb3)
Features
Android platform
- TIMOB-25633 - Add "androidback" callback property to camera overlay (b890f7c)
- TIMOB-26315 - Support touch feedback on backgroundImage, backgroundGradient, and transparent backgrounds (2a0b1be)
- TIMOB-27240 - Add Intl.NumberFormat support (269de3f)
- TIMOB-27242 - Improve getter and setter warnings (3507dd0)
- TIMOB-27473 - Replace clang Java formatter with gradle "checkstyle" tool (3cbc754)
- TIMOB-27501 - Be able to determine dark / light theme, as well as changes on it
- add Ti.UI.Android.getColorResource(), Ti.UI.Color (d852331)
- TIMOB-27697 - Add "progress" event to Ti.UI.WebView for Android (parity) (82a3579)
- TIMOB-27719 - Remove python dependency from SDK build
- TIMOB-27855 - Animate elevation value
- TIMOB-27862 - Add callback support to Ti.Platform.openURL() (43d287e)
- TIMOB-27869 - KEYBOARD_TYPE_ASCII should not allow emoji like iOS
- TIMOB-27870 - KEYBOARD_TYPE_NUMBERS_PUNCTUATION should allow all chars except emoji like iOS
- TIMOB-27871 - Setting TextField/TextArea "editable" to false should allow user to copy text to clipboard
- TIMOB-27879 - ListView should only fire "scrolling" event when moving a min distance
- TIMOB-27889 - Implement Ti.UI.Shortcut (5432efc)
- TIMOB-27890 - Add Intl.DateTimeFormat support (269de3f)
- TIMOB-27891 - Add Intl.Collator support (269de3f)
- TIMOB-27892 - Update toLocale*String() methods to support locale/options (683adaf)
- TIMOB-27906 - Add Kotlin based template for native modules (23c3aea)
- TIMOB-27938 - Update gradle build tools to 4.0.x
- TIMOB-27946 - Implement Ti.View.borderRadius multiple values for custom edge radii (545f8d5)
- add NDK side-by-side support (71f25e8)
- MOD-2588 - add passcode fallback to ti.identity (1f84b35)
- added "codeStyleConfig.xml" to SDK (a9f6895)
- MOD-2634 TIMOB-27972 - migrate CloudPush to Firebase (d61e66e)
- module builds should fail with aar in lib folder (0c72020)
iOS platform
- TIMOB-27773 - Support search bar tokens
- TIMOB-26959 - Add TLS 1.3 support
- TIMOB-27853 - Add ability to detect that screenshot was taken on iOS (b9df339)
- TIMOB-26818 - Move application shortcut under Ti.UI.Shortcut to have parity (8446d39)
- TIMOB-27305 - Implement Ti.View.borderRadius multiple values for custom edge radii (34b3a93)
- TIMOB-27649 - Deprecate Status Bar style constants
- TIMOB-27767 - Parity: httpClient should trigger error callback when url is invalid
- TIMOB-27792 - Remove python dependency from SDK build
- TIMOB-27974 - Make iOS development-project compatible with Xcode 12
- add list of new iPhone/iPad models for
os
module (8839c2c)
Multiple platforms
- TIMOB-13764 - TiAPI: After animating properties on a view, update in the view properties (3fef676)
- TIMOB-25968 - Liveview: Write more information to pidfile, such as port and ip data
- TIMOB-26572 - TiAPI: Extend global console API to be more Node-compatible (e398a10)
- TIMOB-27429 - Webpack: Integration into the CLI build command
- TIMOB-27501 - cross-platform light/dark mode API (28eba34)
- TIMOB-27511 - Webpack: Alloy loader
- TIMOB-27716 - Webpack: Classic and Alloy project templates
- TIMOB-27711 - TiAPI: Add state querying methods to UI components
- TIMOB-27800 - Webpack: Angular plugin
- TIMOB-27856 - Webpack: Angular project template
- TIMOB-27857 - Webpack: Add support for plugins from NPM
- TIMOB-27860 - Webpack: Tap into hooks before/after other plugins
- TIMOB-27874 - TiAPI: Add Ti.Locale.parseDecimal() method (6253813)
- TIMOB-27895 - TiAPI: Handle semantic colors (dark mode) without helper function
- TIMOB-27907 - Liveview: Compatibility with Webpack builds
- TIMOB-27977 - TiAPI: Add "isTrusted" property to Ti.UI.Slider "change" event
- add basic stream shim (1720456)
- MOD-2621 - use ASWebAuthenticationSession when possible (5e1dfa1)
SDK Module Versions
Module | Android version | iOS Version |
---|---|---|
9.0.0 | 8.0.0 | |
ti.cloudpush | 7.1.0 | n/a |
ti.map | 5.0.1 | 3.3.0 |
ti.webdialog | 2.0.0 | 1.2.0 |
ti.playservices | 17.1.1 | n/a |
ti.identity | 3.0.2 | 1.1.0 |
urlSession | n/a | 2.2.0 |
ti.coremotion | n/a | 2.1.0 |
ti.applesignin | n/a | 1.1.1 |
ti.cloud | 3.2.11 | 3.2.11 |
hyperloop | 5.0.3 | 5.0.3 |