Я хотел бы разработать (довольно простое) приложение для Android, которое будет распространяться через Play Store. Я хотел бы сделать это полностью на питоне. Однако онлайн-исследование меня не совсем прояснило: большинство комментариев либо устарели (старше 1 года, и я чувствую, что с тех пор может быть улучшена интеграция python), либо они говорят о запущенный питон в android (например, здесь).
Поэтому ищу информацию по вопросам:
Я новичок в разработке приложений и был бы очень признателен за любые попытки сделать это на python, а не на Jave и т. д., О которых я еще не знаю.
Большое спасибо за вашу помощь заранее.
Изначально вы должны использовать либо Java, либо Kotlin, однако, как указывали другие, существуют сторонние «конструкторы приложений» или фреймворки, которые вы можете использовать с python, такие как PyMob или Kivy.
Я создал игру для Android, полностью разработанную на Python с использованием Kivy. Он называется CoinTex и доступен здесь, в Google Play: play.google.com/store/apps/details?id=coin.tex.cointexreactf ast. Исходный код игры доступен здесь, на GitHub: github.com/ahmedfgad/CoinTex. Я также написал книгу, которая будет опубликована в этом году, о создании приложений для Android с использованием Python. Он называется «Создание приложений Android на Python с помощью Kivy с Android Studio: с Pyjnius, Plyer и Buildozer Ahmed Fawzy Gad», доступный здесь на Amazon: amazon.com/dp/1484250303.
Не могу опубликовать ответ, но вот кажется решение: Будут продемонстрированы различные технологии, в том числе графические интерфейсы QML на основе PySide с использованием порта Necessitas Qt и подход на основе Py4A / SL4A, который можно комбинировать с Android WebKit и повторно использовать веб-фреймворки Python.
Я не понимаю, почему этот вопрос был закрыт. Он должен быть открыт снова.
Вы можете попробовать BeeWare - как описано на их веб-сайте:
Write your apps in Python and release them on iOS, Android, Windows, MacOS, Linux, Web, and tvOS using rich, native user interfaces. One codebase. Multiple apps.
Дает вам желание писать Android-приложения на Python прямо сейчас, а также дает то преимущество, что вам не нужно будет изучать еще один фреймворк в будущем, если вы в конечном итоге захотите что-то сделать на одной из других перечисленных платформ.
Вот Учебник для приложений Android.
Вы сами создали приложение с помощью BeeWare?
Android, Python!
Когда я увидел эти два ключевых слова вместе в вашем вопросе, первое, что пришло мне в голову, - это Киви.
Прежде чем приступить к собственной разработке Android на Java с помощью Android Studio, я пробовал Киви. Это просто потрясающе. Вот несколько преимуществ, которые я смог выяснить.
Простой в использовании
С основами Python у вас не возникнет проблем с его изучением.
Хорошее сообщество
Он хорошо задокументирован и имеет отличное активное сообщество.
Кросс-платформенный.
Вы можете разрабатывать вещи для Android, iOS, Windows, Linux и даже Raspberry Pi с помощью этого единого фреймворка. Открытый источник.
Это бесплатное программное обеспечение
По крайней мере, некоторые из его (кроссплатформенных) конкурентов хотят, чтобы вы заплатили комиссию, если вам нужна коммерческая лицензия.
Поддержка ускоренной графики
Графический движок Киви, созданный поверх OpenGL ES 2, делает его подходящим для программного обеспечения, которое требует быстрой визуализации графики, такого как игры.
Теперь, переходя к следующей части вопроса, вы не можете использовать Android Studio IDE для Kivy. Здесь - подробное руководство по настройке среды разработки.
Поддержка Windows сильно отстает от производственных стандартов (или даже от стандартов любителей). К тому же половина мира не может его использовать из-за отсутствия поддержки RTL.
Почему вы оставили Kivy и перешли на нативные инструменты разработки? Вы предполагаете, что у него есть недостатки.
Есть два основных претендента на приложения Python на Android
Он интегрируется с системой сборки Android и предоставляет Python API для всех функций Android. Процитируем сайт: «Полный набор инструментов Android API и пользовательского интерфейса прямо в вашем распоряжении».
Это обеспечивает многоцелевой транспилятор, поддерживает многие цели, такие как Android и iOS. Он использует общий набор инструментов виджетов (тога), который сопоставляется с вызовами интерфейса хоста.
Оба являются активными проектами, и их учетные записи github показывают довольно много недавней активности.
Будьте осторожны, Toga, как и все библиотеки виджетов, хорош для распространения основ на нескольких платформах. Если у вас есть базовый дизайн и вы хотите перейти на другие платформы, это должно сработать для вас.
С другой стороны, Chaquopy гораздо точнее отображает API Python на Android. Это также позволяет вам смешивать в Java, что полезно, если вы хотите использовать существующий код из других ресурсов. Если у вас есть строгие цели дизайна и вы в основном хотите ориентироваться на Android, это гораздо лучший ресурс.
Чтобы ответить на ваш первый вопрос: да, возможно разработать приложение для Android на чистом питоне, для этого я предлагаю вам использовать BeeWare, который представляет собой просто набор инструментов Python, которые очень хорошо работают вместе и позволяют разрабатывать собственные приложения для платформы на Python.
checkout это видео создателя BeeWare, который прекрасно объясняет и демонстрирует его применение
Предпочтительным языком реализации Android является Java, поэтому, если вы хотите написать приложение Android на Python, вам необходимо иметь способ запускать код Python на виртуальной машине Java. Это то, что делает ЛОС. ЛОС - это транспилятор: он берет исходный код Python, компилирует его в байт-код CPython, а затем транспилирует этот байт-код в Java-совместимый байт-код. Конечным результатом является то, что ваши файлы исходного кода Python компилируются непосредственно в файл Java .class, который можно упаковать в приложение Android.
VOC также позволяет вам получать доступ к собственным объектам Java, как если бы они были объектами Python, реализовывать интерфейсы Java с классами Python и создавать подклассы Java с классами Python. Используя это, вы можете написать Android-приложение непосредственно против нативных Android API.
После того, как вы написали собственное приложение для Android, вы можете использовать Портфель для упаковки кода Python в виде приложения для Android.
Портфель - это инструмент для преобразования проекта Python в автономное собственное приложение. Вы можете упаковать проекты для:
Вы можете проверить этот собственный Android Крестики-нолики, написанный на Python, с помощью пакета BeeWare. на GitHub
В дополнение к инструментам BeeWare вам потребуется установить JDK и Android SDK для тестового запуска вашего приложения.
и чтобы ответить на ваш второй вопрос: хорошей средой может быть все, что вам удобно, будь то текстовый редактор и командная строка или IDE, если вы ищете хорошую IDE на Python, я бы посоветовал вам попробовать Pycharm, в ней есть бесплатная версия для сообщества, аналогичная среде Android Studio, потому что она была сделана той же компанией.
Надеюсь, это было полезно
Это только у меня, или от ЛОС отказались?
это тупик (последний раз проверял: декабрь 2018). Один или несколько компонентов в этом слишком сложном решении больше не работают или не могут поддерживать себя в актуальном состоянии.
Просто обновление на 2019 год, но Kotlin теперь является предпочтительным языком для разработки Android.
@BerryTsakala, ты можешь уточнить? Как вы думаете, решения BeeWare умрут в ближайшем будущем (тогда я не хочу тратить на это время ...)?
@Basj Я хотел бы сказать, что Beeware определенно будет существовать какое-то время, потому что, просто взглянув на его учетную запись GitHub, вы обнаружите, что она активно развивается, и если вы перейдете на канал Gitter, вы можете всегда доходят до всей команды, особенно доктора Рассела (freakyboy), создателя, и сообщество довольно дружелюбное, а также недавно был опубликован твит (26 сентября 2019 г.) из их официального аккаунта, в котором сообщалось, что они получили грант на образование от Python программный фундамент. Я думаю, это того стоит, особенно если вам нравится Python как язык.
В любом случае BeeWare, похоже, не поддерживает Android (Java) на данном этапе.
но beeware не поддерживает изображения и другие виджеты
привет @SearchImtiyaz из документации тоги, вы можете использовать ImageView, вы также можете проверить полный Ссылка на Тога для списка доступных виджетов
@maroofshittu спасибо, дружище, это было очень полезно для меня
раньше я использовал kivy и их программу buildozer. у них есть документация здесь kivy.org/docs/guide/packaging-android.html