Рубрика «flutter» - 2

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

Есть Bloc, есть Dio, есть go_router, есть get_it. Где-то рядом лежат репозитории, модели, пара экранов и слайд со стрелками. На демо это звучит убедительно: “вот UI-слой, вот data-слой, вот state management”. Кажется, что если взять правильный набор пакетов, дальше система почти сама соберётся.

У меня так не вышло.

Читать полностью »

Вступление: зачем вообще задумываться об архитектуре

Начиная писать Flutter-приложение, для стейт-менеджмента часто хватает простого setState или решения по типу BLoC/Cubit без излишеств. Но с течением жизни проекта ваши блоки могут начать превращаться в god objects. Внутри хендлеров могут находиться и запросы в сервисы, и валидация, и эмиттеры состояния, а для крупной страницы точно одним ивентом не обойдешься. В таких условиях разработка сильно затрудняется, становится сложно поддерживать и масштабировать проект, снижается тестируемость.

Читать полностью »

Привет. Меня зовут Никита.

Наверняка многим знакома ситуация: кто‑то из друзей или родственников просит «почистить комп», «передалать PNG в JPG» или «раскидать свалку файлов в загрузках».

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

Так появился мое приложение SmartLauncher

Читать полностью »

Когда смотришь на существующие self-hosted мессенджеры, часто видишь одно из двух: либо сложную инфраструктуру, которую непросто развернуть (Matrix/Synapse), либо минимализм без шифрования. ONYX — это попытка найти середину: простой в развёртывании сервер, полноценное E2E-шифрование и режим работы в локальной сети без интернета вообще.

Архитектура проекта

Компонент

Технология

Клиент

Flutter (Android, Windows, macOS, Linux)

Сервер

Node.js — Express + express-ws + ws

База данных

MariaDB + Redis (сессии, кэш)

Читать полностью »

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

Проблема

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

  1. Агент изучает код

  2. Пишет тест

  3. Запускает flutter test

  4. Тест не проходит

  5. Агент пытается понять в чем дело, делает фикс

  6. Переходит к пункту 3

Читать полностью »

pdf_kit_editor Flutter Package

pdf_kit_editor Flutter Package

Привет!

Если вы хоть раз писали приложение для ритейла, склада или кафе на Flutter, то наверняка сталкивались с «тихим ужасом» — версткой документов для печати. Пакет pdfЧитать полностью »

В конце ноября 2025-го я сел писать строительный калькулятор для RuStore. Хотел собрать всё, что нужно при ремонте, в одном приложении - от расчёта обоев до ИИ-ассистента, который подскажет, где ты накосячил с расходом штукатурки. Через 2,5 месяца «Мастерок» вышел в продакшн: 45+ калькуляторов, 269 коммитов, 259 тысяч строк кода, рейтинг 4.9 в RuStore.

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

Читать полностью »

В данной статье я опишу как можно перенести камеру так, чтобы поведение было идентичным с такими картографическими приложениями как 2ГИС. Приложения Яндекс.Карты и 2ГИС используют чуть упрощенный подход, здесь он тоже описан. Но об этом позже.

Pre-requirements

Flutter 3.35.6, Dart 3.9.2 иdgis_mobile_sdk_map: ^13.0.0

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

Тем не менее готовый код можно будет посмотреть тут.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js