Обновить
21.67

Flutter *

Фреймворк для кросс-платформенной разработки

Сначала показывать
Порог рейтинга
Уровень сложности

Когда важна каждая миллисекунда: оптимизация съёмки для CV и AR

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров1.4K

2ГИС Ситискан — это мобильное приложение для автоматизированной съёмки городской среды. Оно устанавливается на смартфон, закреплённый в автомобиле, и во время движения делает снимки, собирает координаты, скорость и другие параметры. Эти данные обрабатываются с помощью ИИ, чтобы находить проблемы в инфраструктуре: ямы, мусор, повреждённые объекты и другое.

Одна из ключевых задач приложения — снимать изображения с высокой частотой, особенно при объездах сложных участков. Но на практике оказалось, что стандартный метод съёмки takePicture во Flutter может занимать до 3 секунд на один кадр. Это делает невозможной съёмку даже 1 кадра в секунду, не говоря уже о 4 кадрах, которые нам нужны для точного анализа.

В этой статье мы — Руслан Цицер и Арген Жукеев @zhukeev— расскажем, как исследовали узкие места, перепробовали разные подходы — от RepaintBoundary до нативной обработки на C и Java — и в итоге добились стабильной съёмки с минимальной задержкой. Наш кейс будет полезен Flutter-разработчикам, которым необходима высокая частота съёмки (до 4 fps и выше) для своих приложений и инженерам в области компьютерного зрения и машинного обучения или разработчики AR/VR-решений на Flutter, где важны каждая миллисекунда и каждый пиксель.

Читать далее

Новости

Книга: «Основы Flutter»

Время на прочтение3 мин
Количество просмотров4.8K

Привет, Хаброжители! Книга предназначена для всех, кто хочет погрузиться в эффективную кроссплатформенную разработку с Flutter. Вы не только изучите синтаксис языка Dart и основы фреймворка, но и сразу примените знания на практике, разрабатывая проект, который развивается на протяжении всей книги. После каждой новой темы вас ждут задания по доработке его кодовой базы, что позволит уверенно прокачать свои hard-скиллы.

Читать далее

Поиск работы в IT сломан. Я устал это терпеть и написал код, который играет против правил

Время на прочтение2 мин
Количество просмотров4.7K

Привет, Хабр.

Давайте по-честному. Искать работу в IT - это боль. Это не похоже на то, что нам обещали: интеллектуальные задачи, интересные проекты, уважение. Вместо этого мы получили бесконечный скроллинг hh.ru, вымученные сопроводительные письма и звенящую тишину в ответ.

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

Читать далее

Написал приложение с помощью GPT-5 и вот что получилось

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров17K

Периодически почитываю местные статьи про использование LLM в разработке, в комментариях обычно возникают дискуссии относительно эффективности такого подхода. Как я заметил, как правило и статьи, и уж тем более комментарии ограничены общими рассуждениями без конкретики, поэтому решил на собственном примере понять — можно ли с нуля и без опыта написать мобильное приложение используя LLM?

Читать далее

Flutter-дайджест сентября

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров1.6K

Привет, друзья! 🌐

Сентябрь оказался по-настоящему горячим месяцем для Flutter-разработчиков — громкие релизы, свежие статьи на Хабре, видеоразборы с YouTube и целая россыпь полезных пакетов. На нашем канале FlutterPulse мы собрали всё самое интересное в одном месте, чтобы вы ничего не пропустили.

Читать далее

Полный гайд по golden-тестам во Flutter: зачем нужны и как настроить

Время на прочтение30 мин
Количество просмотров1.3K

При создании интерфейса важно проверить, как он реально выглядит. Часто это проверяют все участники процесса — от разработчиков до менеджеров. И для автоматизации и упрощения процесса визуального тестирования приложения есть специальный инструмент — golden‑тесты. Это методология тестирования, в которой текущий UI сравнивается с предварительно сгенерированным «золотым» эталоном. Если вы уже слышали про скриншот‑тесты — это примерно то же самое, но есть нюансы.

Меня зовут Даниил Липаткин, я тимлид в команде разработки курьерского приложения Яндекс Доставки. В этой статье:

— Мы познакомимся с методологией, рассмотрим её преимущества и недостатки, а также когда её стоит и не стоит применять.

— Напишем базовый Golden‑тест на примере стандартных инструментов библиотеки flutter_test.

— Рассмотрим пакет alchemist, который решает проблему платформозависимости flutter_test.

— Получим прикладные рекомендации по применению тестов и настройке IDE и CI.

Читать далее

Как поддержать Flutter в своей Библиотеке. Опыт VK ID SDK

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров1.1K

Привет! Меня зовут Даниил, я работаю в команде SDK в VK. Одно из направлений, которым занимается наша команда, — разработка SDK для авторизации через сервисы экосистемы VK. Он состоит из нескольких компонентов: авторизации, логина в один клик, шторки для входа с более удобным интерфейсом и поддержкой Mail и OK как провайдеров авторизации. 

Мы давно задумывались о поддержке Flutter, поскольку это быстроразвивающаяся платформа, которой уже пользуется много клиентов. Было видно, что поддержка Flutter нужна клиентам, даже на фрилансовых биржах публиковали заказы на поддержку VK ID. Логичным поступком стало сделать официальное решение от VK, чтобы клиентам не приходилось делать одинаковую работу. В этой статье поделюсь опытом поддержки Flutter в нашем SDK. Статья будет полезна любому разработчику, который хочет добавить поддержку Flutter в свою библиотеку. Материал рассчитан на разработчиков, которые ничего не знают о Flutter и будут разбираться с ним с нуля. Приведены примеры кода только под Android, поскольку под iOS всё делается аналогично.

Читать далее

Как создать собственный RenderObject

Уровень сложностиСредний
Время на прочтение23 мин
Количество просмотров2.1K

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

Меня зовут Александр, я Flutter-разработчик в Surf, и сегодня мы сделаем ещё один небольшой шаг к этим крутейшим возможностям — мы научимся создавать собственные RenderObject. 

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

Читать дальше

И ещё немного про то, что const в dart надо ставить где попало

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров889

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

Читать далее

Release — CherryPick 3.x

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров870

🚀 CherryPick 3.x уже доступен!
Быстрое, безопасное и удобное управление зависимостями в Dart и Flutter: O(1) разрешение зависимостей, защита от циклов, автоматическая очистка ресурсов и поддержка декларативного DI.
📦 Попробовать на pub.dev

Читать далее

Как сделать GitLab CI/CD вашим лучшим другом для сборки и доставки Flutter приложений. Часть 2

Уровень сложностиСредний
Время на прочтение22 мин
Количество просмотров1.9K

Flutter & GitLab CI/CD. Сборка и подписание мобильных приложений

Привет! Меня зовут Данил Абдрафиков, я мобильный разработчик в компании TAGES. Эта статья является продолжением первой части руководства по настройке GitLab CI/CD для Flutter приложений, в котором мы подробно разобрали настройку физической машины и подготовили GitLab Runner для работы. Теперь, когда инфраструктура готова, перейдем к самому интересному – автоматизации сборки и подписания мобильных приложений.

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

Читать далее

Как мы добились оценки приложения в 5 звезд за 2 часа

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров1.1K

Всем салют, на связи мобильный Flutter разработчик из Comrades Dev.

У нас в приложении была вечная проблема - люди пользуются, всё окей, но отзывов почти нет. В сторе висела небольшая цифра в 30 оценок и рейтинг 4.9. Вроде неплохо, но не то, чтобы "вау". Также отзывы которые мы собирали в соц сетях, а также при опросе знакомых кто им пользуется, были только положительные. Решили попробовать маленький эксперимент, чтобы повысить количество оценок и он неожиданно выстрелил.

Читать далее

Flutter дайджест — Лето 2025 (июль + август)

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров1.3K

Привет, друзья! ☀️ Лето подходит к концу, а значит самое время подвести итоги и вспомнить, что интересного произошло во Flutter-мире за два месяца.

Впереди осень 🍂 — и мы готовим ещё больше новостей, релизов и туториалов. Ну а пока наслаждайтесь нашим летним дайджестом.

А ещё — поздравляем студентов и школьников с Днём знаний! 🎓 Пусть учёба будет лёгкой, а знания по Flutter и Dart только умножаются. Канал FlutterPulse будет развиваться и расти вместе с вами 🚀

Читать далее

Ближайшие события

Выход iOS 26. Почему нативная разработка — это преимущество и необходимость

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров3.5K

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

Читать далее

Flutter + нативные iOS виджеты: любовь с первого Method Channel

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров1.7K

Как создать нативные iOS виджеты для Flutter приложения: Widget Extension, Method Channel для обмена данными, Timeline Provider для обновлений и SwiftUI верстка.

Пошаговый гайд с примерами кода на русском языке. Рассматриваем настройку App Groups, работу с UserDefaults и стратегии обновления виджетов.

Без лишних библиотек, только нативные возможности iOS и стандартные механизмы Flutter.

Читать далее

Clean Arch + Cubit + Reactor

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров1.3K

Clean + Cubit + Reactor

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

Задача — как синхронизировать несколько независимых Cubit‑ов, работающих с одними и теми же данными, имеющих разную логику и при этом не связывать их напрямую и не пробрасывать события через UI.

Читать далее

Flutter 3.35 — Что нового во Flutter?

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров5K

Добро пожаловать в ежеквартальный релиз Flutter 3.35! Это обновление призвано повысить вашу продуктивность и включает в себя стабильную версию горячей перезагрузки с сохранением состояния в веб-версии и экспериментальный запуск предпросмотра виджетов! Благодаря усилиям нашего сообщества, Flutter 3.35 включает в себя 1108 коммитов от 168 уникальных участников, 39 из которых присоединились к нам впервые. Давайте узнаем, что нового!

Читать далее

Flutter: Исчерпывающее руководство по высокопроизводительному рендерингу Canvas’а — Часть 1

Время на прочтение25 мин
Количество просмотров2.4K

Когда дело доходит до создания сложных и высокопроизводительных приложений во Flutter, работа с Canvas может стать настоящим вызовом. В этой статье мы погружаемся в тонкости рендеринга динамичных сцен, от оптимизации GPU и пакетирования команд до продвинутых техник работы с пространственными данными. Мы рассмотрим методы, которые позволят вам создавать плавные и визуально насыщенные интерфейсы, даже когда сцены становятся всё сложнее. Обсудим, как правильно выбрать стратегию рендеринга, оптимизировать отрисовку и внедрить систему камеры для масштабируемых приложений.

Если вы стремитесь улучшить производительность вашего Flutter-приложения, эта статья поможет вам освоить ключевые техники и подходы.

Читать далее

Базовый Dart (Часть №1)

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров2.6K

Итак, йоу, юзеры!

Я Hilrein, 18-летний разработчик мобильных и веб-приложений. В этой статье я расскажу вам про базовый Dart - язык программирования, лежащий в основе Flutter. Он отлично подходит как для новичков, так и для тех, кто хочет перейти в кроссплатформенную мобильную разработку.

Эта статья рассчитана на начинающих и охватывает всё, что нужно знать до перехода к объектно-ориентированному программированию (ООП).

Читать далее

Опенсорсим yx_state — свой State Management для Flutter

Время на прочтение14 мин
Количество просмотров4.1K

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

Сегодня мы релизим в опенсорс ещё один state management для Flutter — ровно так же, как чуть меньше года назад мы выпустили yet another DI. Неужели снова ничего не подошло из готового? Да, снова не подошло.

В этой статье я расскажу, почему у нас снова зачесались руки сделать собственную библиотеку: как мы пришли к созданию собственного state management и чем он отличается от Riverpod, BLoC или Redux, какие компромиссы пришлось искать, чтобы совместить несовместимое.

Читать далее
1
23 ...