- PVSM.RU - https://www.pvsm.ru -
Приветствую всех приверженцев и почитателей кроссплатформенной разработки мобильных приложений с помощью фреймворка Titanium. 16 апреля 2012 года компания Appcelerator анонсировала обновление Titanium Mobile SDK до версии 2.0.1 вкупе с обновлением Titanium Studio все до той же версии 2.0.1. Чуть больше подробностей под катом.
По словам разработчиков из Appcelerator, кроме фикса более 700 багов [1], выявленных в предыдущих версиях, Titanium Mobile SDK 2.0.1 базируется на сильных сторонах предыдущей версии 1.8, а также включает в себя ряд интересных нововведений:
Подробнее хотелось бы остановиться на такой вкусности, как интеграция с Appcelerator Cloud Service (ACS).
Ни для кого не секрет, что комфортное использование мобильных устройств предполагает 2 вещи:
Appcelerator Cloud Services предоставляет разработчику широкий спектр автоматически масштабирующихся сетевых возможностей. Такие задачи, как Push-уведомления, авторизация пользователей, управление фотографиями пользователя, фотоколлекции, получение и обновление статуса пользователя, которые обычно требуют серверного программирования или интеграции с несколькими SDK, теперь осуществляются через единый интерфейс подключаемого модуля [3].
По словам разработчиков Titanium, они позаботились о стабильном функционировании баз данных, хранилищ файлов, поисковых движков и о стеках приложений, так что мы можем сосредоточиться на том, что действительно важно: наших приложениях и пользователях этих приложений.
На сегодняшний день “из коробки” доступны:
В настоящее время фичи, помеченные как beta, не доступны из модуля Titanium.Cloud, но к ним можно обращаться с помощью REST API.
Кроме того, ACS доступен всем разработчикам мобильных приложений, независимо от технологии, с помощью которой разрабатываются эти самые приложения. Т.е. не важно с помощью чего мы создаем наше приложение, будь то Titanium, Objective-C, Java, Sencha Touch или PhoneGap. Любая технология, позволяющая сделать HTTP-запрос, может легко использовать ACS в качестве сервера бэкэнда.
Для того, чтобы использовать ACS в своем приложении, нам нужно выполнить следующие четыре шага:
Если мы создаем новый проект в Titanium Studio и при этом активируем соответствующий чекбокс — приложение в Appcelerator Cloud Services регистируется автоматически. Его можно увидеть на странице "мои приложения [4]" в нашей учетной записи на Appcelerator Developer Center [5]. Если же чексбокс не был активирован, то зарегистрировать приложение вручную можно позже все на той же странице "мои приложения [4]".
При регистрации приложения будут сгенерированы уникальные OAuth Consumer Key, OAuth Secret и App Key, которые нам нужно будет использовать при дальнейшей разработке приложения.
Поддержка ACS встроена в Titanium. Тем не менее, для того чтобы использовать его, мы должны с помощью директивы require() в любом удобном для нас файле подключить модуль ACS к нашему проекту:
var Cloud = require('ti.cloud');
Cloud.debug = true; // опционально. Для продакшена тут нужно поставить false
Также нужно не забыть о tiapp.xml и убедиться в присутствии там следующей директивы:
<modules>
<module platform="commonjs">ti.cloud</module>
</modules>
Для обеспечения безопасности соединений и дабы исключить варианты, при которых кто-то выдает себя за нас и посылает запросы к ACS, наше приложение должно доказать, что оно имеет право общаться с ACS. Безопасный доступ обеспечивается с помощью двухстадийной аутентификации OAuth [6]. Это процесс, при котором Consumer Key и OAuth Secret используются для “подписывания” каждого запроса нашего приложения. Когда сервер ACS получает запрос, OAuth Secret используется вместе с данными, представленными в запросе для расчета контрольной подписи. Если отправленная и рассчитываемая подписи совпадают — запрос будет обработан.
Для того, чтобы наше приложение могло успешно “представиться” серверу, необходимо в файл tiapp.xml добавить следующие строки:
<property name="acs-api-key" type="string">get_from_app_admin_page</property>
<property name="acs-oauth-key" type="string">get_from_app_admin_page</property>
<property name="acs-oauth-secret" type="string">get_from_app_admin_page</property>
Несколько примеров:
Cloud.Users.create({
username: username.value,
password: password.value,
password_confirmation: confirmPassword.value,
first_name: firstName.value,
last_name: lastName.value
}, function (e) {
if (e.success) {
// пользователь создан успешно
} else {
// обработка ошибки
}
});
// предполагается, что у нас уже есть фото. Не важно каким способом мы его получили.
// collectionID это ID необходимый для группировки фотографий в облаке
Cloud.Photos.create({
photo: photo,
collection_id: collectionID,
'photo_sync_sizes[]': 'small_240'
}, function (e) {
if (e.success) {
// тут можно обнулить наши объекты для очистки памяти
photo = null;
collectionID = null;
} else {
// обработчик ошибки
}
});
//код для реализации модуля Facebook в приложении не показан
// функция обработчик, которая будет логинить пользователя
function updateLoginStatus() {
if (Ti.Facebook.loggedIn) {
label.text = 'Logging in to ACS as well, please wait...';
Cloud.SocialIntegrations.externalAccountLogin({
type: 'facebook',
token: Ti.Facebook.accessToken
}, function (e) {
if (e.success) {
var user = e.users[0];
alert('Logged in! You are now logged in as ' + user.id);
}
else {
error(e);
}
});
}
else {
label.text = 'Please login to Facebook.';
}
}
//повесим обработчик на события авторизации и деавторизации пользователя в FaceBook
Ti.Facebook.addEventListener('login', updateLoginStatus);
Ti.Facebook.addEventListener('logout', updateLoginStatus);
// добавим кнопку логина Facebook
win.add(Ti.Facebook.createLoginButton({
top: 10
}));
С одной стороны — одни плюсы! Пока единственный обнаруженный минус заключается в том, что free-версия ACS доступна только до 1 июня 2012 года. Об этом также сообщается [7] в одном из постов разработчиков Appcelerator.
Создается стойкое впечатление, что ребята из Appcelerator в области организации разработки приложений настойчиво гонятся за ребятами из Apple. Посудите сами: каждый разработчик должен зарегистрироваться, если хочет использовать Titanium, предоставляется своя среда разработки, благодаря которой каждое разрабатываемое приложение фиксируется и по нему ведется статистика, есть магазин модулей и т.д.
На этом, собственно, все. Спасибо за внимание.
Источники:
Автор: vesel4ak
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/mobile-development/6910
Ссылки в тексте:
[1] 700 багов: https://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=12747
[2] Appcelerator Cloud Services: http://docs.appcelerator.com/titanium/latest#!/guide/Integrating_with_Appcelerator_Cloud_Services
[3] подключаемого модуля: http://docs.appcelerator.com/titanium/2.0/index.html#!/api/Titanium.Cloud
[4] мои приложения: https://my.appcelerator.com/apps
[5] Appcelerator Developer Center: http://www.appcelerator.com/
[6] OAuth: http://habrahabr.ru/post/77648/
[7] сообщается: http://thinkmobile.appcelerator.com/blog/bid/140039/Introducing-Titanium-2-0
[8] Сloud services: http://www.appcelerator.com/cloud
[9] Официальная документация Titanium SDK ver. 2.0.1/GA: http://docs.appcelerator.com/titanium/release-notes/?version=2.0.1.GA
[10] Integrating with Appcelerator Cloud Services: http://docs.appcelerator.com/titanium/2.0/index.html#!/guide/Integrating_with_Appcelerator_Cloud_Services
[11] ACS quickstart guide: http://cloud.appcelerator.com/docs/quickstart
Нажмите здесь для печати.