# Titanium SDK 8.0.0.RC - 20 February 2019

# About this release

Titanium SDK 8.0.0 is a major release of the SDK, addressing high-priority issues from previous releases.

# LiveView

Integrating LiveView into the SDK allows us to provide a better experience to users who use the Atom and VS Code editor plugins or use the CLI by itself.

If you're using Studio, you'll need to download Studio 5.1.2.201812191857 from the Beta stream on https://preview.appcelerator.com/appc-studio/ (opens new window). This beta contains an updated LiveView that accounts for the LiveView integration in SDK 8.0.0.

If you are installing the LiveView package from npm and installing the hook in that package, you will need to remove the path from the paths.hooks array in ~/.titanium/config.json. This install method has never been officially supported and conflicts with the LiveView installation in the SDK.

# SOASTA Module

SOASTA Module is not included in this version. Users using Soasta module for their automated testing are advised to use version 7.x of the SDK.

# Parity for Ti.UI.NavigationWindow

Moved from Ti.UI.iOS.NavigationWindow to Ti.UI.NavigationWindow in order to make it cross platform and deprecated Ti.UI.iOS.NavigationWindow

# Support

As of this release, Titanium SDK 8.x will not be supported one calendar year (2020-02-20) from 8.0.0.GA's release date. See Axway Appcelerator Deprecation Policy and Nominal Lifetimes documents for details.

# Notice of feature and behavior changes

# Android platform

  • TIMOB-24851 (opens new window) - Android: Deprecate Label "wordWrap" property (it's not needed)

    • Deprecated wordWrap property of Ti.UI.Label
  • TIMOB-26075 (opens new window) - Android: Refactor app resume and "newintent" handling

    • Fixed bug where an intent can create a 2nd app instance stuck at the splash screen if an app instance already exists.

      • This hanging event typically happens when app is launch via URLs, tapping notifications, and so on

      • Resolve this issue by immediately destroying second instance, resuming existing activity, and firing a newintent event which simulates Android singleTask handling

  • TIMOB-26132 (opens new window) - Android: Remove Ti.Geolocation "legacy" mode

    • Removed ACCURACY_* constants and the frequency + preferredProvider property
  • TIMOB-26340 (opens new window) - Android: Update V8 runtime to 7.0.276.42

    • updated V8 runtime to 7.0.276.42
  • TIMOB-26227 (opens new window) - Android: Remove kroll-thread

    • Removed deprecated kroll thread
  • TIMOB-26633 (opens new window) - Android: Change min supported version to Android 4.4 (API Level 19)

    • Pushed the minimum Android OS supported version to Android 4.4 (API Level 19)
  • TIMOB-26638 (opens new window) - Android: Root Ti.Android.Activity "intent" property should be updated when "newintent" event is fired

    • intent property used to be assigned the intent that originally launched/created the activity and would never change

    • This is needed in case newintent event gets fired before the app.js has a chance to set up a listener for it. Can happen when receiving a URL intent during a cold start of the app.

  • TIMOB-26560 (opens new window) - Android: Remove deprecated Ti.UI.KEYBOARD_* constants in favor of TI.UI.KEYBOARD_TYPE_*

    • Removed deprecated Ti.UI.KEYBOARD_* constants. Use TI.UI.KEYBOARD_TYPE_* in its place

# iOS platform

# Windows platform

  • TIMOB-25582 (opens new window) - Windows: Support for dp in ti.ui.defaultunit

    • Added support for dp unit for ti.ui.defaultunit

    • Previously, Windows default unit was "px". As of this release, the default value will be "dp". In order to keep consistency between previous versions, you will need to explicitly set <property name="ti.ui.defaultunit" type="string">px</property> in tiapp.xml.

  • TIMOB-26503 (opens new window) - Windows: Touch event coordinate units do not match between platforms

    • Parity for touch event coordinate units
  • TIMOB-26562 (opens new window) - Windows: Remove deprecated Ti.UI.KEYBOARD_* constants in favor of TI.UI.KEYBOARD_TYPE_*

    • Removed deprecated Ti.UI.KEYBOARD_* constants. Use TI.UI.KEYBOARD_TYPE_* in its place

# Multiple platforms

  • TIMOB-23496 (opens new window) - TiAPI: Deprecate old Geolocation properties, add more parity

    • Throw deprecation notices when Ti.Geolocation.reverseGeocode is returned (with suggested replacements)

    • Deprecated country_code, displayAddress and zipcode properties in favor of countryCode, address and postalCode,respectively

    • Breaking change: latitude and longitude are returned as numbers and not string on Android (parity with iOS and Windows behavior)

  • TIMOB-24589 (opens new window) - TiAPI: Remove Ti.Yahoo from SDK-core

    • Removed Ti.Yahoo from SDK core and moved it into it's own module
  • TIMOB-25650 (opens new window) - Upgrade to babel 7

    • Updated to Babel 7
  • TIMOB-26119 (opens new window) - TiAPI: Deprecate getter/setter accessor methods for properties

    • Deprecated getter/setter accessor methods
  • TIMOB-26153 (opens new window) - CLI: Remove Node 4 as a supported version

    • Removed node 6 from supported versions
  • TIMOB-26410 (opens new window) - LiveView: Integrate liveview into the SDK

    • Integrated LiveView in the SDK
  • TIMOB-26137 (opens new window) - TiAPI: Move 2DMatrix and 3DMatrix to Matrix2D and Matrix3D

    • Renamed 2DMatrix and 3DMatrix to Matrix2D and Matrix3D to address ES6 imports and Angular and View support
  • TIMOB-26140 (opens new window) - Windows: Move 2DMatrix and 3DMatrix to Matrix2D and Matrix3D

    • Renamed 2DMatrix and 3DMatrix to Matrix2D and Matrix3D to address ES6 imports and Angular and View support
  • TIMOB-26661 (opens new window) - Update Hyperloop to 4.0.0

    • Updated the SDK's bundled Hyperloop version to 4.0.0
  • TIMOB-26740 (opens new window) - Update Hyperloop to 4.0.1

    • Updated the SDK's bundled Hyperloop version to 4.0.1

# New features

# Android platform

  • TIMOB-16789 (opens new window) - Android: Add animation "curve" support

    • Parity for Ti.UI.Animation animation curves
  • TIMOB-17389 (opens new window) - Android: Implement FastScroll capability on ListView

    • Added fastScroll to ListViews
  • TIMOB-24582 (opens new window) - Android: Navigation parity for a cross-platform Ti.UI.NavigationWindow

    • Implemented Ti.UI.NavigationWindow
  • TIMOB-25953 (opens new window) - Android: Add "Ti.UI.TabbedBar" support

    • Parity for Android adding Ti.UI.TabbedBar
  • TIMOB-26354 (opens new window) - Android: Refactor TabGroup and introduce new style

    • Refactored TabGroup by replacing ActionBar with TabLayout and introduced a new style for using BottomNavigationView
  • TIMOB-26636 (opens new window) - Android: Remove deprecated "newIntent" event in favor of "newintent"

    • Removed deprecated newIntent event in favor of newintent
  • TIMOB-26637 (opens new window) - Android: Add "rootActivity" property to Ti.Android module

    • Improved intent-filter usability since only the root activity will receive the new intent

    • The currentActivity property always references the top-most activity opened by Ti.UI.Window

# iOS platform

  • TIMOB-26060 (opens new window) - iOS: Move iOS-only Ti.UI.iOS.NavigationWindow to cross-platform Ti.UI.NavigationWindow

    • Parity: Moved from Ti.UI.iOS.NavigationWindow to Ti.UI.NavigationWindow in order to make it cross platform and deprecated Ti.UI.iOS.NavigationWindow
  • TIMOB-26461 (opens new window) - iOS: Add "safeAreaPadding" property to Ti.UI.Window

    • Parity for iOS of Ti.UI.Window's safeAreaPadding property
  • TIMOB-26674 (opens new window) - iOS: Un-deprecate "Ti.UI.TabbedBar" and deprecate "Ti.UI.iOS.TabbedBar"

    • Ti.UI.TabbedBar support was added to Android in 8.0.0

    • Re-added Ti.UI.TabbedBar support to iOS

    • Calling Ti.UI.iOS.createTabbedBar() now logs a deprecation warning

# Windows platform

  • TIMOB-25537 (opens new window) - Windows: Navigation parity for a cross-platform Ti.UI.NavigationWindow

    • Parity for Ti.UI.NavigationWindow
  • TIMOB-26415 (opens new window) - Windows: Added Ti.App event "userinteraction" and property "trackUserInteraction"

    • Added userinteraction and trackuserInteraction to Ti.App
  • TIMOB-26464 (opens new window) - Windows: Add Ti.UI.Window property "safeAreaPadding"

    • Parity for Windows of Ti.UI.Window's safeAreaPadding property
  • TIMOB-26498 (opens new window) - Windows: ListView item template support CommonJS modules and Alloy widgets

    • Added feature that allows ListView template to support CommonJS modules and Alloy widgets

# Multiple platforms

# Community credits

# Fixed issues

# Android platform

# iOS platform

# Windows platform

# Multiple platforms

# Improvements

# Android platform

  • TIMOB-17931 (opens new window) - Android: support the theme property for TabGroups

    • Added support for theme properties for TabGroups
  • TIMOB-25200 (opens new window) - Android: Expose BottomNavigationView as new Android Ti.UI.TabGroup

    • Added support for BottomNavigationView in Ti.UI.TabGroup
  • TIMOB-26288 (opens new window) - Android: Add ability to hide/show back button on Window

    • Added ability to toggle back button on window
  • TIMOB-26355 (opens new window) - Android: Implement V4 Analytics specification

    • Implemented V4 payload specification
  • TIMOB-26402 (opens new window) - Android: Maintain native module compatibility with Titanium 7.0.0

    • Updated V8 to 7.0.276.13

    • Maintain backwards compatibility with existing Titanium 7.X.X native modules

    • Included missing/deprecated methods from previous V8 versions to maintain backwards compatibility with Titanium 7.0.0

  • TIMOB-26518 (opens new window) - Android: Webview FireEvent not get fired in correct sequence

    • Fixed WebView code execution order
  • TIMOB-26645 (opens new window) - Android: Calling finish() on root splash screen activity should exit the app

    • This makes it easier for Titanium apps launched via startActivityForResult() since the app needs to call setResult() and finish() methods on root activity to return a result
  • TIMOB-24659 (opens new window) - Android: Add support for the roundIcon attribute

    • Added support for the roundIcon attribute

# iOS platform

# Windows platform

  • TIMOB-26357 (opens new window) - Windows: Implement V4 Analytics specification

    • Implemented V4 payload specification
  • TIMOB-26508 (opens new window) - Windows: Setting undefined should clear layout value

    • Setting undefined to layout property clears layout value. Example, setting both left and top disables center property.
  • TIMOB-26648 (opens new window) - Windows: ability to override global functions

    • Windows parity to allow to override global functions like setTimeout

# Multiple platforms

# Hyperloop

⚠️ Warning

Hyperloop 4.0.0 is only compatible with SDK 8.0.0 and newer.

# Android

  • Fixed overriding methods that may receive null values as arguments

# iOS

  • Added support for dotted enums (like in Swift)

    // before
    import { UIControlStateNormal, UIControlStateSelected } from 'UIKit';
    alert(UIControlStateNormal);
    
    // now
    import { UIControlState } from 'UIKit';
    alert(UIControlState.Normal);
    
  • Refactored iOS metabase generation to improve build time

    • Store system frameworks globally (in ~/.hyperloop) to be reused by different apps

    • Only generate required frameworks

    • Cache CocoaPods builds across builds

  • Internal refactoring and optimization

  • Exclude types that are unavailable on iOS from metabase

  • Removed support for TiCore runtime

# Windows

  • Added support for namespace-based imports like Android

    import { UICommand, MessageDialog } from 'Windows.UI.Popups.*';
    

# API changes

# New APIs

# Deprecated APIs

# Removed APIs

# SDK modules versions

# Android and iOS

Module iOS version Android version
urlSession 2.1.0 n/a
facebook 6.0.0 8.0.0
ti.coremotion 2.1.0 n/a
ti.map 3.1.0 4.3.1
ti.safaridialog 1.1.1 n/a
ti.webdialog 1.1.0 1.1.0
ti.touchid 2.1.4 3.0.1
ti.identity 1.0.5 2.0.1
ti.cloudpush n/a 5.2.0
ti.playservices n/a 11.0.40

# CommonJS

Module Version
ti.cloud 3.2.11

# Hyperloop

Module Version
hyperloop 4.0.1