Titanium Mobile SDK Release 2.0.1 is a feature release of the Titanium Mobile SDK, including several new features and a number of bug fixes and parity improvements.
This is Release 2.0.1.GA Rev. 2. The initial 2.0.1.GA release was missing the Appcelerator Cloud Services modules (Titanium.Cloud and Titanium.CloudPush). If you installed the initial GA release, please install this version to receive the ACS modules.
This release includes breaking changes that may require changes to existing applications developed with previous releases. Please read these release notes completely before installing and using the Release 2.0.1 SDK. In particular, you should review the following sections:
- Layout System Updates
- Android Geolocation Enhancements
If you are upgrading from Titanium Mobile SDK 220.127.116.11 or earlier, this release also includes all fixes included in Releases 1.8.1 and 1.8.2.
For a list of issues addressed in these releases, see the release notes for the previous releases:
Note that Release 1.8.1 included fixes related to developing modules. If you are developing iOS or Android modules, see the 1.8.1 Release Notes for more information.
Further information is available in the Titanium Mobile SDK and Titanium Studio Documentation.
New in This Relase
- Layout System Updates
- Support for Appcelerator Cloud Services (formerly CocoaFish)
- Mobile Web Platform Release Candidate
- Android Geolocation Enhancements
- Defined Module APIs for Android and iOS
Layout System Updates
This release implements the Composite Layout Specification, a major update to the UI layout system. The composite layout specification involves several changes to the way the UI system lays out controls, so that all platforms can follow a common layout model.
The major changes to the layout system involve:
- Improved handling for automatic sizing of views
- Batch layout updates for improved performance
- Post-layout event generated when layout is complete
- New precedence order for layout parameters
These changes affect UI behavior on all platforms, and may require application changes.
For details, see Transitioning to the New UI Layout System in the Titanium Mobile Guides.
Appcelerator Cloud Services Support
This release includes bundled Titanium modules for using Appcelerator Cloud Services (ACS). ACS provides a range of backend services for mobile applications, including user management, social integration, data storage and push notifications.
The ACS modules are documented in the main API reference, but they are not included in the Titanium core. To use the main ACS module, you must import it using require
var Cloud = require(‘ti.cloud’);
To use ACS push notifications on Android, you must also import the Titanium.CloudPush module:
var Push = require(‘ti.cloudpush’);
To use ACS services, you must enable ACS for your project. See Appcelerator Cloud Services in the Titanium Mobile Guides for details on how to enable ACS in a Titanium project.
For further documentation and examples of using ACS in Titanium, see the API reference for Titanium.Cloud.
ACS also provides a REST API and native SDKs for many platforms. For more information, visit cloud.appcelerator.com.
Mobile Web Release Candidate Status
The Mobile Web platform is now officially in Release Candidate status. The majority of the Titanium Mobile API is now implemented for Mobile Web.
Specifically, Mobile Web implements a cross-platform subset of the Titanium Mobile APIs, excluding any platform-specific APIs and any APIs that require features not available to applications running in a browser.
The following features are not yet implemented for Mobile Web, but will be supported in a future release:
- Titanium.Locale — local locale specific date/currency formatting is not yet implemented. Localized messages are implemented.
The following UI controls are not implemented because they are platform-specific controls that have not yet been moved to a platform-specific namespace.
Finally, the Titanium.Contacts module is not supported because no standard exists to expose a device’s contacts data to applications running in the browser.
Certain APIs are subject to limitations on Mobile Web because of the constraints imposed on application running in the browser. For more information, see Mobile Web Limitations.
Android Geolocation Enhancements and Geolocation Simple Mode
This release includes several improvements for geolocation on Android, and a new “simple mode” for geolocation that is supported on Android, iOS, and Mobile Web.
- Simple mode has two accuracy settings, ACCURACY_HIGH and ACCURACY_LOW. This provides a simple, cross-platform mode for configuring location updates. This is the only mode supported on Mobile Web. On iOS and Android, this mode should only be used for applications with basic location requirements.
- For applications that have more demanding location requirements on Android, there is a new manual mode for fine-grained control of location updates.
- On iOS, applications can continue to use the existing geolocation capabilities.
NOTE: Applications using the existing geolocation capabilities in Android should either switch to simple mode or to manual mode.
For details on the new geolocation support, see:
In this release, the native APIs that can be used by native Android and iOS modules have been documented. The module APIs are not integrated into the main documentation site, but you can find them at the following locations:
This section lists the most notable known issues and regressions in this release.
- iOS: WebView canGoBack/canGoForward does not work for local files. (TIMOB-7965)
- iOS: VideoPlayer does not fire touch events. This was a regression in Release 1.8.1. (TIMOB-8486)
- Android: Titanium.CloudPush module does not work with Android OS 3.0 and newer. A fix for this issue is being tested and an updated module will be made available soon. (CLOUDSRV-429)
Android Fixes and Enhancements
- Geolocation enhancements. See Android Geolocation Enhancements and Geolocation Simple Mode.
- Support for Android SDK Tools, Revision 17 and Revision 18.
- Support for background image tiling on a view. This feature was added for iOS in Release 1.8.1. (TIMOB-6586)
- Several fixes related to WebViews:
- Improved handling of local URLs inside WebView, including correctly handling forward/back for local URLs (TIMOB-8028); and resolving a crash that occurred when reopening a local URL (TIMOB-8144).
- Fixed a regression where a WebView reloaded when it was removed from the view hierarchy, and then re-added. (TIMOB-7808),
- Fixed a web view crash that occurred when handling the back button. (TIMOB-7695).
- Resolved a crash when reusing a web view on an activity window. (TIMOB-8267)
- Resolved several issues related to the html property. (TIMOB-974 and TIMOB-7840)
- Improved open event handling for tabs. (TIMOB-8192)
For a complete list of Android fixes in this release, see: Fixed Android Issues in JIRA
iOS Fixes and Enhancements
The following section lists notable bug fixes in iOS.
- Added support for Xcode 4.3 and iOS 5.1. See Using Xcode 4.3 for details.
- Added support for the iPad 2012.
- Improved CommonJS module encoding.
- Titanium.Platform.id now returns a per-application unique ID, instead of the Apple UDID.
This change was required because Apple has changed its policies, and apps using UDID may now be rejected from the app store. (TIMOB-8173)
- Newsstand content notifications. (TIMOB-5910)
- Fixed “suspend” and “resume” behavior. (TIMOB-4538)
- Several App verification fixes. (TIMOB-6575, TIMOB-7674))
- Fixed numerous crashes. (TIMOB-8105, TIMOB-8102, TIMOB-8081, TIMOB-7334)
- Fixed memory leaks and garbage collection issues. (TIMOB-7644, TIMOB-7642, TIMOB-7467, TIMOB-6463)
- HTTP client support for Shift_JIS, EUC-JP encodings. (TIMOB-6835)
For a complete list of iOS fixes in this release, see: Fixed iOS Issues in JIRA.
Using Xcode 4.3
In previous releases of Xcode, when a new version of Xcode was installed, the installer invoked the xcode-select command to set the new version of Xcode as the active version.
With Xcode 4.3, Xcode is installed by default in a different directory (under /Applications instead of under /Developer), and it does not run xcode-select to update the Xcode path. If you have both Xcode 4.2 and Xcode 4.3 installed, you will need to run xcode-select manually to determine which version of Xcode is used.
To select Xcode 4.3, run the following command:
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
To select Xcode 4.2, run the following command:
sudo xcode-select -switch /Developer
If you installed either version of Xcode in a non-default location, you will need to specify the appropriate path in the command.
Mobile Web Fixes and Enhancements
With this release, the Mobile Web platform is a Release Candidate. See Mobile Web Platform Release Candidate Status for a summary of what is currently supported in Mobile Web as well as known limitations.
For a complete list of Mobile Web fixes in this release, see: Fixed Mobile Web Issues in JIRA.
Documentation Fixes and Enhancements
This release includes a number of documentation fixes and enhancements, including the new unified documentation site for the Titanium Mobile SDK and Titanium Studio:
Known Issues With the Documentation Site
- Left-hand navigation tree occasionally stops scrolling. Reloading the site should fix this problem.
- Display anomalies when a large number of tabs are open.
For a complete list of documentation fixes in this release, see: