TGViewer
DartWay Ru | Flutter & Fullstack Dart DartWay Ru | Flutter & Fullstack Dart @dartway_dev_ru · 596 subscribers
Post #141 360
Несколько месяцев я писал здесь про принципы. Пора показать целиком то, о чём речь: на этой неделе DartWay выходит на pub.dev, и я буду выкладывать его по пакету в день, с разбором каждого.

Сегодня — общая картина.

## Суть

Flutter-разработчик умеет делать фичи и экраны. Дальше начинается стена: сервер, база, миграции, эндпоинты, авторизация, права, реалтайм. Обычный ответ индустрии — «возьми Firebase/Supabase»: удобно, но чужая база, чужие модели, чужой язык и потолок ровно там, где начинается настоящая бизнес-логика.

DartWay отвечает иначе.

Единый декларативный слой данных от базы до виджета. На сервере фича описывается конфигом:

кто имеет право читать (accessFilter), кто — писать (allowSave), что считается валидным (validateSave), что должно случиться в той же транзакции (beforeSaveTransaction). Всё. Эндпоинтов не существует.

На клиенте эта же модель забирается одной строкой:

ref.watchModelList<Booking>() — типизированный живой список. Реалтайм-синхронизация, пагинация, фильтры, скелетные состояния загрузки — из коробки. Кто-то записал модель на сервере — виджет перестроился. Никаких сокетов руками, никаких инвалидаций кэша.

Фича целиком — от таблицы в базе до живого экрана — это примерно 40 строк конфига и виджет.

Формула: Serverpod даёт тебе бэкенд. DartWay убирает необходимость его писать.

## Структура: девять пакетов, три круга

Ядро (четыре пакета, версионируются вместе).
Серверная половина — модуль Serverpod: generic CRUD для любой модели с реалтайм-подписками, декларативные конфиги доступа и валидации, беспарольная авторизация по телефону, файловое хранилище (S3/MinIO), алерты об ошибках. Клиентская половина — типизированный слой данных поверх этого: watchModelList, сессии, переживающие перезапуск, обработка ошибок, которая отличает сетевой сбой от настоящей поломки.

Тулбокс приложения.
Скелет, который есть у каждого приложения и который каждый раз пишут заново: запуск и сплэш, контракт отрисовки асинхронных состояний, защищённые действия (двойной тап не создаёт две записи, ошибка сама превращается в отчёт с контекстом), пайплайн уведомлений.

Тут же — принцип, за который я держусь: фреймворк не поставляет дизайн-систему. Никаких DwButton и DwText. Дизайн-система — единственное, чем любой серьёзный проект в итоге владеет сам, и отдавать её зависимостью значит начать вечный спор про радиус скругления кнопки. UI-кит приезжает в твоё приложение исходником — и дальше он твой.

Обвязка.
CLI (dartway create — проект, который запускается, за считанные секунды), линты и чекер, которые машинно проверяют конвенции, опциональная интеграция с Telegram Mini Apps, мост в DartWay Studio.

## Три принципа, на которых всё держится

Фреймворк не владеет моделями приложения. Пользователь — это твой UserProfile, в твоей базе, с твоими полями и ролями. Не «расширь наш UserInfo», не форк модуля. Это то, обо что разбиваются готовые батарейки: чужую модель не расширить, а форк тащится через каждое обновление.

Secure by default. Модель, для которой не описан доступ, не отдаётся никому. Не «открыто, пока не закрыл» — а «закрыто, пока не открыл». Для generic CRUD это единственный честный дефолт: забыть закрыть можно, забыть открыть — нельзя.

Архитектура, которую проверяет машина. Конвенции + линты + чекер + скиллы для ИИ-агентов. Это не украшение: агент, пишущий код в проекте с машинно-проверяемыми правилами, не разваливает его на третьей фиче. Ради этого всё и затевалось.

## Дальше

С завтрашнего дня выкладываю пакеты на pub.dev и разбираю каждый: как устроен, зачем такой, где границы. Первым — серверное ядро: фича без единого написанного эндпоинта.

А в субботу, 18 июля, в 14:00 МСК соберу на этом всём работающее приложение вживую — за 90 минут, с пустой папки: сервер, база, реалтайм, авторизация. Бесплатно, запись будет.
  • 🔥 5
  • ❤ 1
  • 🤡 1
More from @dartway_dev_ru
  1. Sep 28, 2026Новости DartWay Я принял решение полностью отказаться от Serverpod, чтобы снять все ограни…
  2. Sep 27, 2026Dart MCP: что реально даёт ИИ-агенту MCP-сервер встроен в Dart SDK с июля 2025 года. Подкл…
  3. Sep 25, 2026Serverpod 4: обзор с комментариями Вышел Serverpod 4, а вместе с ним App Studio. Сам я с S…
  4. Sep 4, 2026Flutter 3.47: что сломается и что делать до ноября Записал разбор — первый выпуск новой се…
  5. Sep 3, 2026Post #161
  6. Sep 3, 2026Релиз DartWay, 3 сентября За 10 дней: 47 пул-реквестов, закрыто 39 issue, 7 500 строк кода…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →