воскресенье, 26 августа 2012 г.

Пишем для Android на Python или немного о Sl4A и Kivy.


Купив смартфон конечно же меня заинтересовала быстрая разработка под него. Java, конечно же, является родной для Андрюши, но я толком ее не знаю, да и мороки с ней огого...(хотя приличные приложения надо писать именно на Java).

Мне же нужно иногда что-то запустить так, игры ради. Поэтому представляю вам два способа(которые и так многим известны) программирования под Аndroid на Python.

СПОСОБ ПЕРВЫЙ.

SL4A (Android Scripting) — интерпретатор, который запускает под Android скрипты на Python, Perl, JRuby, JS, PHP и др.

После установки мы получаем интерпретатор и несколько самых распространенных библиотек. Легко делается очень многое. Если сравнивать коды простых приложений, написанных на Java и Python(с помощью данной либы), то на Python примерно раза в 3-4 короче. Имеется неплохая документация + возможность программирования непосредственно на девайсе. В общем, must have!

Но все же мне больше понравился именно второй способ :)

СПОСОБ ВТОРОЙ.

Kivy - open source библиотека для быстрой разработки приложений, создания интерфейса для различных тач-девайсов.

Она меня очень обрадовала. Не ну правда, вспоните долгий запуск эмулятора андроида, вспомните, как долго и муторно происходит запуск, вспомните, что много выглядит все равно не так, как это будет смотреться на самом деле. Тут же все очень хорошо, написанное не только работает под linux, windows, android, но и работает быстро + есть доступ к нативным функция устройств.

Мы пишем приложение на Python(т.е. пишем очень быстро :)), ставим эмулятор для андроида с сайта библиотеки и можем просто забрасывать наши исходники на карту памяти в папку kivy - и всё!(каждая программа -  в отдельной папке). Мы получаем рабочую программу:).

А сейчас о грустном. В данной великолепной библиотеке я увидел два недостатка. Первый - при нажатии кнопки "возврат", мы не возвращаемся в предыдущее меню, а полностью выходим из приложения. Второй - портирование программы в .apk файл.(те, кто портировал в .exe наверное уже догадались :)), т.е. при портирование мы получаем огромный apkшный файл(вполне вероятно что больше 30мб, что очень важно, ведь некоторые телефоны не поддерживают больший размер).

Но я и не призываю писать серьезный софт таким образом. Только небольшие программульки, которые часто и нужны в повседневной жизни.

Чтобы не трындеть тут зазря, в качестве первого примера приложения я написал программку - расписание занятий для моей группы в универе :) Собственно исходники расписания.
Выглядит эта штука в linux примерно таким образом, как оно будет выглядеть в Android можете проверить сами.