Комментарии 35
Я вот всё равно не понимаю – какой в этом смысл? Изучать новый фреймворк, который всегда будет поддерживаться заведомо хуже, чем оригинальный, городить костыли. Только для того, чтобы писать на питоне, а не на джаве?
Я еще могу как-то понять использование HTML + JS для очень простых промо-приложений, для которых достаточно, по сути, сверстать страничку и завернуть в apk, но какой смысл пихать питон в андроид?
Расскажите это разработчикам Kivy и тысячам людей, которые его используют всместе c Python во всем мире!
Что только люди не придумают, лишь бы Java не изучать…
Вы видели у статьи метку? Или вы пытаетесь развести здесь бесполезный холивар?
color_action_bar = ListProperty(
[0.4, 0.11764705882352941, 0.2901960784313726, 0.5607843137254902]
)
'''Цвет ActionBar.'''
color_body_program = ListProperty(
[0.15294117647058825, 0.0392156862745098, 0.11764705882352941, 1]
)
'''Цвет фона экранов программы.'''
color_tabbed_panel = ListProperty(
[0.15294117647058825, 0.0392156862745098, 0.11764705882352941, 1]
)
Поскольку архитектура Kivy проектов предполагает модульность, эти параметры передаются при создании экземпляра используемого класса. К тому же, если я захочу, например, быстро протестировать новую цветовую схему, мне достаточно изменить значения переменных, которые отвечают за цвет приложения в файле Data/Themes/default.ini.
А если вы о самом формате этих значений, то это обычное представление цвета в формате rgba, которое чаще всего используется в Kivy:
>>> from kivy.utils import get_hex_from_color, get_color_from_hex
>>> get_hex_from_color([0.4, 0.11764705882352941, 0.2901960784313726, 0.5607843137254902])
>>> '#661e4a8f'
>>> get_color_from_hex('#661e4a8f')
>>> [0.4, 0.11764705882352941, 0.2901960784313726, 0.5607843137254902]
И да и нет. Минимальная стандартная сборка — это 8-9 Мб. Но! При сборке можно указать, какие библиотеки и API не включать в проект. Таким образом размер сборки сокращается до 4 Мб.
Ищите в своем python-for-android файл blacklist.txt. В данный файл заносите все модули и библиотеки, которые НЕ НУЖНО влючать в сборку итогового apk.
Один момент. Но учтите, что вручную вы ничего не добьетесь, потому что вы не знаете, какой модуль какую библиотеку потребует в процессе работы. Вам нужно создать полное дерево импортируемых и используемых вашим приложением модулей и библиотек, включая стандартные библиотеки. У меня есть подобная утилита, которая все это делает автоматически и записывает в blacklist все не нужное проекту. Но! Все это я готовил для очередной статьи и этот процесс требует тестов. Статья заброшена, утилита тоже, так лично для меня стало не важно весит ли мое приложение 4 Mb или 7Mb. Если хотите, могу поискать в загашниках...
> «могу поискать в загашниках.»
буду рад даже просто вашему последнему созданному blacklist.txt. (не тому что идёт в комплекте)
К сожалению, старые сборки в python-for-android, в которых я тестировал упомянутую утилиту, благополучно мною удалены как и сама утилита (возмножно, позже еще посмотрю в корзине). Но принцип я вам уже описал. Почему забросил статью? Конечно же, не из-за минусов, коих, к слову, по пальцам можно пересчитать. Работа, плюс был занят частным заказом на Kivy проект для RespberyPI. К тому же готовил новую статью для Хабра -"Kivy — еще проще! Еще нативнее!" (сегодня опубликую). И потом, я пользуюсь мобильным Интернет провайдером, поэтому у меня нет возможности скачать новый SDK для тестовых сборок проектов под Python3. Когда этот вопрос станет для меня вплотную, тогда и статья появится.
Посмотрите мои публикации — в одной из статей я рассматривал примеры нескольких экранов программы Clean Master…
Насколько сложный проект можно реализовать с помощью Python и Kivy? Любой! Причем в пять раз дешевле и быстрее, чем аналогичный проект на Java! Единственное, что отталкивает разработчиков от Kivy — это невозможность свернуть и восстановить приложение из трея (это грубо — здесь есть свои нюансы), пиар (вот я пытаюсь, как могу, как-то популизировать данный фреймворк), ну и возможности — на самом деле Kivy может все, что может ЛЮБОЕ Java приложение! Скорость работы? Поскольку самые "тяжелые" части Kivy скомпилированы в C, скорость работы соответствующая. Плюс никто не запрещает вам использовать Cython для "тяжелой" математики в вашем проекте. Пробуйте, пишите, подскажем, ответим!
Под конкретную — легко! Хоть под Windows 10!
Как один из вариантов.
Kivy это не язык — это фрейморк, написанный для разработки кроссплатформенных приложений на и для языка программирования Python.
Различается ли скорость разработки Android приложения на Python с использованием Kivy и на Java?
Я не заметил.
Много ли велосипедов и костылей приходится придумывать в процессе разработки на Kivy?
Ну, не знаю, если считать, что костыль — это во-о-он та красивая кнопка, то, наверное, много… А так — все, что нужно уже есть непосредственно в Kivy.
P.S. я не Grammar Nazi =)
И очень медленная работа с большим количеством виджетов.
К примеру, хочу сделать календарь и добавляю 30 кнопок в grid_layout и это занимает 1-2 сек. А если не хочется зависания, то предлагают через очередь и дополнительный трэд это делать. Но тогда видно как один за одним элементы появляются
Так же с файловым менеджером. Открываешь его и ждешь 3-5 сек пока появятся иконки, потому что иконка файла состоит из 2-3 виджетов(сама картинка + label к ней) и выходит 10 файлов — 20 виджетов и лаг или погрузка 1 секунду. (А в любом другом файловом менеджере на Java 10 файлов я увижу мгновенно). И я проверял на папках, а не на изображениях, где нужно preview генерировать.
Может у вас есть решение?
Судя по всему, у вас кривая реализация вашего кода. Только что проверил — список из более чем пятидесяти элементов Button отрисовывается за 0.3 секунды. С "лесекой" не сталкивался. Файловый менеджер открывается мгновенно, о каких 3-5 секундах ожидания идет речь не имею понятия.
Вам, HeaTTheatR, советую сразу найти в статье пункт Mipmapping and antialising. И вы узнаете почему ваши приложения так сильно пиксилизованны. Если кому-то будет интересно насчет большого количества виджетов тут описано решение подобной проблемы.
Еще хочу сказать по поводу тем оформления. В kivy одна тема android 4. В сети вы найдете от силы еще две и они не самые красивые. То есть вам для каждого приложения придется самому пилить тему для каждого виджета.
Я очень люблю питон и тоже готов все, что угодно пилить на нем, но с kivy проблем у меня было больше чем удобства (но естественно всему виной «кривая реализация вашего кода»)
ваши приложения так сильно пиксилизованны
О чем вы, ради бога!?
В kivy одна тема android 4. В сети вы найдете от силы еще две
То есть, не используя тем, вы считаете, что я не могу сделать в Kivy окно аналогичное модальному диалогу в Windows 10? Вы вообще имеете понятие о Kivy, Canvas и т. д.?
с kivy проблем у меня было больше чем удобства
У некоторых людей есть проблемы с включением стиральной машинки… Удачи...
приложений на kivy в маркете не больше 10
Видимо, потому, что у людей, у которых "с kivy проблем больше чем удобства" — есть проблемы с включением стиральной машинки…
Простые сладкие приложения с Kivy