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

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

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


Например, тот же TopBar можно переписать так:


class TopBar extends StatefulWidget {
  @override
  _TopBarState createState() => _TopBarState();
}

class _TopBarState extends State<TopBar> {
  int _selectedPage = 0;

  Widget _buildButton(IconData icon, int index) => TopBarButton(
        icon: icon,
        isActive: _selectedPage == index,
        onTap: () => setState(() => _selectedPage = index),
      );

  @override
  Widget build(BuildContext context) => Container(
        color: Colors.white,
        padding: const EdgeInsets.symmetric(horizontal: 30),
        child: Row(
          children: [
            AppLogo(),
            Expanded(
              child: Row(
                mainAxisAlignment: MainAxisAlignment.center,
                children: [
                  _buildButton(FeatherIcons.home, 0),
                  _buildButton(FeatherIcons.youtube, 1),
                  _buildButton(FeatherIcons.grid, 2),
                  TopBarAvatar(),
                  _buildButton(FeatherIcons.users, 3),
                  _buildButton(FeatherIcons.zap, 4),
                  _buildButton(FeatherIcons.smile, 5),
                ],
              ),
            ),
            IconButton(
              color: Colors.grey.withOpacity(.6),
              icon: Icon(FeatherIcons.settings),
              onPressed: () {},
            ),
          ],
        ),
      );
}
Я и не говорил, что «умею во Flutter». И лично я ничего не писал. Там, если что, ссылка на репозиторий Flutter оригинала. Можете лучше — сделайте, покажите…

А, прошу прощения, не обратил внимания, что флаттеровский код – от автора редизайна. Да, тогда его проект – это прям анти-реклама флаттера какая-то.

У нас был, кстати, подобный челлендж: мы с ребятами делали одно и тоже приложение на Kivy, ReactNative и Xamarin — habr.com/ru/post/420691 Многие спрашивали, почему нет Flutter. Можно сделать что-то подобное снова, если есть желание…

Да, можно. Я за.

Нужно только подходящее приложение найти. Не слишком большое, чтобы обзор кода, проблем — а у меня по-любому они возникнут :D — и т.п. уместилось в рамках одной статьи. Но в тоже время и не слишком простое. Чтобы был интерес.

Мы, кстати, в комментариях к одной из статей собирались сделать showcase-приложения для различных архитектурных подходов на флаттере. Я даже под это дело репозиторий создал. Можем его адаптировать под подходы к мобильным приложениям в целом. Ну или что-нибудь другое придумать.


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

Ну, подождем, может кто-то предложит хорошую идею по этому поводу…

Я могу предложить простой РЕТ-проект для приложения мультиплатформенного по челленджу и даже некий "приз" :)

Предлагайте :)

В лс :

Большое спасибо, за интересную статью, плюс вам в карму. У меня вопрос, а много ли вакансии по стеку Kivy?, что то на HH не смог видел ни разу, хотя посмотрел и мне понравилось, тем более что и сам работаю python разработчиком.
Вакансий вы вряд ли найдете. Конкурировать с Flutter от Google это не очень хорошая идея :). Здесь, скорее всего, ключевое слово — Python. Если есть заказ на ПО, которое использует Python, то можно рекомендовать в качестве фронта Kivy/KivyMD. В мире современных технологий и дизайна приложений, по-моему личному мнению, PyQt, например, уже не взлетает. Очень сложно. И в разработке и в кастомизации.
Я когда-то делал интерфейс на PyQt.
С Kivy не знаком.
Можно ли на Kivy (под Windows) сделать:
1. Часть окна прозрачным;
2. Скрыть верхнюю шапку;
3. Реализовать перемещение окна наподобие всплывающей подсказки?
Можно. Но окно будет кастомным. Вы, конечно, можете вызвать нативный диалог, но зачем? В статье приведены яркие примеры того, как легко кастомизируются виджеты. К тому же — www.youtube.com/watch?v=crt8wA4Q5eU#t=29
Мы живём в 21-м веке и сейчас рулит видео. Основная проблема Kivy (относительно того же PyQT или PySide) в том, что нет вообще никаких путёвых видео-уроков. А по тому же QT на том же youtube их просто завались. И если поискать, то найдутся такие видео, где подробно показывается, как делать кастомный и современным дизайн. И именно дескотопов. По Kivy же все уроки ограничиваются «чёрными калькуляторами» (сделанные с виду левой пяткой). А чтобы была например серия, где будут показаны все «красивости», так это пока только в мечтах. И естественно народ смотрит на «примеры» и думает, что за дичь. А про «конструктор» интерфейса (даже примитивный, который был в Делфях, лет 25 назад) вообще даже не упоминается. Поэтому и отдают предпочтение PyQT (если касается Desktop). И все вокруг говорят про Kivy, что проект хорош, что он простой. Но никто не показал в серии видео, как сделать нормальное многооконное приложение на Kivy. (не какой нибудь «чёрный калькулятор» или «жёлтый конвертер», а да, ещё есть любители «узнавателей погоды», а что-либо действительно стоящее, которое раскроет все возможности)
нет вообще никаких путёвых видео-уроков

Видимо, плохо искали. На Youtube — вагон и маленькая тележка видео-туториалов по Kivy/KivyMD.
Видимо не до конца дочитал мой коммент. Обрати внимание на фразу «Но никто не показал в серии видео, как сделать нормальное многооконное приложение на Kivy. (не какой нибудь «чёрный калькулятор» или «жёлтый конвертер», а да, ещё есть любители «узнавателей погоды», а что-либо действительно стоящее, которое раскроет все возможности)». Под словом «нормальный» я имел ввиду современный, вот хотя бы такой, как представлен в этой статье.
А какие примеры дизайна нам показывает сам kivy? Вот элементарно зайди на галерею примеров киви. Одна чернота. И ладно, если бы эти примеры показывали, какой был дизайн 30 лет назад. Но нет. Это они показывают сейчас.
А по поводу ютуба, ты сам зайди и посмотри, что за «красоту» ваяют создатели уроков по Kivy. Возьми и проматай код, и посмотри, что в итоге вышло. Это даже дизайном не назвать. На фоне таких дизайнов, даже Tkinter смотрится куда круче.
И опять же я не говорю, что движок плохой. Но раз уж мы пришли делать дизайн в 2021 году, так почему бы не сделать учебные материалы, где получиться дизайн действительно современный. А у Kivy этого нет. И пока не появиться, kivy так и останется в тени QT. Тем более вышел PyQT6.

p.s. не забываем, что речь идёт про Desktop
А какие примеры дизайна нам показывает сам kivy?

Нужно понимать философию Kivy для начала. Это просто база. Для того, чтобы вы могли сделать все, что угодно. Нужен iOS UI — пожалуйста, нужен Android UI — пожалуйста. Виджеты Kivy настолько кастомизируются, насколько позволяет фантазия. И никто из коробки не привязывает, например, класс Button, ни к одной платформе. Это сделано в целях кроссплатформы. Библиотека KivyMD — тому пример. Мы взяли «страшные» виджеты Kivy и сделали из них виджеты в стиле Material Design.

Если вам нужны примеры красивого Kivy UI:






А по поводу ютуба, ты сам зайди и посмотри, что за «красоту» ваяют создатели уроков по Kivy.

То есть, ты специалист широкого профиля, и тебе сразу нужно показывать туториалы крутого дизайна? Таких убогих уроков на Ютуб хватает и по PyQt и по любому другому фреймворку или библиотеки!
Я не специалист. Я пишу под бэкенд. Потому что нормальных туториалов из разряда «бери и делай», под дизайн — нет. Вот например канал про тот же KivyMD, он из разряда «во, гляди чё могу». И из-за этого даже спустя год, на нём видео просматриваются почти все до 1000. А ты возьми и сделай туториал с нуля и до результата. Вот посмотри допустим видео этого парня. Два дня прошло, а уже 4 с лишним тысячи просмотров.
А философия это замечательно, но философия это рассуждения, а мне интересно делать красивые интерфейсы. Для этого и хочется посмотреть не рекламные видео по типу «ля, чё могу», а понятное пошаговое руководство, где будет с нуля и до результата. Пускай все они уложатся в час, но вот это будет толчок к понимаю и действию, а не рассуждение о философии :-)
Я не гонюсь за количеством просмотров на своем канале KivyMD. А для обучающих роликов нужно соответствующее оборудование и время.

Приложение на kivy в play market без проблем попадет?

Без проблем.

А в appstore? Насколько мне известно у apple есть жесткие ограничения по поводу интерпритации кода.

Насколько я знаю, проблем с AppStore в этом плане нет.

Скажите, а есть ли скины/темы для KivyMD, чтобы было похоже на нативное для iOS и os x?
Нет. Пока что только в планах…

Kivy выглядит классно, если честно, то никогда не понимал тягу к go, dart, flutter. На мой взгляд, сугубо мой личный взгляд, go, dart и flutter в их текущих состояниях это такая же халтура, как и AngularJS в свое время.

dart и flutter в их текущих состояниях это такая же халтура, как и AngularJS в свое время

Мой, тоже сугубо личный взгляд, как человека с 8 годами в нативной Android разработке, ~1 годом в нативной iOS разработке, и перепробовавшего большинство кросс-платформенных фреймворков: Flutter в текущем состоянии – это лучшее, что с этой самой кросс-платформенной разработкой произошло за последние годы.


Dart – далеко не самый мой любимый язык, но он потихоньку улучшается.

Dart – далеко не самый мой любимый язык, но он потихоньку улучшается.

Я больше со стороны связки языка и фреймворка смотрю, может предвзято, конечно. Пока ощущение, пересесть с Андроид/Java галеры на Flutter/Dart галеру, если бы язык был другой, может все не виделось бы в темных тонах.

Я бы не стал говорить о халтуре. Тем более в сторону Google. Flutter хорош в плане скорости работы на мобильных устройствах. И, возможно, я бы тоже выбрал его в качестве инструмента разработки, но есть одно но — Flutter до невозможности уродлив в плане кода и принципов построения UI компонентов.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории