Обновить
23.96

Flutter *

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

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

Когда виджетов мало: создаём свой RenderObject во Flutter

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

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

Многие во Flutter привыкли собирать интерфейс из виджетов, не задумываясь, как они вообще устроены. Действительно, стандартных виджетов хватает почти на всё. Почти. Иногда возникает задача, где готовых решений нет или их производительности недостаточно. В такие моменты хочется залезть в движок Flutter и написать что-то своё на уровне рендеринга. Звучит немного страшненько, но я посмотрим, как сделать собственный RenderObject (конкретно RenderBox) с нуля.

Читать далее

Новости

Всё, что нужно знать о публикации в Google Play

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели9.4K

Недавно я решил опубликовать приложение в Google Play, думая, что это не так сложно. Под эту задачу написал небольшое приложение-счетчик и стал погружаться во все тонкости процесса публикации. Почти сразу стало понятно, почему многие называют это кругами ада.

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

Читать далее

Написать приложение без опыта. Часть 1. Вводная

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели5.8K

Отпуск, целых две недели, без программирования.
К вечеру первого дня уже не знал чем себя занять. Работать мне запретили.. гады.
Как ещё может отдыхать программист? Делать новый pet-project.

Надеюсь на картинке не я...

Читать далее

State-менеджмент «из коробки» во Flutter: эффективная альтернатива BLoC и Riverpod

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели7.1K

Управление состоянием — один из ключевых аспектов разработки приложений на Flutter. Часто для этой задачи выбирают тяжелые и многофункциональные решения вроде BLoC, Riverpod или GetX. Однако во многих проектах подобная инфраструктура избыточна: не каждое приложение требует сложной архитектуры и дополнительного уровня абстракции.

В данной статье мы расскажем про встроенные инструменты Flutter, которые позволяют реализовать надежный и предсказуемый state-менеджмент без сторонних фреймворков. Вы узнаете, как использовать ValueNotifier и Provider для удобной работы с состоянием и когда такой подход является оптимальным.

Читать далее

Ноябрьский Flutter-дайджест

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели7.2K

Привет, друзья! 👋
Ноябрь выдался ультра-насыщенным, и если вы пропустили хоть что-то — сейчас наверстаем!

Читать далее

Работа с RTSP-плеером во Flutter: выбор библиотеки и снижение задержки

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

Работа с RTSP-потоками во Flutter остаётся задачей, которую нельзя решить штатными средствами фреймворка. Базовый плагин video_player не поддерживает RTSP, из-за чего прямое воспроизведение видео с IP-камер и систем наблюдения недоступно без сторонних решений. Для корректной работы в таких сценариях требуется специализированный плеер, обеспечивающий стабильное отображение потока и минимально возможную задержку.

В данной статье мы рассмотрим основные библиотеки для работы с RTSP во Flutter — flutter_vlc_player, fijkplayer и media_kit, сравним их особенности, достоинства и влияние на задержку воспроизведения. Отдельное внимание уделим настройкам, которые позволяют минимизировать latency, прежде всего в решениях на базе FFmpeg. Также разберём доступные параметры оптимизации в flutter_vlc_player. 

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

Читать далее

Чем вайб-инженер отличается от вайб-кодера

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

Привет, Хабр! Это Юра Петров, Tech Lead Friflex. В этой статье хочу разграничить два понятия: вайб-инжиниринг и вайб-кодинг. Они звучат очень похоже, но разница между ними, на самом деле, колоссальная. Попробую объяснить ее простым языком.

Читать далее

Как я написал свою соцсеть на Flutter Web: от Firebase до трёх кругов ада с Google Sign-In

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели8.3K

История создания веб-приложения Syncory — платформы для поиска единомышленников по нишевым интересам. Подробный разбор архитектуры на Flutter Web + Firebase, реализация системы приватных комментариев и ролевой модели, а также пошаговое решение всех проблем с Google Sign-In на Flutter Web. Полный открытый исходный код и живое демо. Для разработчиков, которые хотят быстро запустить serverless веб-приложение без боли с инфраструктурой.

Читать далее

Два года с Duit — история взросления фреймворка

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели7.6K

Когда-то Duit был всего лишь экспериментом — попыткой упаковать интерфейс Flutter в JSON и заставить его ожить. Сегодня это уже не технический трюк, а осмысленный подход к тому, как можно описывать UI данными, а не кодом, создавая управляемые интерфейсы нового поколения. Новый релиз — история взросления и поиска архитектурного баланса.

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

Приглашаю тебя прочитать статью и узнать, как Duit v4 меняет представление о том, каким может быть BDUI-фреймворк.

Читать далее

Сокращённая запись через точку начиная с Dart 3.10 и Flutter 3.38

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели8.9K

Синтаксис сокращённой записи через точку — .foo — позволяет писать более лаконичный Dart-код, опуская имя типа там, где компилятор может вывести его из контекста. Это аккуратная альтернатива полному варианту вида ContextType.foo при обращении к значениям перечислений (enum), статическим членам и конструкторам.

Теперь язык стал еще более лаконичным.

Читать далее

Dart 3.10 — что нового в Dart?

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели9.6K

Сегодня мы рады объявить о выпуске Dart 3.10!

В этом выпуске мы продолжаем работать над улучшением базового опыта разработки. Новая функция сокращённых обозначений ( .) поможет вам писать более читабельный и менее многословный код. Мы также представляем мощную систему плагинов-анализаторов , которая позволяет создавать собственные правила статического анализа, интегрируемые непосредственно в вашу IDE. И мы рады сообщить, что хуки сборки теперь стабильны!

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

Продолжайте читать, чтобы узнать больше об этих и других улучшениях в Dart 3.10.

Читать далее

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

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели11K

Добро пожаловать в наш ежеквартальный релиз Flutter 3.38. Это обновление призвано повысить вашу продуктивность и улучшить взаимодействие с разработчиками благодаря сокращённым точкам и обновлениям для предварительных просмотров виджетов. Благодаря нашему сообществу этот релиз включает в себя в общей сложности 825 коммитов от 145 уникальных участников, 37 из которых — новички. Давайте разберёмся, что же нового в этом релизе.

Читать далее

Как дизайнер своё приложение навайбкодил

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

История о том, как одинокий UX/UI-дизайнер сделал Flutter приложение, прошёл огонь, воду, Drag’n Drop — и вышел в релиз.

Читать далее

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

Flutter — везде (и даже в чайнике). Часть 1

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели8K

Привет, Хабр! Меня зовут Юра Петров, я руководитель отдела разработки в компании Friflex и автор канала «Мобильный разработчик». Возможно, мы встречались этой осенью на CrossConf, где я выступал с докладом и мы с ребятами презентовали нашу книгу о Flutter. В этой статье хочу продолжить рассказывать о фреймворке: какие платформы он поддерживает, в чем его преимущества (и как сделать прошивку своего чайника).

Читать далее

Распознаём позу человека во Flutter Web с MediaPipe

Уровень сложностиСредний
Время на прочтение20 мин
Охват и читатели8.6K

Учебник по подключению MediaPipe в качестве веб-плагина Flutter, чтобы распознавать положение тела по видео с вебкамеры. Учимся писать плагины, подтягивать произвольный JavaScript, вызывать его и рисовать поверх видео с камеры.

Читать далее

Как на Хабре каждый раз хоронят Flutter

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели11K

Представьте, что вы Flutter-разработчик. Вы заходите на Хабр. В комменты статьи про Flutter. И там опять: «Flutter уже не развивается давно, умирает, нет 3д», «Dart — зачем нужен этот новый странный язык», «Google закроет проект, там в Индии всех разрабов уволили, они уже на кладбище». И это каждый. Божий. День.

Вот что интересно: пока на Хабре хоронят Flutter, 30% всех новых iOS-приложений пишутся на нём. BMW делает на Flutter приложение для своих машин. Google Pay работает на Flutter. Credit Agricole Bank переписал на него банковский апп на миллион пользователей — и поднялся с 10-го на 3-е место в рейтинге. Но на Хабре Flutter, конечно, мёртв. Как и в прошлом году. И позапрошлом.

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

Читать далее

Как я сделал аудиогид с ИИ без опыта мобильной разработки

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели5.7K

Это рассказ о том, как я в свободное время реализовал свою старую идею, и как мне в этом помог ИИ. Я решил сделать приложение, которое превращает Википедию в говорящий аудиогид и полностью написал его с помощью ИИ, хотя никогда не занимался мобильной разработкой. ИИ использовался для создания аудио рассказов и для написания самого приложения.

Читать далее

Собираем и публикуем Flutter-апп в AppStore

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели8.2K

Автоматизация сборки Flutter-приложения для iOS с использованием macOS

1 часть: Нано-ЦОД на Mac M4 mini

Привет! Наш Mac Mini M4 прошел путь от «нано-ЦОД» до полноценной сборочной фабрики!

В новой статье — без лишней воды — рассказываем, как мы настроили полный цикл: от кода до автоматической публикации в AppStore.

Что внутри:

Готовые конфиги Fastlane
Настройка GitLab CI/CD
Работа с секретами

И главное: почему 9 минут сборки лучше, чем 7 (да, мы ленимся оптимизировать кеш! 😅)

Читать далее

Нано-ЦОД на Mac M4 mini

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

Нано‑ЦОД на Mac M4 mini

Считали, что выгоднее: арендовать Mac для сборок или купить свой? Оказалось, что собственный Mac Mini M4 окупается всего за год и экономит 60к ежегодно!

В этом кейсе — честные цифры, настройка с ИБП для автономности, борьба с шифрованием диска и headless-режимом через плату видеозахвата, а также развертывание GitLab Runner, OrbStack и Apache Guacamole.

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

Читать далее

Интернет радио, продолжение

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели20K

Всем привет! Приемник интернет-радио, собранный в предыдущей статье Интернет-радио на базе ESP32 и ЦАП UDA1334A , имел некоторые недостатки. А именно: были частые потери сигнала wifi, медленная и глючная работа в целом, случайные перезагрузки. Короче, он перестал меня устраивать и я решил продолжить тему проигрывателя интернет радио, но на базе другой аппаратной платформы.

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