Как разрабатывать на Python под Android. Полноценное Python-приложение для Android Python-приложения для Android OS

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

В процессе изучения языка программирования, в частности Python, я считаю, что нужна погружаться в него полностью. Лозунг: «Ни дня без кода!» я дополняю, ну если ни кодить, то хотя бы почитать об этом. Для того чтобы не выходить из ритма в условиях, когда нужно в жизни сделать многое, но некогда, а хотелось бы учить Python, мобильный приложения помогут не тратить зря время в транспорте, во время ожиданий и т.д.Предлагаю список приложений из Google Play для изучения Python на Android-устройствах, которые помогут не только получить знания, но и проверить свой уровень по Python.Три из ниже перечисленных приложений я обязательно советую студентам при изучении Python: Learn Python, Quiz&Learn Python и Python Challenge. Ну теперь подробнее.
1. Learn Python Рейтинг 4,8 на 20.10.2015
Одно из лучших, симпатичное приложение: интерфейс сразу порадовал. Содержит короткие уроки и тесты, контролирующие процесс изучения Python. Есть элемент азарта – набираете очки, за прохождение занятий и тестов. По окончании курса можете получить сертификат. Приложение охватывает следующие темы: основы Python, типы данных, управляющие структуры, функции и модули, работа с файлами, функциональное программирование, объектно-ориентированное программирование, регулярные выражения.


2. QPython - Python for Android Рейтинг 4,4 на 19.10.2015
QPython это скрипт, который запускает Python на Android устройствах, позволяет выполнить сценарии и проекты. QPython содержит интерпретатор Python, консоль, редактор, и SL4A-библиотеку (позволяет не всегда создание и запуск скриптов, написанных на различных языках сценариев прямо на Android-устройствах. SL4A предназначен для разработчиков и все ещё находится на стадии альфа-тестирования - ru.wikipedia.org/wiki/SL4A) для Android. Таким образом, приложение предлагает комплект разработчика, который позволяет легко создавать проекты и сценарии Python на Android-устройствах. Основные характеристики
  • поддержка программирования Python на Android, в том числе веб-приложений, игр и SL4A-программирования и т.д.
  • выполнение Python сценариев / проектов на устройствах Android
  • можно выполнить Python код & файлы с QRCode
  • QEdit позволяет легко создавать/ редактировать на Python скрипты / проекты
  • включает в себя множество полезных библиотек Python
  • поддержка pip (система управления пакетами используется для установки и управления программных пакетов, написанных на Python en.wikipedia.org/wiki/Pip_ (package_manager))
  • поддержка SL4A программирование для доступа к функциям Android: сеть, Bluetooth, GPS и др.

Есть также приложение QPython3 , которое в отличие от QPython имеет поддержку python3.
3. Python Documentation Рейтинг 4,4 на 19.10.2015
Удобное и стильное приложение с документацией по Python 3.5 на английском языке, полностью Offline. Имеет улучшенный поиск, простую навигацию, мобильный формат чтения, удобный интерфейс. В содержание документации входят такие разделы:

  • Что нового в Python?
  • Учебник Python
  • библиотеке ссылок Python
  • справочник по языку Python
  • Python настройка и использовании
  • Python HOWTOs
  • Расширения и вложения
  • Python / C API
  • Установка Python модулей
  • Деинсталяция Python модулей


4. Quiz&Learn Python Рейтинг 4.1 на 19.10.2015
Приложение Quiz&Learn Python для тестирования и улучшения знаний и понятий Python (версия 2.7). Вопросы варьируются от основ программирования на языке Python до очень конкретных, возможно, неожиданных способов написания кода. В зависимости от прогресса вопросы могут усложнятся. Чем быстрее вы отвечаете, тем больше очков вы получите. Можно удалить два неправильных ответа, пропустить вопрос, остановить таймер, или отладить код. Сайт разработчиков mobileicecube.com/quiz-learn-python .


5. Python interview questions Рейтинг 4,0 на 20.10.2015
Интересное приложение. Помогает проверить знании языка Python в виде интервью.


6. Python Challenge Рейтинг 3,9 на 19.10.2015
Это приложение представляет собой тест на английском языке для пользователей, которые хотели бы узнать и испытать свои знания по программированию на Python. Приложение имеет два основных режима: Challenge Mode и Practice Mode. Challenge Mode состоит из 20 вопросов. Очки начисляются на основе учета времени, необходимого для решения каждого вопроса. Тест заканчивается, когда пользователь выбирает неправильный ответ или завершает все 20 вопросов.В Practice Mode вопросы сортируются по разным темам. Пользователь может сам их выбрать. Предлагается 10 вопросов. Пользователь может продолжать тест, даже если он даст не правильный ответ. Все вопросы и ответы будут показаны в конце тренировки.


7. Python Guide Рейтинг 3,9 на 19.10.2015
Это приложение представляет собой краткое руководство для Python. Руководство будет особенно полезно для новичков, которые хотят ознакомиться с правилами синтаксиса Python. Руководство охватывает основы программирования Python, так что пользователи будут иметь достаточно знаний, чтобы создать какое-нибудь простое и продуктивное приложение. Руководство состоит из следующих тем: переменные, условия, функции, циклы, списки, строки, словари. Небольшой список. Хотелось бы большего.


8. Python Programming in a day Рейтинг 3,0 на 20.10.2015
Разработчики приложения советуют нам пропустить длинные, сложные книги по Phyton. Для того, чтобы научиться программировать на Phyton 3.0 быстрее они предлагают короткое и лаконичное приложение, которое научит всему необходимому для Phyton программирования. Эта книга написана для людей, которые не имеют никакого знания в программировании или являются новичками. Она фокусирует на самых важных понятиях с примерами.


9. Learn Python & Python Django Рейтинг 3,0 на 20.10.2015
Это приложение наконец-то отличается от предыдущих тем, что затрагивает не только сам Python, но и Django. Это по сути обучалка на английском языке по Python и Django на платформе Udemy. В ее содержание входят такие темы: Python и Hello World, обзор и история Python, функции, классы, базы данных, модули и пакеты, JSON, установка Django, интерфейс администратора, язык шаблонов Django и др… В приложении 18 лекций, более 4-х часов высококачественного контента, сообщество, видео и аудио лекции, презентации, статьи, можно сохранить курсы для просмотра в автономном режиме.


10. Учебник Python Рейтинг 4,0 на 20.10.2015
Сборник тьюториалов по Python 2 и 3. Расскажет о истории и философии Python, как установить Python, работать с числами и строками в Python, о типах данных и переменных, функциях и т.д… Мне не понравился тем, что немного не подстроен под возможности мобильных телефонов – шрифты кое-где маленькие.Название на русском меня воодушевило, что тьюториал мог быть на русском языке – ан нет!В общем, я не нашла приложений на русском.


Еще можно назвать приложения такие как:
  • Dive Into Python 3 - книга Марка Пилгрима, рейтинг 3,8, имеет проблемы с растягивание интерфейса.
  • Python For Android - Python IDE, рейтинг 3,3 из-за навязчивой рекламы
  • Python Tutorial - учебник по программированию на Python 2.6, рейтинг 3,8
  • Python Programming Tutorial – учебник по Python 2.7, рейтинг 3,6

В этой статье я хотел бы рассказать о том, как создать полноценное приложение на Python для Android. Нет, это не очередной мануал для создания скрипта для sl4a , это мануал по созданию полноценного приложения с UI, возможностью собрать apk и выложить на Android Market. Заодно я хотел бы похвалиться своим первым приложением на google.play, это не hello world, а полезное приложение для фотографов, хотя и узко специализированное.

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

isortViewer

Мне как фотографу приходится тратить много времени на сортировку и отбор фотографий. Не всегда хочется сидеть за рабочим компьютером, когда под рукой есть ноутбук, смартфон или планшет, но копировать туда десятки гигабайт raw или jpeg файлов, а потом синхронизировать с рабочим компьютером - сомнительное удовольствие. Именно поэтому я создал программы isortManager и isortViewer, которые значительно облегчили мне работу по сортировке и отбору фотографий. Теперь заниматься отбором и сортировкой фотографий я могу лежа на пляже диване или скучая в пробке:)

Копипаст описания и пара скриншотов:
isortViewer - программа для фотографов, которая позволяет легко и быстрой отбирать и сортировать тысячи фотографий (raw или jpg) с фотосессий на ваших android смартфонах и планшетах. При этом, нет необходимости копировать десятки гигабайт jpg или raw файлов на устройство. Просто воспользуйтесь бесплатной программой isortManager для компьютера, которая сохранит все в один небольшой файл проекта:
1. Скачайте и запустите isortManager с официального сайта ;
2. Создайте проект и добавьте папки с фотографиями. Поддерживаются форматы: jpg и raw (cr2, nef, orf и т.д.). В итоге у вас получится небольшой файл проекта (примерно 150 мб на несколько тысяч фотографий, будь то jpg или raw формат);
3. Скопируйте на ваше android устройство файл проекта, откройте в isortViewer. Вы можете помечать фотографии «на удаление», а так же, ставить рейтинги от 1 до 5 звезд;
4. После этого, скопируйте файл проекта обратно и примените изменения в isortManager. Кроме удаления выбранных фотографий, вы можете копировать или перемещать отмеченные фотографии. Например, фотографии с «5 звезд» можно скопировать в папку «шедевры», а «1 звезда» переместить в папку «хлам».

Приложение абсолютно бесплатно и доступно на google.play , однако донейты приветствуются.

Исходники доступны на официальном сайте!

Как это делалось

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

isortManager

С isortManager для PC проблем не возникло, создание GUI сборки под windows уже давно обкатано и работает он очень просто: с помощью dcraw выдирает jpg превьюшки из raw файлов, ресайзит из с помощью PIL и складывает в один файл с достаточно простой структурой. Был изобретен свой весолипед с контейнером для хранения фотографий и метаданных (полный путь к фотографии, отметка «на удаление» и отметка рейтинга), так как, например, zip или tar формат, не могут изменять один файл в архиве (метаданные), требую перепаковки всех файлов. Файлы просто пишутся один за другим подряд и в блоке метаданных (обычный repr питоновского словаря) в конце сохраняется смещения начала файлов, плюс в конце файла пишется размер блока метаданных. GUI написано на Tkinter (люблю я его за быстроту написания и за малый размер итоговой сборки), вот собственно скриншот:

И да, все это работает и на linux, и даже быстрее чем на windows)

isortViewer для android

Всего я нашел два способа заставить python приложение работать как полноценное приложение на android, это pygame for android и проект kivy .
Pygame - более низкоуровневый, все UI пришлось бы рисовать вручную, что отняло бы много времени, поэтому был выбран фреймворк kivy. Итак:

Это замечательный фрейморк для написания приложение для windows, linux, MacOS, android и iOS. Поддерживается мультитач, UI рисутется через OpenGL, значит должно работать аппаратное ускорение. Увидеть работу виджетов можно установив демонстрационное приложение Kivy Showcase . Есть возможность использования некоторых платформо специфичных функций, например, вибро или акселерометр, с помощью модуля android.

Hello World выглядит так:

Import kivy kivy.require("1.0.6") # replace with your current kivy version ! from kivy.app import App from kivy.uix.button import Button class MyApp(App): def build(self): return Button(text="Hello World") if __name__ == "__main__": MyApp().run()

Причем этот код будет работать на всех заявленных платформах. Пропадает необходимость в тестировании приложения в эмуляторе. Достаточно запустить скрипт на исполнение в своей любимой IDE и увидеть результат на экране компьютера, без задержек на компиляцию, запуск эмулятора и пр. Если вы все же хотите увидеть как это будет выглядеть непосредственно на устройстве, просто установите Kivy Launcher , скопируйте файлы проекта на карту памяти и запустите. Дебажить при этом можно при помощи adb logcat.
Если вы используете библиотеку android, которой нет на PC, но хочется запускать приложение не только на android, воспользуйте такой конструкцией:
try: import android except ImportError: android=None ... if android: android.vibrate(0.05)

Сборка apk достаточно проста и описана на этой странице. После сборки релиза, достаточно подписать свое приложение (я использовал этот мануал) и выложить в google play.

Плюсы kivy:

  • Быстрая разработка под различные платформы, практически без доработки кода.
  • Доступен широкий выбор виджетов
  • Высокая скорость работы. Весь ресурсоемкий вынесен в С модули. Сам интерпретатор python на android работает нативно.
  • Фремворк включает в себя множество инструментов, например анимация, кеширование и пр.
  • upd: Доступ к камере, буферу обмена, микрофону. Написать свой видеоплеер можно буквально за 20 строк .

Минусы kivy:

  • Большой размер apk файла. Проект с 300 кб ресурсов (скрипты, графика) собирается в 7 мб apk. Хотя, думаю, есть возможность это как то оптимизировать.
  • Невозможность (пока), восстанавливать работу после сворачивания - приложение закрывается

В следующей своей статье, я расскажу более подробно о процессе написания приложения «с нуля», расжевывая каждую строчку кода.

Хотелось бы сразу пресечь холивары на тему «для android только java, python не нужен». Я считаю, не важно, какие технологии «под капотом», главное чтоб приложение было качественным.
Сфера применения kivy может быть огромной. Сейчас на моем счету несколько приложений, написанных под заказ, где python с фремворком kivy показал себя с хорошей стороны. Например, ровно за один час, было написано приложение, для сети сервисных центров. Приложение работает в режиме киоска и установлено на дешевые китайские планшеты, которые висят в холле. Клиент набирает номер заказа, далее по WiFi планшет соединяется с сервером и сообщает статус заказа.

Теги: Добавить метки

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

В процессе изучения языка программирования, в частности Python, я считаю, что нужна погружаться в него полностью. Лозунг: «Ни дня без кода!» я дополняю, ну если ни кодить, то хотя бы почитать об этом. Для того чтобы не выходить из ритма в условиях, когда нужно в жизни сделать многое, но некогда, а хотелось бы учить Python, мобильный приложения помогут не тратить зря время в транспорте, во время ожиданий и т.д.Предлагаю список приложений из Google Play для изучения Python на Android-устройствах, которые помогут не только получить знания, но и проверить свой уровень по Python.Три из ниже перечисленных приложений я обязательно советую студентам при изучении Python: Learn Python, Quiz&Learn Python и Python Challenge. Ну теперь подробнее.
1. Learn Python Рейтинг 4,8 на 20.10.2015
Одно из лучших, симпатичное приложение: интерфейс сразу порадовал. Содержит короткие уроки и тесты, контролирующие процесс изучения Python. Есть элемент азарта – набираете очки, за прохождение занятий и тестов. По окончании курса можете получить сертификат. Приложение охватывает следующие темы: основы Python, типы данных, управляющие структуры, функции и модули, работа с файлами, функциональное программирование, объектно-ориентированное программирование, регулярные выражения.


2. QPython - Python for Android Рейтинг 4,4 на 19.10.2015
QPython это скрипт, который запускает Python на Android устройствах, позволяет выполнить сценарии и проекты. QPython содержит интерпретатор Python, консоль, редактор, и SL4A-библиотеку (позволяет не всегда создание и запуск скриптов, написанных на различных языках сценариев прямо на Android-устройствах. SL4A предназначен для разработчиков и все ещё находится на стадии альфа-тестирования - ru.wikipedia.org/wiki/SL4A) для Android. Таким образом, приложение предлагает комплект разработчика, который позволяет легко создавать проекты и сценарии Python на Android-устройствах. Основные характеристики
  • поддержка программирования Python на Android, в том числе веб-приложений, игр и SL4A-программирования и т.д.
  • выполнение Python сценариев / проектов на устройствах Android
  • можно выполнить Python код & файлы с QRCode
  • QEdit позволяет легко создавать/ редактировать на Python скрипты / проекты
  • включает в себя множество полезных библиотек Python
  • поддержка pip (система управления пакетами используется для установки и управления программных пакетов, написанных на Python en.wikipedia.org/wiki/Pip_ (package_manager))
  • поддержка SL4A программирование для доступа к функциям Android: сеть, Bluetooth, GPS и др.

Есть также приложение QPython3 , которое в отличие от QPython имеет поддержку python3.
3. Python Documentation Рейтинг 4,4 на 19.10.2015
Удобное и стильное приложение с документацией по Python 3.5 на английском языке, полностью Offline. Имеет улучшенный поиск, простую навигацию, мобильный формат чтения, удобный интерфейс. В содержание документации входят такие разделы:

  • Что нового в Python?
  • Учебник Python
  • библиотеке ссылок Python
  • справочник по языку Python
  • Python настройка и использовании
  • Python HOWTOs
  • Расширения и вложения
  • Python / C API
  • Установка Python модулей
  • Деинсталяция Python модулей


4. Quiz&Learn Python Рейтинг 4.1 на 19.10.2015
Приложение Quiz&Learn Python для тестирования и улучшения знаний и понятий Python (версия 2.7). Вопросы варьируются от основ программирования на языке Python до очень конкретных, возможно, неожиданных способов написания кода. В зависимости от прогресса вопросы могут усложнятся. Чем быстрее вы отвечаете, тем больше очков вы получите. Можно удалить два неправильных ответа, пропустить вопрос, остановить таймер, или отладить код. Сайт разработчиков mobileicecube.com/quiz-learn-python .


5. Python interview questions Рейтинг 4,0 на 20.10.2015
Интересное приложение. Помогает проверить знании языка Python в виде интервью.


6. Python Challenge Рейтинг 3,9 на 19.10.2015
Это приложение представляет собой тест на английском языке для пользователей, которые хотели бы узнать и испытать свои знания по программированию на Python. Приложение имеет два основных режима: Challenge Mode и Practice Mode. Challenge Mode состоит из 20 вопросов. Очки начисляются на основе учета времени, необходимого для решения каждого вопроса. Тест заканчивается, когда пользователь выбирает неправильный ответ или завершает все 20 вопросов.В Practice Mode вопросы сортируются по разным темам. Пользователь может сам их выбрать. Предлагается 10 вопросов. Пользователь может продолжать тест, даже если он даст не правильный ответ. Все вопросы и ответы будут показаны в конце тренировки.


7. Python Guide Рейтинг 3,9 на 19.10.2015
Это приложение представляет собой краткое руководство для Python. Руководство будет особенно полезно для новичков, которые хотят ознакомиться с правилами синтаксиса Python. Руководство охватывает основы программирования Python, так что пользователи будут иметь достаточно знаний, чтобы создать какое-нибудь простое и продуктивное приложение. Руководство состоит из следующих тем: переменные, условия, функции, циклы, списки, строки, словари. Небольшой список. Хотелось бы большего.


8. Python Programming in a day Рейтинг 3,0 на 20.10.2015
Разработчики приложения советуют нам пропустить длинные, сложные книги по Phyton. Для того, чтобы научиться программировать на Phyton 3.0 быстрее они предлагают короткое и лаконичное приложение, которое научит всему необходимому для Phyton программирования. Эта книга написана для людей, которые не имеют никакого знания в программировании или являются новичками. Она фокусирует на самых важных понятиях с примерами.


9. Learn Python & Python Django Рейтинг 3,0 на 20.10.2015
Это приложение наконец-то отличается от предыдущих тем, что затрагивает не только сам Python, но и Django. Это по сути обучалка на английском языке по Python и Django на платформе Udemy. В ее содержание входят такие темы: Python и Hello World, обзор и история Python, функции, классы, базы данных, модули и пакеты, JSON, установка Django, интерфейс администратора, язык шаблонов Django и др… В приложении 18 лекций, более 4-х часов высококачественного контента, сообщество, видео и аудио лекции, презентации, статьи, можно сохранить курсы для просмотра в автономном режиме.


10. Учебник Python Рейтинг 4,0 на 20.10.2015
Сборник тьюториалов по Python 2 и 3. Расскажет о истории и философии Python, как установить Python, работать с числами и строками в Python, о типах данных и переменных, функциях и т.д… Мне не понравился тем, что немного не подстроен под возможности мобильных телефонов – шрифты кое-где маленькие.Название на русском меня воодушевило, что тьюториал мог быть на русском языке – ан нет!В общем, я не нашла приложений на русском.


Еще можно назвать приложения такие как:
  • Dive Into Python 3 - книга Марка Пилгрима, рейтинг 3,8, имеет проблемы с растягивание интерфейса.
  • Python For Android - Python IDE, рейтинг 3,3 из-за навязчивой рекламы
  • Python Tutorial - учебник по программированию на Python 2.6, рейтинг 3,8
  • Python Programming Tutorial – учебник по Python 2.7, рейтинг 3,6

– как не сложно догадаться из названия приложения, в нем вы сможете получить максимально простое обучения языку программирования Python. Так что если вы давно хотели начать изучение этого языка, то вам стоит начать именно с этой замечательной программы. Ведь она полностью переведена на русский язык и будет помогать вам подсказками. Обычно такие приложения не переводятся на русский, что вызывает ряд проблем.

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


Это может пригодиться в различных ситуациях. Именно поэтому огромное количество пользователей смело устанавливают приложение на свои мобильные устройства и остаются при этом очень довольны этим. Ведь вам больше не придется ломать голову в поисках качественной программы, которая могла бы быть. Программа действительно поможет вам начать изучать языки и понимать при этом происходящее в коде.