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

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

Спасибо за статью. А не могли бы Вы написать детально о сборке приложения под Андроид?

Там все настолько просто, что это даже на статью не тянет. Если накоплю материала, который можно подать помимо вашего вопроса, то такая статья будет.

Я пробовал бульдозером собирать приложение под Андроид на трёх разных платформах и двух разных ноутбуках, и всегда вылезали какие-то ошибки в процессе сборки.


Долго гуглил ошибки, в итоге так понял, что на винде сборка вообще не работает, а про ту ошибку, которая вылезала у меня на маке contributor местный сказал что не знает как ее исправить.


Так что это совершенно нетривиальная задача)

Не буду обещать, но сегодня постараюсь написать о сборке пакета для Андроид.

dockerfile в котором всё работает было бы идеально. А то у всех проблемы разные :)

Был. Удалили. У нас ним тоже были проблемы с Python3. Если у вас есть опыт, поделитесь с нами.

Всё таки Python не для мобилок. А тот же kivy собирать в APK и тестировать локально — та ещё боль.

Вы тестируете иначе?

Немного не это имел ввиду ;) Чтобы какой-нибудь Android Studio заюзать нужно много времени потратить. (имхо, может быть я такой криворукий :( )

Чтобы какой-нибудь Android Studio заюзать нужно много времени потратить

Не понимаю, причем здесь Kivy и "та ещё боль"?

Как минимум скомпилировать в APK =) В мануале по которому я пытался сделать это, использовался Android Studio :thinking:
Возможно я не прав, но их совместное использование — возможно.

Kivy не использует для компиляции APK Android Studio. И никогда не использовал.

Буду знать. Спасибо.

Чтобы какой-нибудь Android Studio заюзать нужно много времени потратить

Не понимаю, причем здесь Kivy и "та ещё боль"?

В принципе, не имеет значения на какой OS все это будет работать, потому что KivyMD, как и Kivy везде выглядит одинаково. Вы сами должны решать, какой вид будет у вашего приложения и я считаю, что это только плюс.

Да и правда — в жопу гайдлайны и привычный UX, давайте фигачить свой колхоз везде.

А разве на Flutter не так? Там UI рендерится так же, как и в Kivy, я думал, что все это знают, на нет...

Не ни также у flutter используются нативные виджеты в отличие от kivy...

В kivy для отрисовки используется opengl соответственно при всем желании вы не получите виджеты нативного вида

А в приведнных роликах и гифках в статье вы наблюдаете не нативный вид?

По ios хочу увидеть...

На самом деле, Flutter использует, если не подводит память, Skia, и все виджеты в нём рисуются этим движком. Тут Kivy концептуально не отличается. А вот ReactNative — напротив, работает с нативным компонентами, но имеет потери производительности из-за наличия Js <> Native бриджа.

Flutter не использует нативные виджеты ни на одной из платформ. У Flutter свой canvas и движок для рендера в этом canvas. Вот официальная документация — flutter.dev/docs/resources/rendering#introduction

Так же и Kivy — использует для рендера UI SDL2 и OpenGL… Так что все заявления, типа " Kivy не подходит для мобильных платформ" с таким же успехом применяются и к Flutter!

Да, спасибо был не прав...

Спасибо за вашу работу! То, что вы делаете — это прекрасно! Но хотелось бы понять две вещи: 1. является ли KivyMD "prodaction ready" (чтобы не переживать за баги в серьёзных приложениях для бизнеса) и 2. когда появится полноценный сайт с документацией? Раньше айтишники по способу усвоения информации делились на два типа — те, кто признают только книги и те, кто читают документацию с ПК. Теперь вот появился третий тип — те, кто учится по youtube роликам. Способ иногда более наглядный, но нет возможности скопировать фрагмент и запустить, а также в напечатанной документации быстрее найти нужный код. Понимаю, что это всё долго и больно, но Вы хотя бы рассматриваете в планах создание документации, мануалов и туториалов?

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

Из минусов kivy — это только размер приложений. Обычно это примерно 20мб. Но сейчас это курам на смех. Из плюсов — любая либа на питон может быть использована в мобильном приложении. У меня был случпй: нужно было найти либы доя трубы, исты и спидтеста. На джаве я этого не нашёл, а вот на питоне — за 1 минуту все либы нашёл, потом внедрил в приложение

Про размер даже можете не заикаться, ибо посмотрите на размер приложений хотя бы на iOS.

Из минусов kivy — это только размер приложений.


И всё? Прямо даже удивительно слышать. Потому что когда я делал подход к снаряду несколько лет назад, тормозила эта штука в списках с сотней элементов как не в себя. Ну и собрать приложение было практически не реально — мне удалось только с использованием линукс-образа, предоставляемого разработчиками, и только один раз. После чего я поглядел на производительность, на внешний вид (KivyMD тогда уже был, но заставить его работать был тот ещё квест), на документацию, на то, что даже в доступном в гугл-маркете примере некоторые виджеты безбожно глючат (нереагирующая кнопка или пункт меню — милое дело), и пошёл ковырять Android Studio.
тормозила эта штука в списках с сотней элементов как не в себя

Сейчас есть RecycleView, который за доли секунды обрабатывает миллионные списки.


собрать приложение было практически не реально

https://habr.com/ru/post/479236/


пошёл ковырять Android Studio

Идите, ковыряйте

Идите, ковыряйте
Давайте без грубостей. Я вас не оскорблял, так что будьте любезны соблюдать минимум приличий хотя бы из практических соображений — мало что так подрывает усилия евангелиста, как откровенное хамство.

Покажите в каком месте я вас оскорбил?

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

И самое интересное, что мне плевать! На таких, как ты — плевать. А вот тебе бы в чатик заскачить, у школьников троллингу поучиться.

Вы написали, что идете ковырять Студию! Я ответил — "Идите ковыряйте!" Где оскорбление? У доктора давно были? Судя по вашей карме — человек вы с гнильцой!

Там прямо написано «несколько лет назад», т.е., прямо сейчас я, никуда идти не собирался. Но вам захотелось нахамить, и вы нахамили, поскольку вы узрели еретика, относящегося к продвигаемой вами технологии без подобающего восторга. Теперь начинается «а чо такого». Но тут есть даже положительный момент — вы напомнили мне о ещё об одном минусе kivy: крайне токсичное комьюнити. Никакой критики не воспринимают, их надо строго по шерсти. Я как-то наблюдал у них в группе дискуссию по поводу сломавшего всё и вся релиза — сплошное «it's free so developers owe you nothing». Имеет смысл учитывать этот момент.
Судя по вашей карме — человек вы с гнильцой!
В гранит!

Мальчик, иди поплачь в чате "никчёмные тролли". Твое рукамашество и ногодрыжество лично меня никоим образом не задевает! Так что подбери слюни с пола!

Это какой нужно быть паскудой, чтобы при отсутствии статей и всего лишь при наличии духста комментариев заработать отрицательную карму?! Да ты прям образец вежливого человека!

Юра, прекрати мудацкое неадекватное поведение. Ты своим хамством и безосновательным наездом портишь репутацию не себе, а проекту.

Уважаемый, минусиков в карму тут можно наловить усомнившись в непогрешимости Илона Маска например. И это ника не будет зависеть ни от гнильцы, ни от профподготовки. А вам бы успокоиться сейчас.

Очень странное совпадение, что у вас троих красная карма, нет! Впрочем, мне-то дела нет до ваших сомнений.

Прикольно, а я оказывается когда-то плюсанул тебе в карму)

И на том спасибо!

Да не за что, хорошее дела делаешь, нервишки только подлечи)

Да, действительно — и всё. Я собираю приложение на специальной виртуальной машине, предоставленной один из участников сообщества. Показывал первую версию программы широкому кругу лиц в живую. Процесс стал намного проще, чем в Android Stuido. Я тоже слышал страшные истории про бульдозер, киви и извращенцев, собирающих мобилки на питоне. В 2019 году — это всё неправда. Огромнейший плюс подобного подхода — возможность затащить в мобильное приложение ЛЮБУЮ библиотеку на питоне для любых целей, а спектр этих либ и задач намного шире, чем у джавы и даже джаваскрипт. Так что действительно нашёл всего один минус — размер приложения, но 20 МБ по сегодняшним меркам — это не критично))

Да, действительно — и всё.
При этом вы задаёте такие вот вопросы:
1. является ли KivyMD «prodaction ready» (чтобы не переживать за баги в серьёзных приложениях для бизнеса) и 2. когда появится полноценный сайт с документацией?

Я не понимаю, что смущает в 20 МБ? На iOS приложения и до 80 МБ вытягивают.

А на андроиде флаттер за 3-4 мегабайта ругают. Текущее приложение над которым с коллегой работаем весит 10-11 мегабайт, и до 20 распухать пока что не планирует.

image

И что это должно было показать?

То, что размер 20 МБ у приложения Kivy — это не нонсенс.

К моему большому сожалению, основные задачи на мобилках это UI, а с ним у питона все же хуже. Под натив можно почти на любой чих в UI заскоках библиотеку найти.
а с ним у питона все же хуже

Например?

Зайдите на android arsenal, material.io, полистайте гитхаб — библиотек с разными кастомными вью уже десятки, возможно и сотни, тысяч, да что уж там, думаю со временем доделать один свой эксперимент и еще +1 в эту копилку закинуть, даже с учетом что он не нужен даже мне, но мало ли, пусть будет. Питон все же исторически не про разработку UI, и людей над этим в нем работает меньше.

И тем не менее, PyQt, wxPython, Kivy, Tkinter существуют и никто бросать их не собирается.

Рассматривали, конечно. Что-то уже начали делать, но, опять же времени на все и сразу не хватает. В репозитории KivyMD есть раздел wiki. Это, конечно, не сайт с документацией, но там очень много примеров использования с демонстрацией работы. Есть плей-лист на YouTube с уроками по KivyMD, на домашней странице нашего проекта много полезных ссылок. Что касается ошибок… Все критичные ошибки уже исправлены.

Сравнение с Flutter это прям плюс.
Но в статье не увидел такой важный момент, а как строится в KivyMD разметка виджетов?

Например, как по мне, если сравнивать тот же Flutter с React Native, то одно из преимуществ в виджетах Row, Column с определением стиля позиционирования потомков через параметры виджета, по сравнению с Flex-разметкой в CSS-стилях. Упрощает построение составных виджетов.

Какой подход в KivyMD?

Разве вы не смотрели под спойлеры? Там приведен код того, что показано на экране.

Конечно, посмотрел, отсюда и вопрос. И вопрос, не в языке разметки, а в том, что можно им сделать.
Фишки flex'а и разметки в fluter — это удобное позиционирование элементов главной и поперечной оси.

Т.е., вместо вопроса на вопрос можно было бы просто ответить, какой подход, flexbox или grid или что-то ещё.
Интересно, превый раз слышу про такой фреймворк. Как я понимаю, Python-код не конвертируется в Java или Objective-C/Swift и исполняется через интерпретатор?

Чистый Python!

НЛО прилетело и опубликовало эту надпись здесь

Нет. Будет выполняться байт-код Python.

Интересно, превый раз слышу про такой фреймворке

Это очень странно, потому что Kivy старше React Native и Xamarin!
У первого и у второго богатые папиньки в виде Facebook и Microsoft. Миллионные бюджеты и разрекламированная популярность. У Kivy — 10 000 долларов в год на плату коре-разработчикам фреймворка. Плюс поддержка пользователей. То есть, тупо на добровольных началах. И это уже сейчас затыкает за пояс и Flutter, и ReactNative и Xamarin! Если бы у Kivy был спонсор в виде такого папеньки, как FaceBook, вы бы сейчас и не знали, что такое ReactNative!

Ну вот так и происходит. Не всегда хорошие технологии популярны, просто потому что нет рекламы.

Да, не очень понятно, с чего Гугл сделал ставку на Котлин, вместо того, чтобы развивать питон
Всё к чему прикасается гугл, превращается… (можете продолжить сами). То, что они пытались делать на питоне, выглядит, как попытка «превратить его в Java».

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

Работает. Но попал под блокировку Роскомнадзора. VPN в помощь. Хотя у нас в Луганске, например, он спокойно себе работает без всяких VPV:
image

Зависит от провайдера. Действительно — у некоторых людей сайт www.kivy.org не открывается. Один мой коллега на вопрос "Почему больше не пользуешься kivy?" ответил как раз, что не пользуется по причине заблокированного сайта, однако он был сильно удивлён, когда я при нём же открыл сайт в рабочем браузере. Но тоже знаю людей, которые до сих пор жалуются на заблокированный сайт.

Хм. Ок. Спасибо. Не подумал, что может быть заблокирован. Интересна причина блокировки канеш…
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории