Release Notes

Titanium SDK 3.4.0 Beta - 09/05/2014

Contents

About This Release

This is a Beta version of Titanium SDK 3.4.0 and should not be used for production. This Release introduces a number of new features. See New Features for a summary of new features in this release.

Note that this release includes feature and behavior changes. See Notice of Feature and Behavior Changes for details.

This release includes over 50 bug fixes and improvements, see the full list of issues that were addressed in Release 3.4.0

Alloy 1.5.0

This Release coincides with the release of Alloy 1.5.0.

Summary of Changes:

For more details, see the Alloy Changelog.

Android L Support

This Release does not officially support the Android L SDK, since it is in beta. However, a number of bugs have been fixed to support the Android L SDK, and you can build and install Titanium applications to devices running Android L. You cannot build a Titanium application against the Android L SDK using this Release.

To target a build using the Android L SDK, you need to use a pre-release version of the Titanium SDK 3.5.0. You are encouraged to file bugs if you encounter issues compiling or running Titanium applications with the L SDK.

iOS and Xcode Support

As of this Release, the Titanium SDK only supports the iOS 8 SDK and Xcode 6 to build iOS applications for devices running iOS 8 and iOS 7.x. Devices running iOS 6.x are no longer officially supported.

Note that Xcode 6 requires Mac OS X 10.8.4 (Mavericks) and later.

Studio 3.4.0

This Release coincides with the release of Studio 3.4.0.

Summary of Changes:

For more details, see the Studio Release Notes.

Titanium CLI 3.4.0

This Release coincides with the release of Titanium CLI 3.4.0.

Summary of Changes:

For more details, see the CLI Changelog.

Notice of Feature or Behavior Changes

Android Platform

This section lists changes for the Android platform.

Activity Lifecycle Events

As of this Release, the activity's lifecycle events (create, destroy, pause, resume, start and stop) are deprecated and will be removed in a future release. Use the activity's lifecycle callback properties instead. See the Activity Lifecycle Callbacks section below.

iOS Platform

This section lists changes for the iOS platform.

Register for Local Notifications

In iOS 8, the application must ask the user for permission before using local notifications. For devices running iOS 8 and later, you need to register the application to use the local notification services. Use the Titanium.App.iOS.registerForLocalNotifications() method to enroll the application in local notification services. Pass the method a dictionary with the type property set to the notification types to use.

Ti.App.iOS.registerForLocalNotifications({
    types: Ti.App.iOS.NOTIFICATION_TYPE_ALERT | Ti.App.iOS.NOTIFICATION_TYPE_SOUND | Ti.App.iOS.NOTIFICATION_TYPE_BADGE
});

For iOS 7 and older, the application does not need to request the user's permission to use local notifications.

New Features

This section describes new features introduced in Release 3.4.0.

Android Platform

This section lists new features and improvements only available on the Android platform.

Activity Lifecycle Callbacks

To be notified when an activity's lifecycle event is triggered, assign callbacks to the following activity properties:

These properties deprecate the activity's lifecycle events (create, destroy, pause, resume, start and stop).

HTTPClient file property

This Release adds support for HTTPClient's file property. Use this property to target a local, writable file to receive the HTTP response data.

Previously, the Android platform did not support this property.

TabGroup Activity

As of this Release, you can set properties on the TabGroup's activity before opening the tab group, which matches the same behavior as a Window activity.

Prior to this Release, you can only set Activity properties from a TabGroup object after the tab group opens.

Window theme property

Starting with this Release, the Titanium SDK introduces the theme property for Windows. Use the theme property to override the global theme for an individual window. Set the property to the name of the theme you want to apply to the window. The property can only be set when creating the Window object and cannot be changed after it is set.

var win = Ti.UI.createWindow({theme: "Theme.AppCompat.Fullscreen"});

iOS Platform

This section lists new features and improvements only available on the iOS platform.

Interactive Local Notifications

Starting with this Release, you can create interactive local notifications, where users can respond to application notifications without launching the application to the foreground. The user needs to reveal notification actions in the notification, then press a notification action to respond to the notification. This feature is available on devices running iOS 8 or later.

For more information, see the "Create an Interactive Notification" section in the iOS Local Notifications guide.

Touch ID Module

The Touch ID module allows an application to use the iOS Touch ID security mechanism. Touch ID is a security mechanism that uses a fingerprint to authenticate the user. The fingerprint sensor is located in the Home button of the device. Users can use their fingerprint instead of entering their passcode for authentication.

For more information, see the Touch ID module API reference.

Known Issues

Deformed Keyboard on iPhone 5S

When displaying the keyboard in the iPhone 5S, the keyboard may be deformed (TIMOB-17603).

Devices Window Launched Instead of Organizer Window

When packaging an application for the iTunes App Store, the Devices window is launched instead of the Organizer window (TIMOB-17600).

To workaround this issue, you need to manually launch the Xcode Organizer window. Launch Xcode 6, and from the menu bar, select Window > Organizer.

Installation Failure when Multiple iOS Devices are Plugged in

If multiple devices are plugged in, building to device may fail to install to the first plugged-in device (TIMOB-17595).

To workaround this issue, unplug all devices and plug only one back in.

Force Orientation in a TabGroup on iOS

When opening windows in a tab group stack on iOS, do not force the orientation of the window to an orientation not supported by the tab group or application. If you need to force the orientation of a window, open a modal window.

iOS Simulator Issues

When building an application to the iOS 8 simulator, the application may fail to build and install to the simulator, even though the simulator is launched (TISTUD-6875).

To workaround this issue, rebuild the application.

When building an applicaiton to the iOS simulator, the simulator may hang on a black screen for a while before showing the splash screen image, then return to the home screen (TIMOB-17601).

API Changes

New APIs

The following APIs are new or have expanded platform support in Release 3.4.0.

APITypeNotes
Modules.TouchIdmodule

Allows a Titanium application to use the iOS Touch ID authentication mechanism. (New API, supported on iPhone and iPad.)

Titanium.Android.Activity.getOnCreatemethod

Gets the value of the onCreate property. (New API, supported on Android.)

Titanium.Android.Activity.getOnDestroymethod

Gets the value of the onDestroy property. (New API, supported on Android.)

Titanium.Android.Activity.getOnPausemethod

Gets the value of the onPause property. (New API, supported on Android.)

Titanium.Android.Activity.getOnRestartmethod

Gets the value of the onRestart property. (New API, supported on Android.)

Titanium.Android.Activity.getOnResumemethod

Gets the value of the onResume property. (New API, supported on Android.)

Titanium.Android.Activity.getOnStartmethod

Gets the value of the onStart property. (New API, supported on Android.)

Titanium.Android.Activity.getOnStopmethod

Gets the value of the onStop property. (New API, supported on Android.)

Titanium.Android.Activity.onCreateproperty

Callback function called when the Android activity is created. (New API, supported on Android.)

Titanium.Android.Activity.onDestroyproperty

Callback function called when the Android activity is destroyed. (New API, supported on Android.)

Titanium.Android.Activity.onPauseproperty

Callback function called when the Android activity is paused. (New API, supported on Android.)

Titanium.Android.Activity.onRestartproperty

Callback function called when the Android activity is restarted. (New API, supported on Android.)

Titanium.Android.Activity.onResumeproperty

Callback function called when the Android activity is resumed. (New API, supported on Android.)

Titanium.Android.Activity.onStartproperty

Callback function called when the Android activity is started. (New API, supported on Android.)

Titanium.Android.Activity.onStopproperty

Callback function called when the Android activity is stopped. (New API, supported on Android.)

Titanium.Android.Activity.setOnCreatemethod

Sets the value of the onCreate property. (New API, supported on Android.)

Titanium.Android.Activity.setOnDestroymethod

Sets the value of the onDestroy property. (New API, supported on Android.)

Titanium.Android.Activity.setOnPausemethod

Sets the value of the onPause property. (New API, supported on Android.)

Titanium.Android.Activity.setOnRestartmethod

Sets the value of the onRestart property. (New API, supported on Android.)

Titanium.Android.Activity.setOnResumemethod

Sets the value of the onResume property. (New API, supported on Android.)

Titanium.Android.Activity.setOnStartmethod

Sets the value of the onStart property. (New API, supported on Android.)

Titanium.Android.Activity.setOnStopmethod

Sets the value of the onStop property. (New API, supported on Android.)

Titanium.App.iOS.NOTIFICATION_ACTIVATION_MODE_BACKGROUNDproperty

Use with createUserNotificationAction method. The action will execute in background (New API, supported on iPhone and iPad.)

Titanium.App.iOS.NOTIFICATION_ACTIVATION_MODE_FOREGROUNDproperty

Use with createUserNotificationAction method. The action will execute in foreground (New API, supported on iPhone and iPad.)

Titanium.App.iOS.NOTIFICATION_TYPE_ALERTproperty

Use with registerForLocalNotifications method. The application may display an alert upon a notification being received (New API, supported on iPhone and iPad.)

Titanium.App.iOS.NOTIFICATION_TYPE_BADGEproperty

Use with registerForLocalNotifications method. The application may badge its icon upon a notification being received. (New API, supported on iPhone and iPad.)

Titanium.App.iOS.NOTIFICATION_TYPE_NONEproperty

Use with registerForLocalNotifications method. The application may not present any UI upon a notification being received. (New API, supported on iPhone and iPad.)

Titanium.App.iOS.NOTIFICATION_TYPE_SOUNDproperty

Use with registerForLocalNotifications method. The application may play a sound upon a notification being received. (New API, supported on iPhone and iPad.)

Titanium.App.iOS.createUserNotificationActionmethod

Creates notification action (New API, supported on iPhone and iPad.)

Titanium.App.iOS.createUserNotificationCategorymethod

Creates notification category (New API, supported on iPhone and iPad.)

Titanium.App.iOS.registerForLocalNotificationsmethod

Registers the app for local notifications (New API, supported on iPhone and iPad.)

Titanium.Network.HTTPClient.fileproperty

Target local file to receive data. (Added support for Android.)

Titanium.UI.Window.getThememethod

Gets the value of the theme property. (New API, supported on Android.)

Titanium.UI.Window.themeproperty

Name of the theme to apply to the window. (New API, supported on Android.)

Deprecated APIs

The following APIs are deprecated in Release 3.4.0.

APITypeNotes
Titanium.Android.Activity.createevent

Use the onCreate property instead.

Titanium.Android.Activity.destroyevent

Use the onDestroy property instead.

Titanium.Android.Activity.pauseevent

Use the onPause property instead.

Titanium.Android.Activity.resumeevent

Use the onResume property instead.

Titanium.Android.Activity.startevent

Use the onStart property instead.

Titanium.Android.Activity.stopevent

Use the onStop property instead.

Removed APIs

The following APIs have been removed in Release 3.4.0.

APITypeNotes
Titanium.Network.HTTPClient.addKeyManagermethod
Titanium.Network.HTTPClient.addTrustManagermethod