Как стать автором
Поиск
Написать публикацию
Обновить
12.13

Dart *

Язык программирования, созданный Google

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

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

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

Flutter & GitLab CI/CD. Подготовка и настройка физической машины

В мире мобильной разработки, где скорость и стабильность доставки приложений определяют успех, выбор инструментов для автоматизации становится особенно важным. Работая мобильным разработчиком в TAGES более пяти лет, я убедился, что использование self‑hosted решений дает значительные преимущества в гибкости, надежности и контроле над процессами. Одним из таких мощных инструментов является GitLab — платформа, которая позволяет не только управлять кодом, но и настраивать полноценные CI/CD‑процессы.

Эта статья станет первым шагом на пути к полной автоматизации сборки и доставки Flutter‑приложений. Мы разберем, как превратить вашу физическую машину в надежный инструмент для автоматизации. В конце статьи у вас будет готовая машина, которая сможет запускать и обрабатывать задачи из GitLab.

Читать далее

Dart / Flutter — применяя zero / empty объекты ко всему

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

Больше техническая заметка, чем статья, поэтому постараюсь изложить мысли как можно кратче.

Приходя из JS/TS мира, когда я впервые написал на Dart, самой прекрасной вещью, помимо многих было использование функций isEmpty или isNotEmpty для String, List, Map, и так далее. Это было невероятно просто и прекрасно не писать каждый раз  .length == 0.

Также, очень полезным паттерном были empty/zero значения как Duration.zero, Offset.zero, и другие.

Спустя время, я нашел привычку использовать похожий принцип для работы с различными случаями, а также пришел к мысли - что если мы используем такие значения для большей части объектов, избавляясь от null (не для всех случаев, но тем не менее)? Немного поискав, нашел похожий паттерн в Go и других языках, и продолжил думать.

Читать далее

Реализация простого SSE клиента на Dart

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

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

Мы рассматривали два подхода: WebSocket и Server-Sent Events (SSE). Оба варианта соответствовали нашим требованиям, но в итоге мы остановились на SSE — из-за его простоты реализации и использования стандартного HTTP-протокола.

Читать далее

Flutter дайджест – Март 2025

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

Привет, Flutter-разработчики! 👋 В этом выпуске вас ждут горячие новости, свежие пакеты и интересные видео.

На канале FlutterPulse ежедневно выходят новые обновления пакетов, полезные статьи и эксклюзивный контент! Подписывайтесь, чтобы не пропустить самое важное.

Читать далее

Решение задач распознавания на Flutter

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

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

Читать далее

FlutterPulse: главные события недели 27.02-05.03.2025

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

Привет, друзья! Я автор телеграм-канал FlutterPulse.

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

Читать далее

Синхронизируем скроллы в Sliver-списках

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

Всем привет, на связи Иван, тимлид и ведущий Flutter-разработчик Surf.
Сегодня потрогаем тему синхронизации двух списков при скролле и раскроем важные моменты при её реализации.

Спойлер: мы попробовали разные варианты решения и нашли оптимальный.

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

FlutterPulse: главные события недели 20.02-26.02.2025

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

Привет, друзья! Я автор телеграм-канал FlutterPulse.

Хотел сделать небольшую подборку новостей про Flutter, которые, как мне показалось, были самыми интересными за эту неделю

Читать далее

Такие разные Slivers. Часть 5: аналоги обычных виджетов

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

Мы подошли к заключительной части нашего цикла о сливер-виджетах во Flutter. За прошедшие статьи мы разобрали множество различных типов сливеров, от списков и сеток до гибких решений для управления размером и поведением элементов. В этой финальной статье мы познакомимся со сливер-виджетами, которые являются аналогами обычных (box-based) виджетов, выполняя схожие функции, но для работы в прокручиваемых структурах. Эти элементы расширяют возможности управления видимостью, анимациями и декорациями, предоставляя дополнительную гибкость при создании сложных интерфейсов.

Читать далее

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

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

Погрузитесь в Flutter 3.29! Этот релиз улучшает разработку и повышает производительность, с обновлениями Impeller, Cupertino, DevTools и других. Flutter 3.29, в котором приняли участие 104 уникальных автора, демонстрирует преданность сообщества. Давайте рассмотрим, что нового!

Читать далее

FlutterPulse: главные события недели 13.02-19.02.2025

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

Привет, друзья! Я автор телеграм-канал FlutterPulse.

На этой неделе новостей было немного, но есть несколько интересных статей и обновлений!

Читать далее

Такие разные Slivers. Часть 4: гибкое управление элементами

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

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

Читать далее

Аналитика мобильных приложений на Flutter. Часть 2. Подключение Firebase Analytics

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

В первой части мы рассмотрели подключение решения Yandex AppMetrica. В этой части мы рассмотрим подключение решения от Google - Firebase.

Читать далее

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

Flutter: Создание расширения «Получение ссылок для онлайн-кинотеатров» для Chrome

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

Привет, я автора телеграм-канала FlutterPulse, хотел поделиться с пользователями хабра расширением для Google Chrome, а также способом его создания.

Расширение создано для получения ссылок для программы yt-dlp для последующего скачивания файлов локально. Пока поддерживается только сайт телеканала Пятница friday.ru

Для кого данная статья: Люди, которые не имеют отношения к программированию, но хотят скачать файл локально и самостоятельно

Люди, которые хотят самостоятельно написать расширение для браузера на языке Flutter

Читать далее

Склеиваем Flutter и Live Activities: Часть 1 – Android

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

Привет хабр!

Меня зовут Липатов Богдан, я Middle Flutter-разработчик, автор блога и статей на своем сайте, где мои материалы и инсайты публикуются в первую очередь.

Замечали ли вы удобные уведомления, которые показывают всю важную информацию прямо на экране блокировки? Например, через сколько приедет такси, где сейчас курьер с заказом или сколько времени осталось до завершения задачи. Да? Я тоже! В этой статье я покажу и расскажу как создать такое же при помощи наших рук и Flutter.

Читать далее

«Основы Dart: Community edition» 1-е издание

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

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

Вот и прошел год с момента выхода второго издания электронной версии «Основы Dart» и его анонса на Хабре. За это время книга успела разжиться печатной версией (издательство «Питер»), парочкой дополнительных глав и сквозным проектом. Меня много раз спрашивали по поводу того, буду ли оставлять второе издание в открытом доступе, обновлять его, если буду обновлять, то как и т. д. Некоторые даже шептали сладостные речи только о платном распространении книги. Поэтому, считаю, что настала пора поставить все точки над «Ё».

Читать далее

Новый DI фреймворк для DART и Flutter — sputnik_di

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

Новый DI-фреймворк для Flutter-проектов без бойлерплейта и головной боли. Два пакета: sputnik_di для dart и flutter_sputnik_di для flutter. Это перевернет разработку на dart.

Читать далее

Такие разные Slivers. Часть 3: работа с пространством

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

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

Читать далее

Новости о макросах и сериализации данных в Dart

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

За последние пару лет мы вложили немало времени и ресурсов на прототипирование макросов, и мы приняли трудное решение прекратить над ними работу.

Читать далее

Такие разные Slivers. Часть 2: базовые классы и делегаты

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

Всем привет! Продолжаем серию статей о сливерах, в первой части были рассмотрены сливеры-списки: различные вариации SliverList и SliverGrid. В этом материале погрузимся чуть глубже и сосредоточимся на базовых классах и делегатах, которые определяют поведение и структуру сливеров-списков.

Читать далее