Вокруг Flutter
Что делать, если знаешь только Python, а хочется создавать приложения на Flutter? Будет ли создана открытая ОС для запуска приложений, написанных для macOS? И как в конце концов победить дёрганье анимации при первом запуске? Об этом наш августовский Flutter-дайджест.
Привет, Flet
Недавно в подкасте Python Bytes была интересная дискуссия, в которой обсуждался UI-фреймворк Flet. У него очень необычный стек, где клиент на Python управляет интерфейсом на Flutter, а в роли бэкенда выступает сервер на Go. Буквально одна команда pip install flet, и можно создавать GUI-приложения на Python без регистрации и SMS без знания HTML, CSS, JavaScript и Dart.
Но есть и негативные моменты, которые могут испортить первое впечатление. Документация выглядит, мягко говоря, недоделанной. Дорожная карта проекта также нуждается в актуализации. Чтобы помочь проекту, можно заглянуть в репозиторий и как минимум поставить ему «звёздочку».
Пока Flet достаточно молод, чтобы предсказывать ему успех. Но появление такого фреймворка свидетельствует о возрастающем интересе к миру Flutter-разработки. Концепция «всё есть виджет» и скоростное прототипирование служат мощным стимулом развития. Вполне возможно, Flutter станет «золотым стандартом» разработки. Время покажет.
Приручение ворона
Экосистема Apple вызывает двойственные чувства. С одной стороны она удобна и практична. С другой — максимально закрыта от любопытных глаз разработчиков. И это нравится далеко не всем. Разработчики ravynOS решили угодить и тем, и другим. Это новая операционная система, призванная дать шанс работать с приложениями для macOS, взяв за основу дистрибутив FreeBSD. Изначально проект носил название AiryxOS, но в дальнейшем его переименовали.
Первое время дистрибутив задействовал привычную оконную систему X11, но в будущих релизах от неё было решено отказаться. Пользовательский интерфейс будет написан с нуля, чтобы реализовать все запланированные возможности. Заявляется полная поддержка технологий Cocoa, Qt и Mach. В такой системе приложения для Linux, macOS и FreeBSD (поддерживающие протокол Wayland) смогут существовать и работать вместе.
Конечно, идея о свободных альтернативах проприетарных ОС родилась давно. Тот же ReactOS создавался, как свободная альтернатива Windows (NT5 и выше). Но при этом не являлся точной копией. Увы, пока что его сложно назвать хорошо работающей системой, несмотря на 24-летнюю историю разработки.
Внешний вид ReactOS
Иногда альтернативные ОС создают лишь с целью продолжения истории той или иной компании. К примеру, последняя версия BeOS, создававшаяся для компьютеров BeBox, была выпущена в 2001 году. Судьба компании печальна. 20 лет назад она была объявлена банкротом, а вся интеллектуальная собственность перешла к Palm.
Внешний вид Haiku
Стараниями энтузиастов эта ОС стала возрождаться с новым именем, но полной бинарной совместимостью с оригинальной BeOS. Что интересно — она вполне применяется в «боевых» условиях. На ней, к примеру, работает TuneTracker, софт для автоматизации трансляции радиостанций.
Новая ravynOS вполне сможет занять нишу в экзотическом зоопарке операционных систем. А если ей будет удобно пользоваться, то это станет весьма показательным прецедентом. Традиционно, пожелаем разработчикам удачи!
Jank shaders
Рассказывать про крутые фреймворки и идеи всегда приятно. Другое дело — про надоевшие баги, портящие разработчикам жизнь. Один из таких багов — дёрганье анимации при первом запуске. Любая анимация будет фактически небольшим приложением, которое компилируется для исполнения на GPU.
Время компиляции может составлять несколько сотен миллисекунд. Это существенно больше, чем нужные 16 миллисекунд для плавного отображения в режиме 60 FPS. По завершении процесса результат кэшируется, что полностью убирает проблему на Android. А вот на iOS всё сложнее.
Metal API стал прорывной технологией, заменив связку из OpenGL и OpenCL. Увы, но поначалу это сильно ухудшило ситуацию с jank shaders. На тот момент отсутствовал один из слоёв кэширования шейдеров. Поэтому проблемы с дёрганьем анимации возникали каждый раз, а не только при первом запуске. Полноценного решения пока нет, но добиться существенного снижения эффекта можно.
За несколько релизов разработчики Flutter и библиотеки Skia Graphics Engine внесли ряд важных изменений. Во-первых появилась возможность предварительной компиляции (так называемого «прожига») шейдеров под Metal. Во-вторых был откорректирован уровень приоритета обработки кадров, чтобы другие асинхронные события не замедляли отрисовку. И в-третьих — была улучшена работа сборщика мусора.
Но это всё теория. Если хотите получить больше практических знаний, то советуем заглянуть в статью Flutter jank shaders — история проблемы и пути решения, опубликованную на Хабре.
Конкурсы для разработчиков
Flutter Quiz
до 1 декабря 2022
Если хотите быстро проверить себя, а на технические собеседования не готовы — участвуйте в новом квизе по Flutter. Его составляли наши опытные разработчики, так что придётся хорошо подумать.
Среди всех, набравших не менее 6 правильных ответов мы устроим розыгрыш приза (Яндекс.Станцию). Счастливчика определит генератор случайных чисел в прямом эфире на нашем Youtube.
Митапы
Flutter Meetup
21 сентября 2022
Рады сообщить, что у нас запланирован отличный Flutter Meetup. Программа мероприятия пока что формируется, но регистрация уже открыта. Детальная информация будет опубликована позже, так что следите за наши новостями.
Если у вас есть идея доклада и вы хотите стать спикером, то пишите на почту andy@evrone.com.
Вакансии
Evrone
Мы открыты для новых Flutter-разработчиков. В Evrone можно работать удалённо с первого дня, мы поддерживаем и оплачиваем участие в Open-source проектах, а расти в грейдах можно с помощью честной системы проверки навыков и менторства.