Как стать автором
Обновить

Комментарии 40

Спасибо за статью. Давно хотел попробовать силы а разработке под Андроид, а тут еще и питончик любимый.
Зaблyждeниe 1
Пpилoжeниe нa Kivy зaкpывaeтcя пpи пoпыткe cвepнyть eгo в тpeй.

Тут полезно дать ссылку на документацию, где рассказывается про Pause mode и его особенности. Но вкратце, как вы верно заметили, он по-умолчанию активен.
Последний раз, когда я смотрел, у kivy были большое проблемы с python3 поддержкой. Сейчас так же или уже лучше?

У третьей веткой проблем нет никаких.

Я не очень в курсе насчет Kivy, но я в курсе насчет python3, что там используется. Не хочу показаться нескромным, но в Kivy, насколько я знаю, используется python3 из моего проекта, CrystaX NDK. Об этом, в частности, прямо говорится в README kivy/buildozer.

Ну а python3 из CrystaX NDK работает на Android отлично а) благодаря хорошей поддержке POSIX, благодаря которой python3 собирается из upstream исходников без изменений и б) достаточно большой тестовой базе, на которой постоянно проводится регрессионное тестирование. Причем тестирование произодится не только под Android, но и под GNU/Linux и Mac OS X, что позволяет получить эталонное поведение нижнеуровневых библиотек на Android.

Да, именно так. Спасибо за проект!

НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Киви хорош, и прост в освоении. Сам прошел полный путь от 'hello world' до размещения приложения на маркете. Для встраивания рекламы есть очень удобный kivmob.
Но, как всегда, есть «но»: уж не знаю buildozer ли виноват в этом, или особенность киви — но при каждом открытии приложения вас будет на несколько секунд встречать экран загрузки. 2-3 секунды, а иногда может быть даже и больше, даже для самых лёгких приложения. И что самое плохое — при этом внутренние ресурсы приложения он не прогружает — о прогрузке всех ваших картинок вам придется думать самостоятельно.

Последнее предложение объясните подробнее иначе статью придется дополнить опровержением еще и вашего утверждения.

Если этому есть опровержение, то буду только рад.
Приведу живой пример: играл flappy bird. Тыкаем на иконку, видим 2-3 секунды загрузочного экрана приложения. Получаем приветственный экран, с кнопкой «играть». Тыкаем на кнопку играть, которая через менеджер экранов переключает вас на экран с игровым «полем», где много графики. И вот когда вы переключаетесь — вся эта графика прогружается. А не в момент первоначальных 2-3 секунд загрузки.

Ну, если вам так хочется, создавайте экраны сразу в методе build, наследника от App, и будет вам счастье. Но это не правильный подход, так как время загрузки увеличится. А единожды созданный объект в Kivy, во все последующие создается мгновенно. Так что выбирайте.

Kivy Launcher отсутствует там потому, что уже мертв! Есть масса других, более продвинутых и удобных, способов запуска нприложения на Kivy из исходных текстов прямо на девайсе. Если я вам скажу, что VKGroups полностью написанно с Kivy 1.10.1 + Python 3.6 и протестировано прямо на мобильном устройстве Android, вы сильно удивитесь? И я не знаю что там у вас в пролете, но вот где-где, а на десктопе проблем с Kivy вообще нет.

А можете привести способы запуска, заинтересовала данная технология!

Я пытался собрать уже готовый проект под iOS — не получается в принципе. При попытке создания Android — приложение собирается, но не запускается. Может быть проблема в том, что у меня Python3. Если есть подробная инструкция по сборке .ipa — можете поделиться?

Если приложение не запустилось, смотрите логи. В корне приложения есть папка .kivy — в при каждом запуске приложения, там создается лог.

Под iOS свои нюансы. Здесь помочь вам не могу. Не пользуюсь девайсами с такой системной.

Прекратилась, я думаю, потому, что KVLanguage настолько прост, что разметить UI вручную в десять раз быстрее, чем с помощью Designer.

Спасибо за статью! От меня плюсик:)

Подскажите пожалуйста.
Стоит задача написать софтину для Терминала Сбора Данных (ТСД).
Имеет ли смысл использовать для этого Kivy, если предполагается работа с встроенным 1D/2D — сканером штрихкодов?
Я знаком только с Python и 1С.
В Python — Kivy, в 1С — мобильная платформа 1с. Что бы выбрать?
То есть из Kivy я буду иметь к bluetooth, gps и прочему оборудованию на устройстве?

Kivy — это для UI и доступа к функциям Android девайса. А доступ к оборудованию вы будете иметь через Python.

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

Вы меня извините, но код мне тоже на кириллице писать?

Зачем? я сам программирую на python, того и заглянул почитать, может что нового интересного узнать. И все прекрасно читаю и на русском, и на английском. Но когда в одном слове набор и того, и другого — это уже что-то…

Покажите это слово, ради бога, аж интересно.

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

Вы, конечно, не думаете, что я делаю это намеренно!? Статья написана на Android девайсе с клавиатурой Touch Pal.

Нет, что вы. Я ничего против Вас не имею. Просто не в первый раз, вот и заинтересовало. А раз с android тогда становится понятней. Видимо таки какая-то кодировка или что, которого нет в наличии windows. Теперь хоть буду знать из-за чего такое проскакивает, попробую может поискать решения данной проблемы. Еще раз извиняюсь за оффтоп.

Очень удивился, когда открыл статью и понял, что очередной фреймворк с незнакомым названием оказался не JavaScript-фреймворком

Пользовался kivy 1.9 на ПК (linux/win), в целом прикольно, но была там пара неприятных мелочей. Скажите, что из этого пофиксили:


  1. Время запуска. Две-три секунды на инициализацию экрана с сотней виджетов как-то многовато. Во время работы, справедливости ради, всё работает и ничего не лагает.


  2. Честный нативный дизайн. Понятно, что виджетам можно вручную выдать все положенные шрифты, фоны и т.п., но при переезде с linux на windows или с версии на версию это всё надо будет делать заново?

Ну и не отказался бы от подробного разбора очистки приложения от ненужного хлама. 15 Мб+ для рогалика с двумя мегабайтами ассетов и половиной мегабайта кода немного чересчур.

Время запуска. Две-три секунды на инициализацию экрана с сотней виджетов как-то многовато. Во время работы, справедливости ради, всё работает и ничего не лагает.
Единственный выход: создавать эту сотню виджетов динамически, уже после запуска приложения.

Честный нативный дизайн. Понятно, что виджетам можно вручную выдать все положенные шрифты, фоны и т.п., но при переезде с linux на windows или с версии на версию это всё надо будет делать заново?
Kivy не использует нативный UI. Все виджеты Kivy рисует самостоятельно. Если хотите везде нативного вида — только вручную.

Ну и не отказался бы от подробного разбора очистки приложения от ненужного хлама. 15 Мб+ для рогалика с двумя мегабайтами ассетов и половиной мегабайта кода немного чересчур.
Речь про Андроид? Если да, то там прямо сейчас собранный без каких либо дополнительных шагов apk занимает мегабайт 5 или около того.
Андроид? Если да, то там прямо сейчас собранный без каких либо дополнительных шагов apk занимает мегабайт 5 или около того.

Возможно разработчики, как и обещали, выкинули не используемые API Kivy при сборке. Но все равно еще пару метров можно вырезать из самого Python.

Вам уже ответили по половину вопросов… Насчет хлама в следующей тратьте.

виджет для андроида можно быстро реализовать или придётся погружаться полностью с головой?

Конкретнее, пожалуйста...

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.