Android-приложение полностью в python
Я хотел бы разработать (довольно простое) приложение для Android, которое будет распространяться через Play Store. Я хотел бы сделать это полностью в python. Тем не менее, онлайн-исследования не совсем просветили меня: большинство комментариев либо устарело (> 1 год, и я чувствую, что с тех пор может быть улучшена интеграция python), либо они говорят о запуске python в android (например, здесь).
Поэтому я ищу информацию по вопросам:
- возможно ли полностью разработать приложение в python - и каковы инструменты для этого? (Например, Киви рекомендуется?)
- если да: каковы наилучшие программные среды для реализации этого? (Я безуспешно пытался использовать Android Studio, но не мог найти способ запускать код Python там.)
Я совершенно новичок в разработке приложений и буду очень признателен за любые попытки сделать это в python, а не в Jave и т.д., Чего я еще не знаю.
Большое спасибо за помощь.
Ответы
Ответ 1
Чтобы ответить на ваш первый вопрос: да, возможно разработать приложение для Android в чистом питоне, для этого я предлагаю вам использовать BeeWare, который является всего лишь набором инструментов python, которые работают очень хорошо, и они позволяют вам разрабатывать приложений на платформе python.
просмотрите это видео создателем BeeWare, который прекрасно объясняет и демонстрирует его приложение
Как это работает
Предпочитаемый язык реализации Android - это Java - поэтому, если вы хотите написать приложение Android на Python, у вас должен быть способ запустить ваш код Python на виртуальной машине Java. Это то, что делает ЛОС. VOC является транспилером - он берет исходный код Python, компилирует его в CPython Bytecode и затем транслирует этот байт-код в Java-совместимый байт-код. Конечным результатом является то, что ваши исходные файлы Python скомпилированы непосредственно в файл Java.class, который можно упаковать в приложение для Android.
VOC также позволяет вам обращаться к собственным Java-объектам, как если бы они были объектами Python, реализовывать интерфейсы Java с классами Python и классы подкласса Java с классами Python. Используя это, вы можете написать приложение Android непосредственно против собственных API Android.
После того как вы написали свое собственное приложение для Android, вы можете использовать Briefcase для упаковки вашего кода Python в качестве приложения для Android.
Портфель - это инструмент для преобразования проекта Python в автономное собственное приложение. Вы можете упаковать проекты для:
- макинтош
- Windows
- Linux
- iPhone/IPad
- Android
- AppleTV
- tvOS.
Вы можете проверить это приложение Android Tic Tac Toe, написанное на Python, с помощью пакета BeeWare. на GitHub
в дополнение к инструментам BeeWare вам необходимо установить JDK и Android SDK для проверки запуска вашего приложения.
и ответить на ваш второй вопрос: хорошая среда может быть чем-то удобным для вас, будь то текстовый редактор и командная строка, или IDE, если вы ищете хорошую среду для python, я бы предложил вам попробовать Pycharm, у нее есть бесплатное сообщество, и у него есть аналогичная среда, как и андроид-студия, из-за того, что они были сделаны одной и той же компанией.
Я надеюсь, что это было полезно
Ответ 2
Вы можете попробовать BeeWare - как описано на их веб-сайте:
Пишите свои приложения на Python и выпускайте их на iOS, Android, Windows, MacOS, Linux, Web и tvOS, используя богатые пользовательские интерфейсы. Одна кодовая база. Несколько приложений.
Вы хотите, чтобы вы хотели сейчас писать приложения для Android в Python, плюс имеет то преимущество, что вам не нужно будет изучать еще одну инфраструктуру в будущем, если вы тоже захотите что-то сделать на одной из других перечисленных платформ.
Вот учебник для Android-приложений.
Ответ 3
Есть два основных претендента на приложения python на Android
Chaquopy
https://chaquo.com/chaquopy/
Это интегрируется с системой сборки Android, она предоставляет API Python для всех функций Android. Чтобы процитировать сайт "Полный API Android и инструментарий пользовательского интерфейса, прямо в вашем распоряжении".
Beeware (набор инструментов виджета Тога)
https://pybee.org/
Это обеспечивает многоцелевой транспилятор, поддерживает многие цели, такие как Android и iOS. Он использует общий набор инструментов виджетов (toga), который сопоставляется с вызовами интерфейса хоста.
Который из?
Оба являются активными проектами, и их учетные записи github показывают довольно много недавней активности.
Beeware Toga, как и все библиотеки виджетов, хорош для того, чтобы основываться на нескольких платформах. Если у вас есть базовые проекты и желание перейти на другие платформы, это должно хорошо сработать для вас.
С другой стороны, Chaquopy гораздо более точно отображает API-интерфейс python для Android. Он также позволяет смешивать на Java, полезно, если вы хотите использовать существующий код из других ресурсов. Если у вас есть строгие целевые показатели проекта и, как правило, вы хотите настроить таргетинг на Android, это гораздо лучший ресурс.
Ответ 4
Android, Python!
Когда я увидел эти два ключевых слова в вашем вопросе, Киви - это тот, который пришел мне на ум.
Прежде чем приступить к разработке Android на Java с помощью Android Studio, я попробовал Kivy. Это просто потрясающе. Вот несколько преимуществ, которые я мог бы узнать.
Простой в использовании
С основами python вам не составит труда изучить его.
Хорошее сообщество
Он хорошо документирован и имеет большое, активное сообщество.
Перекрестная платформа.
Вы можете разработать приложение для Android, iOS, Windows, Linux и даже Raspberry Pi с этой единой структурой. Открытый исходный код.
Это бесплатное программное обеспечение
По крайней мере, немногие из них (кросс-платформенные) конкуренты хотят, чтобы вы заплатили комиссию, если вы хотите получить коммерческую лицензию.
Поддержка ускоренной графики
Графический движок Kivy, созданный над OpenGL ES 2, делает его подходящим для программного обеспечения, которое требует быстрой рендеринга графики, например игр.
Теперь, войдя в следующую часть вопроса, вы не можете использовать Android Studio IDE для Kivy. Вот подробное руководство по настройке среды разработки.