Skip to content

Titanium SDK 10.0.0.GA

About this release

Titanium SDK 10.0.0 is a major release of the SDK, addressing high-priority issues from previous releases; introducing some breaking changes; and removing a number of long-deprecated APIs.

⚠️ Titanium SDK 10.0.0 will be the last major release of the produce. Titanium SDK will no longer be supported beyond March 2022.

Community Credits

BREAKING CHANGES

  • TIMOB-28346 - TiAPI: Remove getter/setter methods for properties
  • TIMOB-28011 - iOS: Drop iOS 10 support in Titanium SDK 10
  • TIMOB-28343 - CLI: Update minimum Node.js version to 12.13.0
  • TIMOB-28263 - Android: Change min supported version to Android 5.0 (API Level 21) (8440ad7)
  • TIMOB-28395 - Android: Use native APIs for forward/reverseGeocoder()
  • TIMOB-28396 - iOS: Use native APIs for forward/reverseGeocoder()
  • TIMOB-28403 - Analytics: Limit number of cached events
  • TIMOB-28198 - Deprecate TableViewRow header footer properties

Bug Fixes

Multiple platforms

  • TIMOB-26304 - TiAPI: Ti.UI.TableViewRow.* selectedBackgroundColor partially deprecated
  • TIMOB-27807 - convertPointToView() to use "ti.ui.defaultunit" (b4f6c3e)
  • TIMOB-28205 - Angular: packaging an angular app fails
  • TIMOB-28264 - Improve Ti.UI documentation to reflect current state
  • TIMOB-28367 - Ti.UI.ProgressBar should smoothly animate value changes
  • TIMOB-28401 - declare all variables before their usage (062c06d)
  • replace shortened URLs with long URLs (d0caea0)
  • filepath compatibility with windows (824488f)
  • handle when project has no root package.json (7b9a747)
  • record output files for process js task (e7951bd)
  • remove unused event (56ddf95)
  • support cjs files in apps equivalent to js files (4b2c8fc)

Android platform

  • TIMOB-24365 - Ti.UI.ActivityIndicator "indicatorColor" not working
  • TIMOB-24735 - AttributedString link underline color
  • TIMOB-26663 - touchFeedbackColor doesn't work if view has a transparent backgroundColor and a border (5b5ac48)
  • TIMOB-27504 - touchFeedback / ripple does not work when tapped from child view (5e77724)
  • TIMOB-27807 - convertPointToView() returns pixels instead of default units
  • TIMOB-28208 - Several memory leaks in Titanium
  • TIMOB-28270 - App builds fail if it includes the "jaxen" library
  • TIMOB-28272 - Accelerometer spams warning messages when exiting app (e10b6e6)
  • TIMOB-28329 - touchFeedback property on ListView is ignored and true by default (5e77724)
  • TIMOB-28330 - Application crashes when scrolling a listview with zero items in the first section:
  • TIMOB-28333 - rgba(int,int,int) parity with iOS (d36c5c7)
  • TIMOB-28345 - CLI: -b shorthand does not work for Android and perform a full build
  • TIMOB-28352 - Application crashes when scrolling to listview marker
  • TIMOB-28375 - Hyperloop fails to access enum types with JDK 12
  • TIMOB-28376 - Update header and footer view activity (ef5c95d)
  • TIMOB-28383 - minRowHeight of tableview does not work
  • TIMOB-28384 - rightImage property for tableviewrow does not work for res images in "/images/" folder
  • TIMOB-28385 - ListView crash error on SDK 9.3.X
  • TIMOB-28387 - index in TableView click event is no longer unique
  • TIMOB-28388 - Calling updateRow does not update rows other than the first row
  • TIMOB-28389 - Calling TableViewRow.remove does not remove child view that is a Label
  • TIMOB-28399 - TableView setData does not preserve TableViewRow child views (cee557b)
  • TIMOB-28404 - amend TabGroup selected tab (c08379b) (d13c884)
  • TIMOB-28406 - ListView on a modal with a * transparent background is invisible (55910d8)
  • TIMOB-28410 - ListView causes ArrayIndexOutOfBoundsException in production (aa7a8c2)
  • add back Ti.Media.Sound.setLooping for now (1c14926)
  • add V8Promise constructor with existing pointer value (b1d88f9)
  • avoid calling toString on empty clipboard text (d0b632f)
  • explicitly define Ti.Android.currentService to be null when not a service (7ce713c)
  • expose builder property for hyperloop to mark js files not to process (a6ad3ed)
  • expose properties for get/set pairs on QuickSettingsService (b21ece2)
  • expose Ti.UI.Tab activeTintColor/tintColor properties (63844f1)
  • fix Ti.Blob.arrayBuffer definition (2d9bfce)
  • guard copying processed js to not do so when encrypting (9c23b99)
  • handle resource images/drawables and splash screens (3cd22eb)
  • override global.L behavior for non-string default values (6f6cea2)
  • reject promise with Error in MediaModule (1de2eb3)
  • remote policy encryption error dialog handling (222cba1)
  • remove getters for documented properties on RecurrenceRule (a413a9e)
  • remove set methods for width/height/center for Views (70bd7a7)
  • restore MenuItem is* boolean query methods (49a6f7f)
  • restore Sound is* boolean query methods (c35cc4a)
  • set minSdkVersion to 19 (8440ad7)
  • TableView regressions (65ed909)
  • the Ti.UI.Clipboard#hasData() arg is optional (51b6428)
  • use C++14 when building native modules (2df13a9)
  • warning logged by widgets when needlessly removing background (f89fecf)

iOS platform

  • TIMOB-26913 - New SearchBar property "showSearchBarInNavBar" does not work with custom item templates
  • TIMOB-27888 - circular references in require don't work
  • TIMOB-28037 - Relative path require not working with node_modules
  • TIMOB-28209 - App orientations stopped when using the search bar in the listview (10c1a25)
  • TIMOB-28217 - Ti.Media.VideoPlayer is crashing when setting showsControls earlier than url property (e84ce9d)
  • TIMOB-28267 - removing eventlistener multiple times ourCallbackCount should not be in negative value (798bd54)
  • TIMOB-28275 - RemovingEventListener in Location event will freeze App (0749a30)
  • TIMOB-28281 - Support Big Sur / Apple Silicon
  • TIMOB-28297 - support ti symbols via xcconfig file to work with swift (c61d943)
  • TIMOB-28324 - image from filereader function not being called (a18fb68)
  • TIMOB-28325 - ListView row is incorrectly sized when using INSET_GROUPED and Ti.UI.SIZE (4488fe2)
  • TIMOB-28331 - Updating the "labels" property in the "Ti.UI.TabbedBar" sometimes does not work (6ffe8f9)
  • TIMOB-28360 - DocumentViewer setAnnotation method causing a crash (bba9eef)
  • TIMOB-28361 - largeTitleDisplayMode always is not respected on load when using a ListView in a Window (26b5bfe)
  • TIMOB-28382 - Requiring a native module errors when building with liveview
  • TIMOB-28394 - openWindow transition broken / frame dropping (10.x regression)
  • TIMOB-28401 - Building an app with a DefaultIcon that contains alpha errors
  • TIMOB-28404 - tabGroup.setActiveTab() and text.setSelection() shows an error (fff45b2)
  • TIMOB-28408 - App with remote policy encryption crashes when offline (5c9d3f9)
  • autorelease Ti.Blob#arrayBuffer() Promise (9afe176)
  • call callback on Geolocation#requestTemporaryFullAccuracyAuthorization if missing purpose (2155d0a)
  • convert JSValue* to JSValueRef directly (33508b6)
  • convert KrollPromise to JSValueRef for return types of old proxies (62ee5c5)
  • deprecate selectedBackgroundColor and selectedBackgroundImage (dc07aeb)
  • deprecate selectedBackgroundGradient (9cf10cd)
  • detect when ios has service (7fe9cf4)
  • error code/object for Ti.Geolocation permissions/position (974a7f6)
  • explicitly flush KrollPromises created internally and not exposed to JS (682e64a)
  • expose KrollPromise as part of TitaniumKit (a6d2c5b)
  • expose Ti.Network.HTTPClient#getAllResponseHeaders() (e520aa2)
  • fire authorization changes even when no callback (25a1873)
  • fix list-view crash (7c1aa59)
  • fix sytax error (0d662e1)
  • fixed sdk build issue (b0c41aa)
  • formatting (d325bac)
  • guard launch image code to ios only, match to only root images (7ce99e8)
  • guard simulator check for Ti.Platform.model with define (1bcf4d6)
  • have KrollPromise static methods return instancetype, not JSValue* (de50c8c)
  • if user supplies no specific auth constant for hasLocationPermissions, assume WHEN_IN_USE (5db8321)
  • implement Ti.Blob binary toString natively (ce900a7)
  • implement Ti.Blob.arrayBuffer natively (46842aa)
  • implement Ti.UI.Tab.setWindow() in JS to avoid error (2185a8f)
  • make JSValue nonatomic property, retain it under the hood, handle exception in creation (10c4acd)
  • make KrollPromise no-op under covers when KrollFinalizer is running to avoid crash (b3aaaa3)
  • merged switch statment (97d157a)
  • minor fixes for Ti.Geolocation#requestLocationPermissions() (82ff625)
  • modify gathering of npm packages (82f7a33)
  • prevent deprecation warning (d36b81b)
  • properly handle Ti.UI.Clipboard.setData with Files (485f5cf)
  • report Ti.Media.VideoPlayer.error event with all typical error properties (2f1a84b)
  • tweak to get correct platform values on macos (e9a6587)
  • use compile guard for determining if macos (df14d0a)
  • remove unsupported architectures (a4e61bf)

Features

Multiple platforms

Android platform

iOS platform

  • TIMOB-20473 - Support storyboard in iOS-modules (7292d1b)
  • TIMOB-27355 - Support native iOS 13+ JavaScriptCore promises
  • TIMOB-27865 - Titanium should add view controllers as children
  • TIMOB-28259 - Replace OSSpinLock usage with os_unfair_lock
  • TIMOB-28282 - Use supportedInterfaceOrientations of UINavigationController.topViewController instead of UINavigationController
  • TIMOB-28297 - swift files doesn't recognize macros defined in defines.h
  • TIMOB-28302 - macOS: Add checkbox style to Ti.UI.Switch
  • TIMOB-28304 - Enabling swift in Objc based module is failing while building
  • TIMOB-28334 - Update modules to set minimum target iOS 11
  • TIMOB-28342 - Drop iOS 11 support in titanium SDK 10
  • have Ti.Database.DB.executeAllAsync return a Promise (6c4253f)
  • have Ti.Database.DB.executeAsync return a Promise (fbbbe98)
  • include project root node_modules folder in app (84d5641)
  • move to JS based require implementation (1e66008)
  • return Promise from Ti.UI.Window.open()/close() (5fa6258)
  • return Promises from Ti.Geolocation.getCurrentHeading/Position methods (a4015cd)
  • support Ti.UI.NavigationWindow#open()/close() returning Promise (ca09400)
  • support Ti.UI.TabGroup#open()/close() returning Promise (cafd270)

SDK Module Versions

ModuleAndroid versioniOS Version
facebook11.0.211.0.0
ti.cloudpush7.1.0n/a
ti.map5.0.15.0.0
ti.webdialog2.0.03.0.0
ti.playservices17.5.0n/a
ti.identity3.0.24.0.0
urlSessionn/a4.0.0
ti.coremotionn/a4.0.0
ti.applesigninn/a3.0.0
ti.cloud3.2.113.2.11
hyperloop7.0.17.0.1

Titanium SDK Documentation