В этой статье я хотел бы рассказать о том, как создать полноценное приложение на Python для Android. Нет, это не очередной мануал для создания скрипта для sl4a , это мануал по созданию полноценного приложения с UI, возможностью собрать apk и выложить на Android Market. Заодно я хотел бы похвалиться своим первым приложением на google.play, это не hello world, а полезное приложение для фотографов, хотя и узко специализированное.
Начну рассказ пожалуй с самого приложения и завершу рассказам о том как оно делалось.
Копипаст описания и пара скриншотов:
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 для PC проблем не возникло, создание GUI сборки под windows уже давно обкатано и работает он очень просто: с помощью dcraw выдирает jpg превьюшки из raw файлов, ресайзит из с помощью PIL и складывает в один файл с достаточно простой структурой. Был изобретен свой весолипед с контейнером для хранения фотографий и метаданных (полный путь к фотографии, отметка «на удаление» и отметка рейтинга), так как, например, zip или tar формат, не могут изменять один файл в архиве (метаданные), требую перепаковки всех файлов. Файлы просто пишутся один за другим подряд и в блоке метаданных (обычный repr питоновского словаря) в конце сохраняется смещения начала файлов, плюс в конце файла пишется размер блока метаданных. GUI написано на Tkinter (люблю я его за быстроту написания и за малый размер итоговой сборки), вот собственно скриншот:
И да, все это работает и на linux, и даже быстрее чем на windows)
Всего я нашел два способа заставить 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:
Минусы kivy:
В следующей своей статье, я расскажу более подробно о процессе написания приложения «с нуля», расжевывая каждую строчку кода.
Хотелось бы сразу пресечь холивары на тему «для android только java, python не нужен». Я считаю, не важно, какие технологии «под капотом», главное чтоб приложение было качественным.
Сфера применения kivy может быть огромной. Сейчас на моем счету несколько приложений, написанных под заказ, где python с фремворком kivy показал себя с хорошей стороны. Например, ровно за один час, было написано приложение, для сети сервисных центров. Приложение работает в режиме киоска и установлено на дешевые китайские планшеты, которые висят в холле. Клиент набирает номер заказа, далее по WiFi планшет соединяется с сервером и сообщает статус заказа.
Теги: Добавить метки
– как не сложно догадаться из названия приложения, в нем вы сможете получить максимально простое обучения языку программирования Python. Так что если вы давно хотели начать изучение этого языка, то вам стоит начать именно с этой замечательной программы. Ведь она полностью переведена на русский язык и будет помогать вам подсказками. Обычно такие приложения не переводятся на русский, что вызывает ряд проблем.
В этом же случае все удобно и отличном. Множество уроков и тестов позволят вам получить максимальную эффективность в обучении. Именно поэтому множество пользователей стали отзываться о приложении крайне положительно. Никогда раньше вам не было так просто и удобно начать изучения языка программирования. Разработчики постарались сделать все максимально удобно и понятно.
17 11.2017
Развитие технологий разработки программного обеспечения не стоит на месте и с каждым днем появляются новые языки и библиотеки, помогающие сделать процесс разработки максимально быстрым и эффективным. Многие разработчики, выбирающие новый язык программирования для изучения, в особенности для написания приложений для операционной системы Android, останавливаются на Python Android. В данной статье мы рассмотрим Python как язык программирования под Android, обсудим разработку приложений, установку приложений на Android и многие другие вопросы, которые будут интересны многим начинающим Python-разработчикам.
Из этой статьи вы узнаете:
Добро пожаловать на страницы блога kip-world! С вами как всегда я, Гридин Семён, и сегодня мы расскажем вам о программировании на языке Python для Android. Мы рассмотрим такие темы как установка Python, разработка и запуск приложений.
На данный момент, Python является одним из самых любимых языков разработки для начинающих программистов, в особенности для людей, интересующихся разработкой программного обеспечения для устройств под управлением операционной системы Android.
Python for android позволяет создавать несложные приложения с минимумом затрат. Более того, поняв один раз принцип разработки на python для android, разработчику больше не потребуется вникать в подробности и нюансы написания программы. Более того, Android API здорово систематизирован и прост в применении.
В первую очередь, нам понадобится правильная среда разработки. Определитесь с актуальной на данный момент версией Android, учитывая, что данная операционная система поддерживает обратную совместимость.
Иными словами, приложения, разработанные для версии 6.0.2, будут работать и на 5.0.1, однако зачастую приложения, разработанные для более старых версий ОС, не поддерживаются более новыми версиями.
Установите SL4A , удобную среду разработки и начинайте творить в соответствии с гайдлайнами, доступными на официальном сайте, посвященном операционной системе.
Стоит также учесть, что приложения могут быть разработаны и установлены не только на операционную систему android, но также на устройства под управлением других операционных систем: MAC OS, Windows и Linux. Такая возможность расширяет горизонты разработки, позволяя использовать ту среду, которая удобна в данный момент.
Следующий вопрос – как именно python для андроид получает возможность запускать наши приложения на девайсе. Разработка на python для android с инструментом python for android упрощает работу тем, что данный инструмент создает на вашем устройстве дистрибутив – специальную зашифрованную папку, которая содержит все необходимые для проекта данные.
Установить данный инструмент можно прямо с официального сайта android, после чего вы с легкостью сможете запускать необходимые приложения на телефоне.
Для удобной разработки и, собственно, разработки непосредственно с девайса, нам понадобится . Качественное программирование на python для андроид требует установки правильного интерпретатора.
Одним из самых популяных является QPython, работу в котором можно начать сразу же после установки. Более того, интерпретатор позволяет за писать и запускать написанные приложения прямо из интерфейса разработчика.
Если вы хотите запустить интерпретатор без использования приложения, вам придется написать небольшой скрип, создание которого займет не более 30 минут. С помощью такого скрипта, мы можем запустить приложение непосредственно из терминала, или же с помощью автоматизированного скрипта.
Такой скрипт может быть написан заранее и размещен на удобном источнике (в том числе на карте памяти) и запущен в удобное для пользователя время. Существует множество интерпретаторов, потому чтобы найти свой, понадобится какое-то время.
Интерпретатор QPython позволяет запускать приложения, в том числе игры для андроид на python, непосредственно на выбранном устройстве. Данный интерпретатор содержит также консоль, условную среду разработки, SL4A-библиотеку, которая просто необходима при создании сценариев для скриптов.
Плюсами QPython являются:
Удобство работы с Python заключается в доступности десятков качественных официальных мануалов, позволяющих создавать отличные приложения самостоятельно и практически с нуля.
Это дает возможность не только научиться самостоятельному программированию, но и получить полноценную программу для мобильного устройства.
Как вы можете видеть, вовсе необязательно браться за изучения столь сложных языков как Java для того, чтобы писать достойные Android-приложения.
Вы можете выбрать и более простой язык, который будет не просто легче в изучении и использовании, но и будет более «Эластичным» и применяемым в жизни при изменении условий, в которых нам необходимо учувствовать.
Мы надеемся, что наша статья была полезна и информативна для пользователя. Расскажите нам, какими языками программирования пользуетесь вы? Как часто обновляете знания или изучаете новые языки программирования?
Оставляйте свои комментарии под постом, делитесь с друзьями записью и задавайте вопросы, на которые я с радостью отвечу.
С уважением, Гридин Семён
В процессе изучения языка мы обычно пользуемся ПК для работы с соответствующими приложениями, средами, программами, читаем книги, используем массовые онлайн курсы. Сейчас, когда смартфоны с нами всегда и везде, грех не воспользоваться их возможностями для усвоения знаний по программированию или их усовершенствования.
В процессе изучения языка программирования, в частности 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, типы данных, управляющие структуры, функции и модули, работа с файлами, функциональное программирование, объектно-ориентированное программирование, регулярные выражения.
Есть также приложение QPython3 , которое в отличие от QPython имеет поддержку python3.
3. Python Documentation
Рейтинг 4,4 на 19.10.2015
Удобное и стильное приложение с документацией по Python 3.5 на английском языке, полностью Offline. Имеет улучшенный поиск, простую навигацию, мобильный формат чтения, удобный интерфейс. В содержание документации входят такие разделы:
Под этим названием в Google Play можно найти три хороших приложения (вообще их больше, но на установку других не стоит даже тратить время). Наиболее простое из них представляет собой курс Udemy по Python 2.x, запакованный командой SoloLearn в формат Android-приложения. В нём содержатся уроки, которые разделены на две ступени: базовую и продвинутую. Внутри - краткий справочный материал в текстовом или PDF-формате. Для отдельных уроков есть примеры рабочего кода. Не требует подключения к Сети.
Это приложение предлагает пользователям изучить третью версию языка и обладает куда более широкой функциональностью. Основной экран отведён для отображения отдельных этапов курса и личных результатов. В меню можно найти раздел для свободного творчества на Python, скачать курсы для других языков программирования, а также изучить справочную информацию. У приложения есть интересная фишка: каждый, кто проходит курс и решает задачи, получает баллы. С их общим количеством можно ознакомиться на отдельной вкладке. Так появляется дополнительная игровая составляющая, которая может мотивировать кого-то на более тщательное изучение. В конце курса можно получить сертификат об освоении языка программирования.
Третье приложение, разработанное студией Phoenix App Labs , обладает наиболее широкой функциональностью и самым красочным интерфейсом. Здесь есть не только уроки для начинающих и уже изучавших язык, но и возможность скачивать готовые проекты на Python прямо из приложения, подробная статистика изученного, отдельная вкладка для удобного доступа к собственным программам и элемент социального соревнования в виде онлайн-чемпионата по кодингу с доской почёта. В случае успешного освоения курса каждый пользователь получает сертификат.
Полноценная среда для программирования на Python для Android-устройств. Включает в себя интерпретатор Python, консоль, редактор и SL4A-библиотеку, которая позволяет создавать и запускать скрипты прямо на гаджете (поддерживается работа со смартфонами и планшетами, поскольку имеются библиотеки для работы сетевых интерфейсов, GPS). Так что в этом приложении можно кодить и создавать полноценные проекты. Если под рукой есть хороший учебник по Python и готовые проекты, выбор QPython будет более чем оправдан, несмотря на отсутствие встроенных обучающих функций.
Стильное приложение с документацией по Python 3.5 на английском языке. Умеет работать в офлайне. Есть раздел с примерами готового кода, хотя основное назначение программы - подробная справка для тех, кто уже освоил базовые принципы языка. Обладает очень удобным поиском и простой навигацией.
Это приложение создано для тренировки уже имеющихся навыков программирования на Python версии 2.7 в форме коротких вопросов, затрагивающих как основы программирования на языке Python, так и очень конкретные и неожиданные способы написания кода. Quiz&Learn Python ведёт статистику на основе скорости ваших ответов. В зависимости от прогресса вопросы могут усложняться. Их можно пропускать (это влияет на прогресс: программа задаёт более простые вопросы). Кроме этого, с помощью встроенного отладчика можно написать вопрос и проверить ответ на практике.
Ещё одно приложение для тех, кто уже изучил основы программирования и хочет расширить свои знания. Python Challenge представляет собой игру в формате «вопрос - ответ». В каждом раунде 20 вопросов, содержащих исполняемый код. Для ответа на них отводится определённое время. Есть раздел, содержащий те же вопросы, сгруппированные по темам, на которые можно отвечать без ограничений во времени.
Удобное приложение с текстовыми уроками и примерами. Python Exercises отличается очень подробной рубрикацией, полным охватом базовых тем, а также простым интерфейсом. К сожалению, здесь нет возможности писать код, поэтому потребуется либо другая программа, либо второе устройство.