...

пятница, 2 августа 2013 г.

Особенности разработка под Android на Titanium

image

На днях я выпустил свою первую программу под Android написанную на Titanium Appcelerator и хочу поделиться некоторыми ньюансами связанными с разработкой именно под Android.


Общий процесс вполне неплохо описан в официальной документации, поэтому его опущу.



Специальные, не выставленные по-умолчанию опции в tiapp.xml:




1. Если ваша программа при запуске проявляет сетевую активность — под эмулятором она будет вылетать сразу после отображения splash screen. Лечится добавлением следующей строки в общий блок:

<property name="ti.android.fastdev" type="bool">false</property>


2. Manifest:



<android xmlns:android="http://schemas.android.com/apk/res/android">
<manifest android:versionCode="4" android:versionName="1.2" android:installLocation="preferExternal" package="com.company.appname">
....
</manifest>
</android>


Мне совершенно непонятна логика введение системы двух версий, но факт остается фактом — для Play Store нужно указывать две версии — одна т.е. версия бинарника versionCode (клиенты ее не видят, должна быть целым числом, в идеале incremental), вторая — официальная версия вашего приложения versionName (то что увидят клиенты).


Кроме того, тут же нужно дополнительно указать package который равен id проекта.


И есть опция installLocation. Для эмулятора надо ставить только internalOnly — иначе при попытке установки на эмулятор будет выдавать ошибку. Для релиза на PlayStore рекомендую поставить preferExternal, чтобы не засорять внутреннию память устройств пользователей.


Код:




1. Ширина обьектов на экране — лучше всего не пытаться привязываться к фиксированной ширине и вообще забыть про аттрибут width. Вместо этого ипользуйте left & right.

2. Цвета нужно указывать только в виде #rrggbb. Варианты типа #fff не работают! И естати если случайно дописать лишний символ — тоже работать не будет (на iOS с тем же кодом таких проблем нету).


3. При использовании стандартного модуля facebook следует учесть что конструкция



fb.addEventListener('login', function(e) {
// Some code...
});




при загрузке приложения на Android автоматически НЕ вызывается! (На iOS будет вызвана автоматически если приложение было авторизировано ранее).

Разное:




1. Android SDK — тут все просто, собираем под 4.2 или 4.3 и все счастливы. Под 2.2 в моем случае все работает нормально.

2. Подполнительные модули для Titanium — если не хватает основного функционала, существует вполне приличная база модулей расширяющих возможности. Все они доступны на titanium marketplace. Кроме того, можно написать свой собственный.


Немного пиара ;)




Прошу любить и жаловать:

play.google.com/store/apps/details?id=com.sukharenko.bfriends

P.S. Программе еще требует доработки, в частности в области интерфейса — я уже работаю над этим. Конструктивная критика приветствуется!


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends: 'You Say What You Like, Because They Like What You Say' - http://www.medialens.org/index.php/alerts/alert-archive/alerts-2013/731-you-say-what-you-like-because-they-like-what-you-say.html


Комментариев нет:

Отправить комментарий