Pull to refresh

Comments 33

На волне хайпа могли бы и Flutter захватить

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

После того как разочаровался в мобильной 1с ради интереса стал посматривать в сторону нативной и кроссплатформенной разработки под мобилки.
Посматривал на киви, ибо питон нравится своей выразительностью, но все же фреймворк мне чем то не нравился. Язык разметки, слабый набор стандартных виджетов, скорость (особенно старта, да и в целом), начал больше смотреть в сторону нативной разработки.
А вот недавно наткнулся на довольно интересную вещь: flutter+dart. Пока только изучаю, но выглядит довольно вкусно и на мой взгляд перспективно.
Язык довольно приятен и выразителен, компилируемый в натив, типы, интересная система создания виджетов, много стандартных виджетов выглядящих нативно, по заявлениям авторов лишен некоторых проблем, что в теории позволит выиграть по скорости анимаций и подобного у разработки на java под андроид, вроде как будет основным фреймворком под фуксию, и в последнее время заметны телодвижения гугла по продвижению.
Пока единственный минус что вижу — малое коммьюнити.
Язык разметки, слабый набор стандартных виджетов
Скажите, в чём сильные стороны других языков разметки? Помимо того, что Kv Language решает все существующие задачи в плане UI, помимо этого данных язык разметки всё ещё является Python и поддерживает конструкции этого языка прямо в разметке. В чём слабость? Каких виджетов вам не хватило?
Мне в принципе не нравится наличие языков разметки)

То есть, слабость языка разметки в том, что он является языком разметки?

Язык разметки, слабый набор стандартных виджетов

Про слабость я не говорил, да и неправильно будет, не изучал. Я просто его наличие в минусы записал. А слабость это про стандартные виджеты. Флаттер подкупил наличием нативно выглядящих виджетов из коробки. И работой с виджетами в целом. Довольно интересная система. Хотя конечно это все вопрос вкуса.
А слабость это про стандартные виджеты.

Kivy потому и кроссплатформенный на 99%, что у него нет привязки к конкретной ОС. Разработчики даже отказывались от некоторых решений, например, с работой аудио, только потому, что предлагаемое решение было заявлено под одну конкретную платформу. Это касается и библиотеки KivyMD, которая предоставляет набор виджетов в стиле Material. Да, она хороша, но это не кроссплатформенное решение. Поэтому она не включена в стандартную комплектацию Kivy. Kivy — работает практически везде. Поэтому никакие Material-ы или Flat дизайном не для него. Хотите Material — пишите приложение в этом стиле. Хотите Flat — верстайте в стиле Flat. И то и другое — пожалуйста. Но из коробки есть только страшная серая тема. А дальше вы делаете всё, на что хватит вашей фантазии.

А вот недавно наткнулся на довольно интересную вещь: flutter+dart. Пока только изучаю, но выглядит довольно вкусно и на мой взгляд перспективно

Это вы на второе пришествие Христа Fuchsi'yu намекаете?:-) Меня вот тоже занимает этот вопрос.
В части перспективности да, ходят в сети всякие слухи и подозрения. А вот вкусно и без этого все выглядит) По крайней мере точно хотя бы один-два проектика для себя сделать попробую, и дарт понравился как язык, и архитектура заложенная во фреймворк.
Спасибо за обзор. Мы сейчас тоже находимся на стадии выбора инструмента кроссплатформеной разработки. Пока остановились на Xamarin (т.к у нас в основном .net разработчики) но и периодически поглядываем в сторону других инструментов.
Вот первое что бы хотелось слышать это примеры успешных крупных проектов, в которых применили данный инструмент, а уж потом сравнение кода.

В конце статьи под спойлером есть
некоторые ссылки на видео проектов, разработаных с помощью Kivy. Их довольно много. В прошлой статье также есть ссылки на видео и приложения. Можете ознакомиться.

Для сборки приложения под iOS нужна macOS.

А разве этим не практически любая кроссплатформа страдает? Не думаю, что Kivy тут исключение, во всяком случае, такая проблема была с тем что доводилось пощупать (а довелось пощупать Qt, React, PhoneGap и Intel MOE, последние два реально только пощупать)

Не знаю, не щупал. Завтра должна выйти статья Kivy. Xamarin. React Native. Xamarin. Часть вторая. Думаю, там автор расскажет об этом.

А вот это действительно интересно и, возможно, будет для кого-то серьезным плюсом. Не знал. Подождем статьи )
Как подтвердили в комментариях второй части статьи, сборка приложения под iOS невозможна без MacOS и XCode. Это часть политики Apple.
Но всё равно для этого нужен mac в качестве build агента.

А, увидел коммент о том что ксамарин завтра выйдет

Присоединяюсь, ещё очень интересно какой именно комментарий имеется ввиду)

У всех классов Kivy реализован метод on_. Вам вообще не надо об этом думать, потому что


class MyWidget(Widget):
    name = StringProperty()

Теперь вам доступен метод on_name, который будет вызываться при каждом изменении поля name


class MyWidget(Widget):
    ...

    def on_name(instance_name, property_name):
        ...
Отслеживание изменений значения поля — только одино из полезных использований Rx. Еще упрощается асинхронная работа с операциями ввода-вывода, с потоками (thread), ну и с цепью асинхронных событий.
Да, забыл самое главное: спасибо за интересную статью!
Еще упрощается асинхронная работа с операциями ввода-вывода, с потоками (thread), ну и с цепью асинхронных событий.

Все события в Kivy асинхронны. Ну, почти все. То есть, если вы вызовите диалоговое окно, основной поток приложения спокойно продолжает выполнятся дальше. В начале это было дико, но теперь я настолько к этому привык, что трудно представить, что какое-то событие в приложении может блокировать основной поток.

Позволю себе еще один вопрос.
У меня начинается новый проект под Android, рассматриваю возможность спрыгнуть с Java.
Очень интересно узнать вызывает ли затруднения реализация операций в фоне (работа Service, JobService) и обработка каких-либо Intent-ов в BroadcastReceiver?

С работой в фоне нет проблем. Но есть одно "Но". Если вы перезагрузите смартфон, при его последующем включении сервис вашего приложения не запустится. То есть нужно будет хотя бы раз запустить ваше приложение, чтобы дать старт сервису. Потом можете его убивать — сервис продолжает жить. До следующей перезагрузки. В этой статье автор утверждает обратное: можно запускать сервис Kivy со стартом смартфона. Но мне это проверить не удалось, потому что я так и не смог собрать пакет по этим гайдам.

Тоже пишем свои приложения на Kivy. Очень понравился именно своими возможности из «конструктора» собрать все, что хочется самому.
Можно небольшой вопрос, столкнулся с проблемой мультипроцессности (библиотека multiprocessing, не threading) после сборки PyInstaller-ом в Windows. Через некоторое время зависает главный процесс с Kivy. Долго искал решение, так и не нашел. Решил проблему написанием приложения на threading. Может быть слышали о таких проблемах?

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

Sign up to leave a comment.

Articles