🗂️ Реструктуризация vault: логичная организация папок

Изменения:
- Интеграция СУП/ → Работа/Интеграция СУП/ (рабочие заметки вместе)
- Релизы/ → Работа/Релизы/ (рабочие заметки вместе)
- Другое/Собеседование .Net → Работа/ (рабочая тема)
- Другое/Своя игра → Личное/ (хобби)
- Smart home/ → Квартира/ (всё про квартиру в одном месте)
- Flutter/, Go/ → Dev/Flutter/, Dev/Go/ (учебные роадмапы)
- Dev/Pulse/competitors-analysis → Projects/Pulse/ (проект Pulse в одной папке)
- Twilio.md → Dev/ (техническая заметка)
- Tokens.md → Личное/Tokens (API keys).md
- Игры.md → Личное/Игры.md
- Удалены пустые папки: Другое/, Smart home/, Интеграция СУП/, Релизы/

Структура:
  Авто/        — автомобили
  Dev/         — разработка, изучение (Go, Flutter, репозитории)
  Квартира/    — квартира + умный дом
  Личное/      — личное, токены, игры, команды
  Мама/        — проекты для мамы
  Projects/    — Pulse App
  Работа/      — BPMSoft, интеграции, релизы
  Япония/      — путешествие
  saved-articles/ — сохранённые статьи
  voice-notes/ — голосовые заметки
This commit is contained in:
Cosmo
2026-03-26 08:52:13 +00:00
parent 5919c0123e
commit 0569bd5a0f
21 changed files with 0 additions and 0 deletions

543
Dev/Flutter/Roadmap.md Normal file
View File

@@ -0,0 +1,543 @@
---
title: "Flutter & Dart Roadmap"
date: 2026-03-26
tags:
- flutter
- dart
- mobile
- roadmap
- learning
description: "Подробный план изучения Flutter и Dart для опытного разработчика (C#, Go, JS)"
---
# 🚀 Flutter & Dart Roadmap
> **Цель:** Самостоятельно создавать мобильные приложения (iOS + Android)
> **Опыт:** C#, Go, JavaScript — базовые концепции ООП, async, типизация уже знакомы
> **Общая оценка:** ~120160 часов / 34 месяца при 810 ч/неделю
---
## 📋 Оглавление
1. [[#Этап 1 — Dart за 1 неделю|Dart за 1 неделю]]
2. [[#Этап 2 — Flutter основы|Flutter основы (2 недели)]]
3. [[#Этап 3 — Навигация и архитектура|Навигация и архитектура (1.5 недели)]]
4. [[#Этап 4 — State Management|State Management (2 недели)]]
5. [[#Этап 5 — Работа с данными|Работа с данными (2 недели)]]
6. [[#Этап 6 — UI мастерство|UI мастерство (1.5 недели)]]
7. [[#Этап 7 — Нативные возможности|Нативные возможности (1 неделя)]]
8. [[#Этап 8 — Тестирование и CI/CD|Тестирование и CI/CD (1 неделя)]]
9. [[#Этап 9 — Публикация|Публикация в Store (1 неделя)]]
10. [[#Этап 10 — Реальный проект|Реальный проект (46 недель)]]
11. [[#Ресурсы — Каталог|Каталог ресурсов]]
---
## Этап 1 — Dart за 1 неделю
**~812 часов** | С опытом в C# и JS пойдёт быстро
Dart — типизированный язык, похожий на гибрид C# и TypeScript. Основные отличия: null safety, mixins, extensions, Futures/Streams (аналог Task/Promise).
### Что изучить
- [ ] Синтаксис: переменные, типы, `final`/`const`, `late`
- [ ] Null safety (`?`, `!`, `??`, `?.`)
- [ ] Классы, наследование, mixins, abstract classes
- [ ] Extensions (привет, C# extension methods)
- [ ] Enums (enhanced enums с методами — Dart 3)
- [ ] Generics (знакомо из C#)
- [ ] Collections: `List`, `Map`, `Set` + spread operator
- [ ] `async`/`await`, `Future`, `Stream`
- [ ] Pattern matching и sealed classes (Dart 3) — аналог switch expressions в C#
- [ ] Records (аналог tuples/анонимных типов)
- [ ] Error handling: `try`/`catch`/`on`
### Ресурсы
- [ ] 📖 [Dart Language Tour](https://dart.dev/language) — **главный ресурс**, пробежать за 34 часа
- [ ] 📖 [Dart Codelabs](https://dart.dev/codelabs) — интерактивные упражнения
- [ ] 🎮 [DartPad](https://dartpad.dev/) — онлайн-песочница для экспериментов
- [ ] 📹 [Dart in 100 Seconds — Fireship](https://www.youtube.com/watch?v=NrO0CJCbYLA) — быстрый обзор
- [ ] 📖 [Effective Dart](https://dart.dev/effective-dart) — стайл-гайд и идиомы
### 🛠 Мини-проект
**CLI-утилита на Dart** — парсер JSON/CSV, конвертер валют через API, или простой todo-list в терминале. Цель: потрогать язык руками.
```bash
dart create my_cli_app
```
---
## Этап 2 — Flutter основы
**~1620 часов / 2 недели**
### Что изучить
- [ ] Установка Flutter SDK + настройка IDE (VS Code / Android Studio)
- [ ] Эмуляторы: Android (AVD) + iOS Simulator (если есть Mac)
- [ ] Структура проекта Flutter: `lib/`, `pubspec.yaml`, `assets/`
- [ ] **Widget tree** — всё является виджетом
- [ ] `StatelessWidget` vs `StatefulWidget` + `setState()`
- [ ] `BuildContext` и жизненный цикл виджетов
- [ ] Основные виджеты: `Text`, `Container`, `Column`, `Row`, `Stack`, `ListView`, `GridView`
- [ ] `Scaffold`, `AppBar`, `BottomNavigationBar`, `Drawer`
- [ ] Layout: `Expanded`, `Flexible`, `SizedBox`, `Padding`, `Align`
- [ ] Input: `TextField`, `Form`, `FormField`, валидация
- [ ] Кнопки: `ElevatedButton`, `TextButton`, `IconButton`, `FloatingActionButton`
- [ ] `Image`, `Icon`, работа с assets
- [ ] Material Design 3 и `ThemeData`
- [ ] **Hot Reload** — главная суперсила Flutter
### Ресурсы
- [ ] 📖 [Flutter Get Started](https://docs.flutter.dev/get-started) — офиц. туториал установки
- [ ] 📖 [Flutter Widget Catalog](https://docs.flutter.dev/ui/widgets) — каталог виджетов с примерами
- [ ] 📖 [Flutter Codelabs](https://docs.flutter.dev/codelabs) — пошаговые лабы от Google
- [ ] 📹 [Flutter Crash Course for Beginners — Traversy Media](https://www.youtube.com/watch?v=1ukSR1GRtMU) — 1 час, быстрый старт
- [ ] 📹 [Flutter Full Course — Mitch Koko](https://www.youtube.com/watch?v=TclK5gNM_PM) — от начала до продвинутого
- [ ] 📹 [Flutter Widget of the Week — Google](https://www.youtube.com/playlist?list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG) — короткие видео по виджетам
- [ ] 📖 [Flutter Layout Cheat Sheet](https://medium.com/flutter-community/flutter-layout-cheat-sheet-5363348d037e)
### 🛠 Пет-проект: Визитка / Портфолио
Простое приложение-визитка с несколькими экранами:
- [ ] Главный экран с аватаром, именем, описанием
- [ ] Страница с контактами (ссылки, email)
- [ ] Тёмная/светлая тема
---
## Этап 3 — Навигация и архитектура
**~1215 часов / 1.5 недели**
### Что изучить
- [ ] `Navigator` 1.0: `push`, `pop`, named routes
- [ ] `Navigator` 2.0 и декларативная навигация
- [ ] **go_router** — стандарт навигации в 2025+ (рекомендован Google)
- [ ] Deep links и параметры в маршрутах
- [ ] Вложенная навигация (Shell routes, tab navigation)
- [ ] Передача данных между экранами
- [ ] Структура проекта:
- Feature-first vs Layer-first
- Рекомендуемая: `lib/features/<name>/{data, domain, presentation}/`
- [ ] Dependency Injection: `get_it` + `injectable`
- [ ] Repository pattern (знакомо из C#)
### Ресурсы
- [ ] 📖 [go_router docs](https://pub.dev/packages/go_router) — офиц. документация
- [ ] 📖 [Flutter Navigation Guide](https://docs.flutter.dev/ui/navigation) — гайд от Google
- [ ] 📹 [go_router Tutorial — Andrea Bizzotto](https://codewithandrea.com/articles/flutter-navigation-gorouter-go-vs-push/) — подробный разбор
- [ ] 📖 [Flutter App Architecture — Andrea Bizzotto](https://codewithandrea.com/articles/flutter-app-architecture-riverpod-introduction/) — feature-first структура
- [ ] 📹 [Flutter Project Structure — Reso Coder](https://www.youtube.com/watch?v=KjE2IDphA_U)
### 🛠 Пет-проект: Мульти-экранное приложение
Приложение-справочник (рецепты / заметки / фильмы):
- [ ] Список элементов → детальный экран
- [ ] go_router с параметрами
- [ ] Bottom navigation с 3+ табами
- [ ] Поиск и фильтрация
---
## Этап 4 — State Management
**~1620 часов / 2 недели** | Самая важная тема
### Подходы (от простого к сложному)
- [ ] `setState` — для локального состояния
- [ ] `InheritedWidget` — как работает "магия" под капотом
- [ ] **Provider** — простой и понятный (хорош для старта)
- [ ] **Riverpod** ⭐ — эволюция Provider, **рекомендация 2025+**
- Compile-safe, testable, не зависит от BuildContext
- `ref.watch`, `ref.read`, `ref.listen`
- Providers: `Provider`, `StateProvider`, `NotifierProvider`, `AsyncNotifierProvider`, `FutureProvider`, `StreamProvider`
- [ ] **BLoC** — для больших enterprise-приложений
- Events → BLoC → States
- Знакомый паттерн если работал с Redux/MediatR
- [ ] Когда что использовать:
- Маленькое приложение → Riverpod
- Большое/командное → BLoC
- Прототип → setState + Provider
### Ресурсы
- [ ] 📖 [Flutter State Management Guide](https://docs.flutter.dev/data-and-backend/state-mgmt/intro) — офиц. обзор
- [ ] 📖 [Riverpod Documentation](https://riverpod.dev/) — **начни с этого**
- [ ] 📹 [Riverpod 2.0 — Complete Guide — Andrea Bizzotto](https://codewithandrea.com/articles/flutter-state-management-riverpod/) — лучший гайд
- [ ] 📹 [Flutter Riverpod Tutorial — Vandad Nahavandipoor](https://www.youtube.com/watch?v=vtGCteFYs4M)
- [ ] 📖 [BLoC Library](https://bloclibrary.dev/) — офиц. сайт с туториалами
- [ ] 📹 [BLoC Tutorial — Reso Coder](https://www.youtube.com/watch?v=THCkkQ-V1-8)
- [ ] 📖 [Provider Package](https://pub.dev/packages/provider) — документация
### 🛠 Пет-проект: Todo App (с архитектурой)
- [ ] CRUD задач с Riverpod
- [ ] Фильтры: все / активные / завершённые
- [ ] Persistence (SharedPreferences или Hive)
- [ ] Clean Architecture: Data → Domain → Presentation
- [ ] Unit-тесты для бизнес-логики
---
## Этап 5 — Работа с данными
**~1620 часов / 2 недели**
### HTTP и API
- [ ] Пакет `http` — базовые запросы
- [ ] **Dio** — продвинутый HTTP-клиент (interceptors, retry, cancel)
- [ ] Сериализация JSON: `json_serializable` + `build_runner`
- [ ] **Freezed** — генерация data-классов и union types
- [ ] Обработка ошибок сети: `Result` pattern, `Either`
- [ ] Retrofit (знакомо из .NET!) — генерация API-клиента
### Локальное хранение
- [ ] `SharedPreferences` — key-value (как LocalStorage)
- [ ] **Hive** — быстрая NoSQL база
- [ ] **Drift** (бывший Moor) — type-safe SQLite ORM
- [ ] `sqflite` — SQLite напрямую
- [ ] `flutter_secure_storage` — для токенов/паролей
### Firebase (бесплатный tier)
- [ ] Firebase Auth — аутентификация
- [ ] Cloud Firestore — NoSQL база
- [ ] Firebase Storage — файлы
- [ ] Firebase Messaging (FCM) — push-нотификации
- [ ] [FlutterFire](https://firebase.flutter.dev/) — офиц. плагины
### Ресурсы
- [ ] 📖 [Flutter Networking Guide](https://docs.flutter.dev/data-and-backend/networking)
- [ ] 📖 [Dio Package](https://pub.dev/packages/dio) — документация
- [ ] 📖 [Freezed Package](https://pub.dev/packages/freezed) — генерация моделей
- [ ] 📖 [FlutterFire Docs](https://firebase.flutter.dev/) — Firebase для Flutter
- [ ] 📹 [Flutter REST API Tutorial — Vandad](https://www.youtube.com/watch?v=CQuxU8JGJnQ)
- [ ] 📹 [Firebase Flutter Course — freeCodeCamp](https://www.youtube.com/watch?v=wUSkeTaBonA) — 5+ часов
- [ ] 📖 [Drift Documentation](https://drift.simonbinder.eu/docs/getting-started/)
### 🛠 Пет-проект: Погодное приложение
- [ ] Запрос к Open-Meteo или OpenWeatherMap API
- [ ] Модели через `freezed` + `json_serializable`
- [ ] Поиск города, текущая погода + прогноз на 5 дней
- [ ] Кэширование последнего запроса в Hive
- [ ] Pull-to-refresh
- [ ] Красивый UI с анимациями погоды
---
## Этап 6 — UI мастерство
**~1215 часов / 1.5 недели**
### Что изучить
- [ ] Animations: implicit (`AnimatedContainer`, `AnimatedOpacity`) и explicit (`AnimationController`, `Tween`)
- [ ] Hero animations (переходы между экранами)
- [ ] Custom Paint — рисование кастомных элементов
- [ ] `Sliver` виджеты: `CustomScrollView`, `SliverAppBar`, `SliverList`, `SliverGrid`
- [ ] Responsive design: `LayoutBuilder`, `MediaQuery`, `OrientationBuilder`
- [ ] Adaptive UI: Material (Android) + Cupertino (iOS)
- [ ] Custom widgets: composition vs inheritance
- [ ] Themes и дизайн-система (typography, color schemes, spacing)
- [ ] Пакеты для UI:
- `flutter_animate` — декларативные анимации
- `shimmer` — loading placeholders
- `cached_network_image` — кэширование картинок
- `flutter_svg` — SVG поддержка
### Ресурсы
- [ ] 📖 [Flutter Animations Guide](https://docs.flutter.dev/ui/animations)
- [ ] 📹 [Flutter Animations Course — Flutter Official](https://www.youtube.com/watch?v=IVTjpW3W33s)
- [ ] 📖 [Flutter Adaptive Design](https://docs.flutter.dev/ui/adaptive-responsive)
- [ ] 📹 [Sliver Widgets — Flutter](https://www.youtube.com/watch?v=Mz3kHQxBjGg)
- [ ] 📖 [Material 3 in Flutter](https://docs.flutter.dev/ui/design/material)
### 🛠 Пет-проект: Клон UI известного приложения
Выбери и воспроизведи UI (без бэкенда):
- [ ] Spotify / Netflix / Twitter — карточки, списки, анимации
- [ ] Кастомные анимации переходов
- [ ] Адаптивный дизайн под разные размеры экрана
- [ ] Тёмная и светлая темы
---
## Этап 7 — Нативные возможности
**~810 часов / 1 неделя**
### Что изучить
- [ ] Platform channels — вызов нативного кода (Swift/Kotlin)
- [ ] Камера: `camera`, `image_picker`
- [ ] Геолокация: `geolocator`, `geocoding`
- [ ] Карты: `google_maps_flutter` или `flutter_map` (OpenStreetMap)
- [ ] Push-уведомления: `firebase_messaging` + `flutter_local_notifications`
- [ ] Permissions: `permission_handler`
- [ ] Biometrics: `local_auth`
- [ ] Deep links и Universal links
- [ ] Sharing: `share_plus`
- [ ] URL launcher: `url_launcher`
### Ресурсы
- [ ] 📖 [Flutter Platform Integration](https://docs.flutter.dev/platform-integration/platform-channels)
- [ ] 📖 [pub.dev](https://pub.dev/) — поиск пакетов, проверяй likes и pub points
- [ ] 📹 [Google Maps in Flutter — Johannes Milke](https://www.youtube.com/watch?v=Zz5hMvgiWmY)
- [ ] 📖 [Flutter Camera Plugin](https://pub.dev/packages/camera)
### 🛠 Мини-проект: Приложение с картой
- [ ] Показать текущее местоположение на карте
- [ ] Добавление маркеров / POI
- [ ] Поиск мест
- [ ] Разрешения runtime
---
## Этап 8 — Тестирование и CI/CD
**~810 часов / 1 неделя**
### Что изучить
- [ ] **Unit tests** — тестирование бизнес-логики и репозиториев
- [ ] **Widget tests** — тестирование UI-компонентов
- [ ] **Integration tests** — E2E тестирование на устройстве/эмуляторе
- [ ] Mocking: `mocktail` или `mockito`
- [ ] Golden tests — скриншот-тесты UI
- [ ] Code coverage: `flutter test --coverage`
- [ ] CI/CD:
- GitHub Actions / Codemagic / Fastlane
- Автоматическая сборка APK/IPA
- Автоматическая публикация в stores
### Ресурсы
- [ ] 📖 [Flutter Testing Guide](https://docs.flutter.dev/testing) — офиц. документация
- [ ] 📹 [Flutter Testing Tutorial — Reso Coder](https://www.youtube.com/watch?v=RDY6UYh-4dg)
- [ ] 📖 [Codemagic CI/CD](https://docs.codemagic.io/flutter/getting-started/) — бесплатный tier для Flutter
- [ ] 📖 [Mocktail Package](https://pub.dev/packages/mocktail)
### 🛠 Практика
- [ ] Написать тесты для Todo App из Этапа 4
- [ ] Unit tests для API-слоя (mock HTTP)
- [ ] Widget tests для ключевых экранов
- [ ] Настроить CI pipeline (GitHub Actions)
---
## Этап 9 — Публикация
**~68 часов / 1 неделя**
### Google Play Store
- [ ] Создать аккаунт разработчика ($25 одноразово)
- [ ] Подписать APK/AAB (keystore)
- [ ] Скриншоты, описание, иконка
- [ ] Privacy Policy (можно сгенерировать)
- [ ] Загрузить в Google Play Console
- [ ] Internal testing → Closed testing → Production
### Apple App Store
- [ ] Apple Developer Program ($99/год)
- [ ] Certificates, Identifiers, Profiles
- [ ] Archive и загрузка через Xcode / Transporter
- [ ] App Store Connect: метаданные, скриншоты
- [ ] TestFlight для бета-тестирования
- [ ] Ревью Apple (строгие правила)
### Ресурсы
- [ ] 📖 [Flutter Deployment — Android](https://docs.flutter.dev/deployment/android)
- [ ] 📖 [Flutter Deployment — iOS](https://docs.flutter.dev/deployment/ios)
- [ ] 📹 [Publish Flutter App — Mitch Koko](https://www.youtube.com/watch?v=g0GNuoCOtaQ)
- [ ] 📖 [Fastlane for Flutter](https://docs.flutter.dev/deployment/cd)
---
## Этап 10 — Реальный проект
**~4060 часов / 46 недель** | Всё вместе
### План создания реального приложения
> Пример: **Personal Finance Tracker** (или любое приложение по интересу)
#### Фаза 1: Планирование (23 дня)
- [ ] Определить MVP: 35 ключевых фич
- [ ] Wireframes (можно в Figma — бесплатно)
- [ ] Выбрать стек: Riverpod + go_router + Dio + Drift/Hive
- [ ] Спроектировать data models
#### Фаза 2: Скелет (1 неделя)
- [ ] Настроить проект с правильной структурой (feature-first)
- [ ] Настроить DI (get_it + injectable)
- [ ] Навигация (go_router)
- [ ] Базовый UI каждого экрана (placeholder)
- [ ] Тема и дизайн-система
#### Фаза 3: Core Features (23 недели)
- [ ] Реализовать основную бизнес-логику
- [ ] Подключить API / базу данных
- [ ] State management для каждой фичи
- [ ] Обработка ошибок и loading states
- [ ] Offline-first: локальный кэш + синхронизация
#### Фаза 4: Polish (1 неделя)
- [ ] Анимации и micro-interactions
- [ ] Responsive дизайн
- [ ] Обработка edge-cases
- [ ] Performance: profiling с DevTools
- [ ] Accessibility (семантика для screen readers)
#### Фаза 5: Launch (35 дней)
- [ ] Написать unit + widget тесты (coverage >60%)
- [ ] CI/CD pipeline
- [ ] Подготовить store listing
- [ ] Бета-тест через TestFlight / Internal Testing
- [ ] Релиз 🚀
### Идеи для реальных проектов
| Проект | Чему научит |
|--------|-------------|
| 💰 Финансовый трекер | CRUD, графики, локальная БД, экспорт |
| 📝 Заметки/Markdown | Редактор, файловая система, синхронизация |
| 🏋️ Трекер тренировок | Таймеры, анимации, статистика |
| 🍕 Доставка еды (клон) | Карты, API, корзина, навигация |
| 📰 Новостной агрегатор | RSS, API, кэширование, push |
| 🎵 Музыкальный плеер | Аудио, фоновое воспроизведение, UI |
---
## Ресурсы — Каталог
### 📖 Документация (читать первым делом)
| Ресурс | Описание |
|--------|----------|
| [dart.dev](https://dart.dev/) | Официальная документация Dart |
| [docs.flutter.dev](https://docs.flutter.dev/) | Официальная документация Flutter |
| [pub.dev](https://pub.dev/) | Репозиторий пакетов (как npm/nuget) |
| [Flutter API Reference](https://api.flutter.dev/) | Полный API reference |
| [Material 3 Guidelines](https://m3.material.io/) | Гайдлайны Material Design |
### 📹 YouTube каналы
| Канал | Описание |
|-------|----------|
| [Flutter Official](https://www.youtube.com/@flutterdev) | Widget of the Week, Decoding Flutter |
| [Fireship](https://www.youtube.com/@Fireship) | Быстрые обзоры, "in 100 seconds" |
| [Vandad Nahavandipoor](https://www.youtube.com/@VandadNP) | Google Developer Expert, подробные курсы |
| [Reso Coder](https://www.youtube.com/@ResoCoder) | Clean Architecture, TDD, BLoC |
| [Mitch Koko](https://www.youtube.com/@createdbykoko) | Практичные проекты от 0 до деплоя |
| [Code With Andrea](https://www.youtube.com/@CodeWithAndrea) | Riverpod, архитектура, best practices |
| [The Flutter Way](https://www.youtube.com/@TheFlutterWay) | Красивые UI клоны |
| [dbestech](https://www.youtube.com/@daboratechltd) | Полные проекты с бэкендом |
| [Johannes Milke](https://www.youtube.com/@JohannesMilke) | Короткие туториалы по конкретным фичам |
| [freeCodeCamp](https://www.youtube.com/@freecodecamp) | Длинные полные курсы (37+ часов) |
### 📚 Бесплатные курсы и туториалы
| Ресурс | Описание |
|--------|----------|
| [Flutter Codelabs](https://docs.flutter.dev/codelabs) | Пошаговые лабы от Google |
| [Dart Codelabs](https://dart.dev/codelabs) | Интерактивные упражнения по Dart |
| [Flutter Apprentice (raywenderlich)](https://www.kodeco.com/flutter) | Бесплатные статьи и туториалы |
| [Flutter Gems](https://fluttergems.dev/) | Каталог полезных пакетов по категориям |
| [Awesome Flutter](https://github.com/Solido/awesome-flutter) | Кураторский список ресурсов на GitHub |
| [Flutter Examples](https://github.com/nisrulz/flutter-examples) | Сотни примеров кода |
| [It's All Widgets](https://itsallwidgets.com/) | Галерея Flutter-приложений с исходниками |
### 🧰 Инструменты
| Инструмент | Описание |
|------------|----------|
| [DartPad](https://dartpad.dev/) | Онлайн-песочница |
| [Flutter DevTools](https://docs.flutter.dev/tools/devtools) | Профилирование, отладка, инспектор |
| [Very Good CLI](https://github.com/VeryGoodOpenSource/very_good_cli) | Генератор проектов с best practices |
| [Mason](https://github.com/felangel/mason) | Шаблоны кода (как Yeoman) |
| [Widgetbook](https://www.widgetbook.io/) | Storybook для Flutter виджетов |
### 📦 Must-have пакеты
| Пакет | Категория | Описание |
|-------|-----------|----------|
| `riverpod` | State Management | Реактивное управление состоянием |
| `go_router` | Навигация | Декларативный роутинг |
| `dio` | Networking | HTTP-клиент |
| `freezed` | Code Generation | Immutable модели |
| `json_serializable` | Serialization | JSON ↔ Dart |
| `hive` | Storage | NoSQL БД |
| `drift` | Storage | SQLite ORM |
| `get_it` | DI | Service locator |
| `injectable` | DI | Кодогенерация для get_it |
| `flutter_hooks` | UI | React-style hooks |
| `cached_network_image` | UI | Кэширование картинок |
| `flutter_svg` | UI | SVG поддержка |
| `intl` | i18n | Локализация |
| `mocktail` | Testing | Мокирование |
---
## 💡 Советы от опытного разработчика к опытному
1. **Не читай — делай.** С опытом в C#/Go/JS ты быстро схватишь синтаксис. Открывай DartPad, пиши код.
2. **Flutter ≠ React Native.** Здесь нет DOM. Всё — виджеты. Widget tree пересоздаётся каждый кадр (Flutter рендерит как игровой движок).
3. **`const` everywhere.** Flutter использует `const` конструкторы для оптимизации rebuilds. Привыкай.
4. **Riverpod > Provider** для новых проектов. Provider legacy, Riverpod — его автор переосмыслил подход.
5. **Не бойся кодогенерации.** `build_runner` — это норма. `freezed` + `json_serializable` сэкономят тонны boilerplate.
6. **Декомпозиция виджетов.** Если `build()` больше 50 строк — разбивай. Extract widget > extract method.
7. **DevTools — твой друг.** Widget Inspector, Performance, Network — используй с первого дня.
8. **Dart — это не JavaScript.** Null safety строгий. Sound typing. Не борись с системой типов — используй её.
---
## 📊 Timeline Summary
| Этап | Тема | Часы | Недели |
|------|------|------|--------|
| 1 | Dart | 812 | 1 |
| 2 | Flutter основы | 1620 | 2 |
| 3 | Навигация и архитектура | 1215 | 1.5 |
| 4 | State Management | 1620 | 2 |
| 5 | Работа с данными | 1620 | 2 |
| 6 | UI мастерство | 1215 | 1.5 |
| 7 | Нативные возможности | 810 | 1 |
| 8 | Тестирование | 810 | 1 |
| 9 | Публикация | 68 | 1 |
| 10 | Реальный проект | 4060 | 46 |
| **Итого** | | **~140190** | **~1719** |
> При 810 часах в неделю = **~45 месяцев** до первого приложения в store 🎯
---
*Создано: 2026-03-26 | Автор: Cosmo ✨*
*Последнее обновление: 2026-03-26*