Pull to refresh

Appcelerator Titanium SDK обновился до версии 5.1.0

JavaScript *Development of mobile applications *
Недавно Appcelerator SDK обновился до версии 5.1.0. Появилось много полезных фич.
Список изменений:

Android Marshmallow


Этот релиз поддерживает работу с Android 6.0 и выше. Для его использования в системе должен быть установлен Android SDK level 23. В настройках вашего проекта target SDK должен быть установлен в значение 23 (ранее было 21, Android 5.0/Lollipop)

Node


Начиная с этого релиза, Titanium SDK работает с Node.js версии 4.x (ранее было 0.12.x)

Studio


Этот релиз поддерживает работу с Appcelerator Studio 4.4.0, в списке изменений которой:
  • Возможность запоминать ваш логин
  • Этот релиз проверит версию node.js (должна быть 0.12.7) или установит версию 4.1.0, если node.js не установлен

Изменения в функциональности


Android


Кнопки AppCompat


Начиная с этого релиза, Titanium SDK будет использовать кнопки из библиотеки AppCompat, что заставит кнопки выглядеть одинаково на всех версиях платформы. Ранее внешний вид кнопок отличался в зависимости от версии Android.

Target SDK


В системе должен быть установлен Android SDK версии 23. Если вы указываете target SDK в файле tiapp.xml, он должен иметь значение 23 (ранее 21).

iOS


Стиль Activity Indicator


Начиная с этого релиза, константы пространства имен iPhone, которые определяли стиль Activity Indicator, считаются устаревшими (deprecated). Для определения стиля Activity Indicator используйте те же константы, но без пространства имен.

События для TabGroup


Этот релиз вводит новые события для элемента TabGroup: selected и unselected. Эти события заменяют устаревшие focus и blur для iOS.

Поддержка User Activity


С этого релиза новый метод Titanium.iOS.UserActivity.isSupported() заменяет устаревшее свойство Titanium.iOS.UserActivity.supported для совместимости с другими API.

Разрешения для устройств


В этом релизе пересмотрен процесс запроса разрешений для платформы для поддержки модели запроса разрешений Android 6.0 и совместимости между платформами iOS и Android. Windows будет добавлен в одном из следующих релизов.

Для запроса разрешений на использование календаря, камеры, контактов и местоположения используйте следующие методы:

Новые методы заменяют устаревшие методы iOS:
  • Titanium.Calendar.requestEventsAuthorization
  • Titanium.Media.requestCameraAccess

Новый функционал


Android


CardView


С этого релиза начинается поддержка CardView, приподнятого блока со скругленными уголками. В отличие от ListView, который отображает данные одного типа унифицированным шаблоном, CardView удобно использовать для показа коллекции разнотипных элементов.

Reveal Effect


На Android платформе View теперь поддерживают эффект плавного показа/скрытия. Для этого передайте методу .show / .hide в качестве параметра объект { animated: true }.
Эффект поддерживается Android Lollipop и выше.

iOS


3D Touch


Titanium SDK теперь поддерживает Peek and Pop, а так же быстрые действия. Обе функции требуют поддержки 3D Touch и устройства с iOS 9 и выше. Тестирование этой функциональности возможно только на устройстве. Используйте свойство  Titanium.UI.iOS.forceTouchSupported для того, чтобы определить, поддерживает ли устройство 3D Touch.

Peek and Pop предоставляет возможность быстро просмотреть контент приложения нажимая на него, чтобы затем, возможно, переключиться на этот контент. См. Titanium.UI.iOS.PreviewContext API reference для подробностей.

Quick Action предоставляет возможность быстро выполнить какое-либо действие через ярлыки, не заходя в приложение, а просто нажимая на иконку на домашнем экране. См. Titanium.UI.iOS.ApplicationShortcuts API reference для подробностей.

Alert Dialog


С этого релиза, если вы вызываете Aler Dialog со стилем Titanium.UI.iPhone.AlertDialogStyle.PLAIN_TEXT_INPUT или Titanium.UI.iPhone.AlertDialogStyle.SECURE_TEXT_INPUT , вы можете указать свойство placeholder чтобы задать замещающий текст полей ввода и keyboardType/returnKeyType для указания типа клавиатуры.
При использовании Titanium.UI.iPhone.AlertDialogStyle.LOGIN_AND_PASSWORD_INPUT, вы можете  указать замещающий текст как для поля с логином, так и для поля с паролем.

Ресурсы приложения


Для того чтобы соответствовать принципу App Thinning и соглашению по именованию файлов в iOS, PNG и JPEG файлы вашего проекта будут автоматически добавляться в каталог с ресурсами. Когда пользователь устанавливает ваше приложение, используются только подходящие для него ресурсы.
Для того чтобы ресурсы попали в приложение, добавьте к их имени @2x и @3x, для retina экранов и iPjone 6 Plus соответственно. Для остальных типов экранов не добавляйте этого суффикса. Так же добавьте суффикс ~iphone для приложений iPhone и ~ipad для приложений iPad. Например:
  • pic.png
  • pic@2x~ipad.png
  • pic@2x~iphone.png
  • pic@3x.png

Этот функционал работает только для приложений, собранных на версии SDK 5.1.0 и выше. Для остальных приложений, вам нужно будет добавить поле use-app-thinning со значением true в tiapp.xml (в разlел ios).
<ti:app>
  <ios>
    <use-app-thinning>true</use-app-thinning>
  </ios>
</ti:app>

Обратите внимание, что так как файлы добавляются в каталог ресурсов, вы не сможете обратиться к ним из файловой системы, например, с помощью API Ti.Filesystem. Для того, чтобы иметь к ним доступ, вам придется отключить этот функционал.

Auto Layout


С этого релиза, ваше приложение может использовать iOS's Auto Layout engine для расположения элементов.
Активация autoLayout:
<ti:app>
  <ios>
    <use-autolayout>true</use-autolayout>
  </ios>
</ti:app>

Потоки для javascript


По умолчанию javascript выполняется в отдельном потоке. С этого релиза вы можете начать выполнять его в главном потоке.
Активация:
<ti:app>
  <ios>
    <run-on-main-thread>false</run-on-main-thread>
  </ios>
</ti:app>

Обратите внимание, эта фича экспериментальная и у нее есть баги:

Высота Picker


В предыдущих релизах высота Picker была фиксированной. Теперь вы сможете управлять его высотой.

Safari Dialog


Titanium SDK теперь включает в себя модуль ti.safaridialog. Используйте его для того, чтобы просматривать сайты в приложении, похожем на Safari.
Фича требует iOS 9 и выше, и приложение должно быть собрано на XCode 7 и старше.

См. Module API reference для подробностей.

WatchOS Message Callback


С этого релиза если приложение получает сообщение от Watch OS (Titanium.WatchSession.sendMessage()), то вы можете передать в него callback.

Изменения в API


Следующие методы API новые или получили расширенную поддержку среди платформ:
API Тип Описание
Titanium.App.iOS.USER_NOTIFICATION_BEHAVIOR_DEFAULT property Текстовое поле не появится. Используйте со свойством behaviour (Новое, iPhone, iPad)
Titanium.App.iOS.USER_NOTIFICATION_BEHAVIOR_TEXTINPUT property Появится текстовое поле для реакции на уведомление вне приложения. Используйте со свойством behaviour (Новое, iPhone, iPad)
Titanium.App.iOS.UserNotificationAction.behavior property Определяет, нужно ли показывать текстовое поле в уведомлении для реакции на уведомление (Новое, iPhone, iPad)
Titanium.App.iOS.UserNotificationAction.getBehavior method Возвращает значение свойства Titanium.App.iOS.UserNotificationAction.behavior (Новое, iPhone, iPad)
Titanium.App.iOS.UserNotificationAction.setBehavior method Устанавливает значение свойства Titanium.App.iOS.UserNotificationAction.behavior (Новое, iPhone, iPad)
Titanium.App.iOS.shortcutitemclick event Срабатывает когда пользователь нажимает на ярлык приложения (Новое, iPhone, iPad)
Titanium.Buffer object Буфер — это изменяемый, расширяемый контейнер для сырых данных (Добавлена поддержка Windows Phone)
Titanium.Calendar.hasCalendarPermissions method Возвращает true если приложение имеет разрешение на использование календаря (Новое, Android, iPhone, iPad)
Titanium.Calendar.requestCalendarPermissions method Запрашивает разрешение на использование календаря (Новое, Android, iPhone, iPad)
Titanium.Contacts object Модуль Контактов, используется для доступа и изменения системы контактов из адресной книги (добавлена поддержка Windows Phone)
Titanium.Contacts.Group object Объект, который представляет группу пользователей из адресной книги (добавлена поддержка Windows Phone)
Titanium.Contacts.Person object Объект, который представляет запись из адресной книги (добавлена поддержка Windows Phone)
Titanium.Geolocation.hasLocationPermissions method Возвращает true если приложение имеет разрешение на использование геолокации (Новое, Android, iPhone, iPad)
Titanium.Geolocation.requestLocationPermissions method Запрашивает разрешение на использование календаря (Новое, Android, iPhone, iPad)
Titanium.IOStream object IOStream — это интерфейс, который имплементируют все типы потоков (добавлена поддержка Windows Phone)
Titanium.Media.hasCameraPermissions method Возвращает true если приложение имеет разрешение на использование камеры (Новое, Android, iPhone, iPad)
Titanium.Media.requestCameraPermissions method Запрашивает разрешение на использование камеры (Новое, Android, iPhone, iPad)
Titanium.UI.ActivityIndicatorStyle object Набор констант для стилизации Titanium.UI.ActivityIndicator (Добавлена поддержка iPhone, iPad)
Titanium.UI.AlertDialog.getLoginPlaceholder method Возвращает значение свойства Titanium.UI.AlertDialog.loginPlaceholder (Новое API, iPhone, iPad.)
Titanium.UI.AlertDialog.getPasswordPlaceholder method Возвращает значение свойства Titanium.UI.AlertDialog.passwordPlaceholder (Новое API, iPhone , iPad.)
Titanium.UI.AlertDialog.getPlaceholder method Возвращает значение свойства Titanium.UI.AlertDialog.placeholder (Новое API, iPhone , iPad.)
Titanium.UI.AlertDialog.loginPlaceholder property Placeholder для поля login внутри диалога (Новое API, iPhone, iPad.)
Titanium.UI.AlertDialog.passwordPlaceholder property Placeholder для поля password внутри диалога (Новое API, iPhone, iPad.)
Titanium.UI.AlertDialog.placeholder property Placeholder текстового поля внутри диалога. (Новое API, iPhone, iPad.)
Titanium.UI.AlertDialog.setLoginPlaceholder method Устанавливает значение свойства Titanium.UI.AlertDialog.loginPlaceholder (Новое API, iPhone, iPad.)
Titanium.UI.AlertDialog.setPasswordPlaceholder method Устанавливает значение свойства Titanium.UI.AlertDialog.passwordPlaceholder (Новое API, iPhone, iPad.)
Titanium.UI.AlertDialog.setPlaceholder method Устанавливает значение свойства Titanium.UI.AlertDialog.placeholder  (Новое API, iPhone, iPad.)
Titanium.UI.Android.CardView object Card view со скругленными уголками, фоном и тенью (Новое API, Android)
Titanium.UI.Picker object Элемент управления для выбора одного из фиксированного набора значений (Добавлена поддержка Windows Phone.)
Titanium.UI.PickerColumn object Колонка, представляет собой группу значений Titanium.UI.Picker, доступных для выбора (Добавлена поддержка Windows Phone.)
Titanium.UI.PickerRow object Поле, представляет собой выбираемое значение элемента Titanium.UI.Picker (Добавлена поддержка Windows Phone.)
Titanium.UI.TabGroup.selected event Срабатывает, когда таб выбран (Новое API, iPhone, iPad.)
Titanium.UI.TabGroup.unselected event Срабатывает, когда таб развыбран (Новое API, iPhone, iPad.)
Titanium.UI.View.getPreviewContext method Возвращает значение свойства Titanium.UI.View.previewContext (Новое API, iPhone.)
Titanium.UI.View.previewContext property Контекст, используемый в 3D-Touch «Peek and Pop». (Новое API, iPhone.)
Titanium.UI.View.setPreviewContext method Устанавливает значение свойства Titanium.UI.View.previewContext  (Новое API, iPhone.)
Titanium.UI.createPicker method Создает и возвращает ссылку на Titanium.UI.Picker. (Добавлена поддержка Windows Phone.)
Titanium.UI.createPickerColumn method Создает и возвращает ссылку на Titanium.UI.PickerColumn. (Добавлена поддержка Windows Phone.)
Titanium.UI.createPickerRow method Создает и возвращает ссылку на Titanium.UI.PickerRow. (Добавлена поддержка Windows Phone.)
Titanium.UI.iOS.ApplicationShortcuts object API быстрых действий на домашнем экране используется для добавления действий для вашего приложения для большего удобства работы (Новое API, iPhone.)
Titanium.UI.iOS.PREVIEW_ACTION_STYLE_DEFAULT property Обычный стиль для действий (Новое API, iPhone, iPad.)
Titanium.UI.iOS.PREVIEW_ACTION_STYLE_DESTRUCTIVE property Деструктивный стиль для действий (Новое API, iPhone, iPad.)
Titanium.UI.iOS.PREVIEW_ACTION_STYLE_SELECTED property Выбранный стиль для действий (Новое API, iPhone, iPad.)
Titanium.UI.iOS.PreviewAction object PreviewAction для iOS9 3D-Touch «Peek and Pop». (Новое API, iPhone.)
Titanium.UI.iOS.PreviewActionGroup object PreviewActionGroup для iOS9 3D-Touch «Peek and Pop». (Новое API, iPhone.)
Titanium.UI.iOS.PreviewContext object PreviewContext для iOS9 3D-Touch «Peek and Pop». (Новое API, iPhone.)
Titanium.UI.iOS.SHORTCUT_ICON_TYPE_ADD property Константа, определяющая иконку для ярлыка приложения (Новое API, iPhone, iPad.)
Titanium.UI.iOS.SHORTCUT_ICON_TYPE_ALARM property Константа, определяющая иконку для ярлыка приложения (Новое API, iPhone, iPad.)
Titanium.UI.iOS.SHORTCUT_ICON_TYPE_AUDIO property Константа, определяющая иконку для ярлыка приложения (Новое API, iPhone, iPad.)
Titanium.UI.iOS.SHORTCUT_ICON_TYPE_BOOKMARK property Константа, определяющая иконку для ярлыка приложения (Новое API, iPhone, iPad.)
Titanium.UI.iOS.SHORTCUT_ICON_TYPE_CAPTURE_PHOTO property Константа, определяющая иконку для ярлыка приложения (Новое API, iPhone, iPad.)
Titanium.UI.iOS.SHORTCUT_ICON_TYPE_CAPTURE_VIDEO property Константа, определяющая иконку для ярлыка приложения (Новое API, iPhone, iPad.)
Titanium.UI.iOS.SHORTCUT_ICON_TYPE_CLOUD property Константа, определяющая иконку для ярлыка приложения (Новое API, iPhone, iPad.)
Titanium.UI.iOS.SHORTCUT_ICON_TYPE_COMPOSE property Константа, определяющая иконку для ярлыка приложения (Новое API, iPhone, iPad.)
Titanium.UI.iOS.SHORTCUT_ICON_TYPE_CONFIRMATION property Константа, определяющая иконку для ярлыка приложения (Новое API, iPhone, iPad.)
Titanium.UI.iOS.SHORTCUT_ICON_TYPE_CONTACT property Константа, определяющая иконку для ярлыка приложения (Новое API, iPhone, iPad.)
Titanium.UI.iOS.SHORTCUT_ICON_TYPE_DATE property Константа, определяющая иконку для ярлыка приложения (Новое API, iPhone, iPad.)
Titanium.UI.iOS.SHORTCUT_ICON_TYPE_FAVORITE property Константа, определяющая иконку для ярлыка приложения (Новое API, iPhone, iPad.)
Titanium.UI.iOS.SHORTCUT_ICON_TYPE_HOME property Константа, определяющая иконку для ярлыка приложения (Новое API, iPhone, iPad.)
Titanium.UI.iOS.SHORTCUT_ICON_TYPE_INVITATION property Константа, определяющая иконку для ярлыка приложения (Новое API, iPhone, iPad.)
Titanium.UI.iOS.SHORTCUT_ICON_TYPE_LOCATION property Константа, определяющая иконку для ярлыка приложения (Новое API, iPhone, iPad.)
Titanium.UI.iOS.SHORTCUT_ICON_TYPE_LOVE property Константа, определяющая иконку для ярлыка приложения (Новое API, iPhone, iPad.)
Titanium.UI.iOS.SHORTCUT_ICON_TYPE_MAIL property Константа, определяющая иконку для ярлыка приложения (Новое API, iPhone, iPad.)
Titanium.UI.iOS.SHORTCUT_ICON_TYPE_MARK_LOCATION property Константа, определяющая иконку для ярлыка приложения (Новое API, iPhone, iPad.)
Titanium.UI.iOS.SHORTCUT_ICON_TYPE_MESSAGE property Константа, определяющая иконку для ярлыка приложения (Новое API, iPhone, iPad.)
Titanium.UI.iOS.SHORTCUT_ICON_TYPE_PAUSE property Константа, определяющая иконку для ярлыка приложения (Новое API, iPhone, iPad.)
Titanium.UI.iOS.SHORTCUT_ICON_TYPE_PLAY property Константа, определяющая иконку для ярлыка приложения (Новое API, iPhone, iPad.)
Titanium.UI.iOS.SHORTCUT_ICON_TYPE_PROHIBIT property Константа, определяющая иконку для ярлыка приложения (Новое API, iPhone, iPad.)
Titanium.UI.iOS.SHORTCUT_ICON_TYPE_SEARCH property Константа, определяющая иконку для ярлыка приложения (Новое API, iPhone, iPad.)
Titanium.UI.iOS.SHORTCUT_ICON_TYPE_SHARE property Константа, определяющая иконку для ярлыка приложения (Новое API, iPhone, iPad.)
Titanium.UI.iOS.SHORTCUT_ICON_TYPE_SHUFFLE property Константа, определяющая иконку для ярлыка приложения (Новое API, iPhone, iPad.)
Titanium.UI.iOS.SHORTCUT_ICON_TYPE_TASK property Константа, определяющая иконку для ярлыка приложения (Новое API, iPhone, iPad.)
Titanium.UI.iOS.SHORTCUT_ICON_TYPE_TASK_COMPLETED property Константа, определяющая иконку для ярлыка приложения (Новое API, iPhone, iPad.)
Titanium.UI.iOS.SHORTCUT_ICON_TYPE_TIME property Константа, определяющая иконку для ярлыка приложения (Новое API, iPhone, iPad.)
Titanium.UI.iOS.SHORTCUT_ICON_TYPE_UPDATE property Константа, определяющая иконку для ярлыка приложения (Новое API, iPhone, iPad.)
Titanium.UI.iOS.createApplicationShortcuts method Создает и возвращает ссылку на Titanium.UI.iOS.ApplicationShortcuts. (Новое API, iPhone, iPad.)
Titanium.UI.iOS.createPreviewAction method Создает и возвращает ссылку на Titanium.UI.iOS.PreviewAction. (Новое API, iPhone, iPad.)
Titanium.UI.iOS.createPreviewActionGroup method Создает и возвращает ссылку на Titanium.UI.iOS.PreviewActionGroup. (Новое API, iPhone, iPad.)
Titanium.UI.iOS.createPreviewContext method Создает и возвращает ссылку на Titanium.UI.iOS.PreviewContext. (Новое API, iPhone, iPad.)
Titanium.UI.iOS.forceTouchSupported property Определяет, поддерживается ли устройством 3D-Touch «Force Touch» (true/false) (Новое API, iPhone, iPad.)
Titanium.UI.iOS.getForceTouchSupported method Получает значение Titanium.UI.iOS.forceTouchSupported (Новое API, iPhone, iPad.)
Titanium.UI.iOS.setForceTouchSupported method Устанавливает значение Titanium.UI.iOS.forceTouchSupported (Новое API, iPhone, iPad.)

Устаревшие API


API Type Notes
Titanium.App.iOS.UserActivity.getSupported method Use the Ti.App.iOS.UserActivity.isSupported() method instead.
Titanium.App.iOS.UserActivity.setSupported method Use the Ti.App.iOS.UserActivity.isSupported() method instead.
Titanium.App.iOS.UserActivity.supported property Use the Ti.App.iOS.UserActivity.isSupported() method instead.
Titanium.Calendar.requestEventsAuthorization method Use requestCalendarPermissions instead.
Titanium.Media.requestCameraAccess method Use requestCameraPermissions instead.
Titanium.UI.TabGroup.blur event Use unselected instead.
Titanium.UI.TabGroup.focus event Use selected instead.
Titanium.UI.iPhone.ActivityIndicatorStyle object Use Ti.UI.ActivityIndicatorStyle instead.
Tags: javascriptappceleratortitaniumalloy
Hubs: JavaScript Development of mobile applications
Total votes 8: ↑7 and ↓1 +6
Comments 0
Comments Leave a comment

Popular right now