@Alexander_vrn

По-быстрому слепить Android-приложение на Python (Kivy?). Стоит ли?

Прошу совета по выбору языка/фреймворка для разработки для андроид-приложения с GUI.
Надо сваять приложение под андроид-планшет, чтобы превратить этот планшет в мобильный пульт оператора для управления и сбора данных с некоторой промышленной железки.
Функциональность такая примерно:
- связь с самой железкой через последовательный порт через ZigBee-модем;
- GUI для оператора со всякими кнопочками и картинками;
- обработка, данных, полученных от железки, хранение их в БД;
- уметь нарисовать отчет с цифрами и картинками, чтобы его можно было куда-то потом передать из устройства и напечатать на принтере.
Данных мало, математика довольно простая, здесь все просто. (Хотя и не худо было бы что-то типа numpy подключить).

Я не программист, у меня есть только небольшой успешный опыт программирования подобных штук на PC, там это идеально решается с помощью Python + еще ReportLab позволяет быстро клепать отчеты сразу в pdf. С мобильными устройствами опыта нет совсем, поэтому первая мысль была - попробовать снова все сделать на Python. Немного почитав на эту тему, пришел к выводу, что для того, чтобы разрабатывать полноценное на вид приложение под Android на Python есть только одно более менее популярное решение - это Kivy. (Есть и еще пара нишевых решений типа PyBee, но они пока слабо проработаны и на них не стоит закладываться).
Т.о. есть два варианта:
1) Kivy;
2) использовать родную для андроида Java, которую еще надо изучить. Боюсь не успеть.
Кроме того, не понял пока можно ли будет прикрутить к Kivy какую-то библиотеку для рисования pdf. Может быть, в итоге проще будет все на Java реализовать.

Может быть, вы уже решали подобную задачу? Что посоветуете?
  • Вопрос задан
  • 4867 просмотров
Пригласить эксперта
Ответы на вопрос 3
Посоветовать действительно много чего:
  • Kivy довольно простой инструмент для создания мобильного приложения. Насколько я читал, проблема больше в сборке бинарных пакетов для мобильные ОС. Для Android есть buildozer, с которым люди испытывают проблемы. В Хабре есть статья про его настройку
  • Мобильное приложение для управления - не сложная задача. Логика очевидно будет на сервере, а клиент можно сделать и на современных Javascript фреймвоках. Не зацикливайтесь на языках и технологиях, самое важное в сроках и качестве исполнения.
  • Не тратьте много времени на мелочи. Кроме минимального мобильного клиента и сервера, Вам не мало времени придется провести за проработкой протокола обмена, способе и виде хранения, оптимизации и отладке всего этого и т.д. Быстро создайте прототип, путь и не самый красивый, а позже украшательство можно внести.
  • Из практических советов: В мобильном клиенте можете сильно "затормозится" на реализации хороших графиков. Можно значительно упростить, если воспользоваться готовыми html виджетами. Для python есть довольно популярный Dash. В мобильном клиенте можно показывать через html контейнер.
  • При работе с железом хорошо бы использовать очередь в том или ином виде. Советую очень хорошую реализацию очереди на Python: dramatiq. Для крупного проекта RabbitMQ или NATS
  • Для создания сервера на Python очень рекомендую molten. Проект хоть и молодой, но стабильный и очень продуманный и современный. P.S. есть интеграция с dramatiq с коробки.

Самому приходилось писать на Python решение для умного дома, так что знаю о чем пишу.
Ответ написан
@pcdesign
Я тут не давно тоже этим заинтересовался.
И нашел уже готовую виртуальную машину от разработчиков kivy, в которой все настроено и не надо валандаться ни с чем. Просто пишешь код внутри нее, создаешь файл buildozer.spec, набираешь в папке приложения
buildozer android debug
или
buildozer android release

И получаешь готовый .apk файл, который можно закинуть на телефон и запустить.
Виртуалку можно скачать отсюда:
https://github.com/Zen-CODE/kivybits/tree/master/K...
Пароль админа: kivy
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Список вариантов для Питона.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы