Flutter #638 - Реализовал VersionCubit (5 серия)
Flutter #637 - Реализовал VersionCubit (4 серия)
Flutter #636 - Реализовал VersionCubit (3 серия)
Flutter #635 - Реализовал VersionCubit (2 серия)
Flutter #634 - Реализовал VersionCubit (1 серия)
Flutter #633 - Исследовал реализацию "Prompt Update App Dialog In Flutter Application"
+ обновил пакеты firebase_*
Flutter #632 - Реализовал Image CDN на Firebase (2 серия)
Flutter #631 - Исследовал реализацию обновления приложения
Flutter #630 - Реализовал Image CDN на Firebase (1 серия)
Flutter #629 - Исследовал Image CDN на Firebase
Flutter #628 - Реализовал Scrollable.ensureVisible
Flutter #627 - Ограничил постраничный вывод для API.getUnitsForFan и API.getUnitsForBest
Flutter #626 - Исследовал MaterialApp.builder для фокуса в TextField
+ обновил пакеты
Flutter #625 - Исследовал ScrollablePositionedList
+ выпилил ListBox для _selectUrgentDialog
Flutter #624 - Перенёс ImagesField из pet_finder
Flutter #623 - Реализовал _loadAppState() внутри HomeScreen()
Flutter #622 - Восстановил StartScreen
Flutter #621 - Отрефакторил ProfileCubit.saveWish() & .saveBlock()
Flutter #620 - Исследовал реализацию очереди на Future
Flutter #619 - Реализовал _optimisticUpdateBlock()
Flutter #618 - Реализовал "optimistic" ProfileCubit.saveWish()
Flutter #617 - Исследовал Equatable для BuiltList
Flutter #616 - Реализовал ProfileCubit.saveWish()
Flutter #615 - Реализовал отображение LikeButton.isLiked через BLoC
+ добавил ProfileCubit.addUnitLocaly()
Flutter #614 - Добавил неизменяемые (immutable) модели
Flutter #613 - Переключил ProfileModel с Provider на ProfileCubit
Flutter #612 - Загрузил данные для ProfileModel
Flutter #611 - Загрузил данные для ProfileState.member
Flutter #610 - Подключил LoadProfileScreen на BLoC
+ исследовал flow_builder
Flutter #609 - Исследовал ошибку в диалоге "Выберите аккаунт"
Flutter #608 - Подключил аутентификацию на BLoC (2 серия)
Flutter #607 - Подключил аутентификацию на BLoC (1 серия)
Flutter #606 - Добавил cubits для auth
+ исправил FutureBuilder для MaterialApp.builder
Flutter #605 - Добавил repositories для BLoC
Flutter #604 - Добавил json_serializable_immutable_collections
+ исследовал dart_json_mapper
Flutter #603 - Подготовил LoginScreen
+ исследовал _LifecycleManager
Flutter #602 - Выпилил CommonMaterialApp
+ переименовал PageWrapper
Flutter #601 - Выпилил graphql_flutter для переезда на BLoC
Flutter #600 - Удалил legacy из main.dart
Flutter #599 - Исследовал legacy внутри main.dart
Flutter #598 - Выполнил апгрейд пакета graphql 4.0.0-beta.5 на minsk8
Flutter #597 - Исследовал вопросы по Hero для UnitScreen
Flutter #596 - Посмотрел "Введение в Business Logic Components aka BLoC"
https://youtu.be/AV_4aVOKl-g Тайм-коды: 00:00:00 Вводная 00:08:30 Начало вебинара 00:13:50 Зацепление VS Связность 00:25:30 Закон Деметры 00:32:40 GRASP (хватка) 01:02:00 Что нужно знать, чтобы освоить BLoC 01:20:00 Ответы на вопросы 01:22:00 Реактивное программирование 01:27:00 Как появился BLoC 01:45:00 Библиотека bloc 02:06:00 Cubit 02:29:00 Генераторы 02:35:00 Взаимодействие UI - BLoC 02:46:30 mapEventToState 03:20:00 Сколько делать BLoC'ов 03:35:00 Когда применять Cubit 04:25:00 Как готовить CRUD на BLoC 06:39:00 БИНГО ошибок при создании BLoC'a 08:31:00 Ответы на вопросы
Flutter #595 - Реализовал DatabaseRepository.initializeService()
Flutter #594 - Запустил эксперимент по протуханию токена для GraphQL subscription
Flutter #593 - Выполнил апгрейд пакета graphql 4.0.0-beta.5 на pet_finder
Flutter #592 - Исправил TextField focus crash
Flutter #591 - Выполнил упражнение на SingleChildScrollView
+ подвёл итоги по окончанию собственных курсов "Flutter для начинающих"
Flutter #590 - Исследовал "Authorization" для GraphQL subscribe
Flutter #589 - Перенес GraphQLService в flutter_idiomatic
(где абстрагировал query & mutation & subscription)
Flutter #588 - Улучшил ImagesField._uploadImage()
Flutter #587 - Реализовал fetchNewUnitNotification
+ добавил RefreshIndicator
Flutter #586 - Улучшил _uploadImage() для ImagesField
Flutter #585 - Улучшил ImagesField
Flutter #584 - Вынес ImageField
Flutter #583 - Реализовал LoadProfileScreen
+ пересмотрел пример взаимодействия BLoC и Repository
Flutter #582 - Добавил UpsertMemberScreen
Flutter #581 - Реализовал upsertMember()
Flutter #580 - Переделал ProfileModel.wishes на AppCubit.wishes
Flutter #579 - Подключил logInWithGoogle() для pet_finder
+ скопировал форкнутый проект в git + получил SHA-1 для Firebase
Flutter #578 - Реализовал Firebase Authentication на BLoC для pet_finder
Flutter #577 - Реализовал AppCubit
+ посмотрел на riverpod
Flutter #576 - Реализовал загрузку профиля на StartScreen
Flutter #575 - Обобщил load(Future future)
Flutter #574 - Улучшил SelectField
Flutter #573 - Упростил валидацию формы для BLoC
Flutter #572 - Исследовал await Future.delayed(Duration.zero) для BLoC (2 серия)
+ заменил state.loadingError на state.status.error внутри BLoC
Flutter #571 - Исследовал await Future.delayed(Duration.zero) для BLoC (1 серия)
+ внедрил state.loadingError для BLoC
Flutter #570 - Реализовал SelectField для формы ввода данных
Flutter #569 - Исследовал работу с формой для BLoC (4 серия)
Flutter #568 - Исследовал работу с формой для BLoC (3 серия)
Flutter #567 - Исследовал работу с формой для BLoC (2 серия)
Flutter #566 - Исследовал работу с формой для BLoC (1 серия)
Flutter #565 - Исследовал обработку ошибок в экшенах cubit-а
Flutter #564 - Исследовал новую реализацию authentication
Flutter #563 - Исследовал flutter_gherkin (9 серия)
Flutter #562 - Исследовал flutter_gherkin (8 серия)
Flutter #561 - Исследовал flutter_gherkin (7 серия)
+ переименовал проект flutter_firebase_login на flutter_idiomatic
Flutter #560 - Исследовал flutter_gherkin (6 серия)
Flutter #559 - Исследовал flutter_gherkin (5 серия)
+ попробовал freezed
Flutter #558 - Исследовал flutter_gherkin (4 серия)
Flutter #557 - Исследовал flutter_gherkin (3 серия)
Flutter #556 - Исследовал flutter_gherkin (2 серия)
+ How to Update a Fork in Github
Flutter #555 - Исследовал flutter_gherkin (1 серия)
Flutter #554 - Подключил расширение VSCode для Cucumber (Gherkin)
+ прочитал вводные про BDD (Behavior Driven Development)
Flutter #553 - Подключил hydrated_bloc + replay_bloc в проекте flutter_firebase_login
Flutter #552 - Исследовал примеры из пакета bloc
Flutter #551 - Отрефакторил TodosCubit (выкинул _load() с сайд-эффектом)
Flutter #550 - Добавил TodosState.loadingError
Flutter #549 - Реализовал сайд-эффект синхронизации элементов AnimatedList в BuildListener (BLoC)
+ отрефакторил TodosState в проекте flutter_firebase_login
Flutter #548 - Исправил правила lint для проекта flutter_firebase_login
+ упростил параметр repository для конструктора *Cubit
Flutter #547 - Добавил AnimatedList в проект flutter_firebase_login
Flutter #546 - Исследовал AnimatedList и реализовал Drag and Drop
Flutter #545 - Поженил graphql и flutter_bloc в проекте flutter_firebase_login (15 серия)
Flutter #544 - Поженил graphql и flutter_bloc в проекте flutter_firebase_login (14 серия)
Flutter #543 - Поженил graphql и flutter_bloc в проекте flutter_firebase_login (13 серия)
Flutter #542 - Поженил graphql и flutter_bloc в проекте flutter_firebase_login (12 серия)
+ добавил copy_with_extension
Flutter #541 - Поженил graphql и flutter_bloc в проекте flutter_firebase_login (11 серия)
Flutter #540 - Поженил graphql и flutter_bloc в проекте flutter_firebase_login (10 серия)
Flutter #539 - Поженил graphql и flutter_bloc в проекте flutter_firebase_login (9 серия)
Flutter #538 - Поженил graphql и flutter_bloc в проекте flutter_firebase_login (8 серия)
+ исследовал WebSocketLink + JWT, просмотрел курс hasura + flutter
Flutter #537 - Поженил graphql и flutter_bloc в проекте flutter_firebase_login (7 серия)
Flutter #536 - Поженил graphql и flutter_bloc в проекте flutter_firebase_login (6 серия)
Flutter #535 - Поженил graphql и flutter_bloc в проекте flutter_firebase_login (5 серия)
Flutter #534 - Поженил graphql и flutter_bloc в проекте flutter_firebase_login (4 серия)
Flutter #533 - Поженил graphql и flutter_bloc в проекте flutter_firebase_login (3 серия)
Flutter #532 - Поженил graphql и flutter_bloc в проекте flutter_firebase_login (2 серия)
Flutter #531 - Поженил graphql и flutter_bloc в проекте flutter_firebase_login (1 серия)
+ починил "Downloading Dart SDK from Flutter engine"
Flutter #530 - Синхронизировал код основного проекта с проектом flutter_firebase_login
Flutter #529 - Восстановил тесты для flutter_firebase_login (6 серия)
Flutter #528 - Восстановил тесты для flutter_firebase_login (5 серия)
Flutter #527 - Восстановил тесты для flutter_firebase_login (4 серия)
Flutter #526 - Восстановил тесты для flutter_firebase_login (3 серия)
Flutter #525 - Восстановил тесты для flutter_firebase_login (2 серия)
Flutter #524 - Восстановил тесты для flutter_firebase_login (1 серия)
Flutter #523 - Исследовал дизайн API для "mock" репозитория flutter_bloc
Flutter #522 - Добавил Firebase.initializeApp()
+ перенес инициализацию AuthenticationRepository в *Cubit
Flutter #521 - Исследовал Dependency Injection & IoC + get_it
Flutter #520 - Включил код в проект из flutter_firebase_login
+ вернул pedantic
Flutter #519 - Реализовал "эталонную структуру" файлов в проекте для flutter_firebase_login
Flutter #518 - Реализовал новую структуру файлов для flutter_firebase_login
Flutter #517 - Выполнил обзор текущих вакансий
Flutter #516 - Проверил домашнее задание по упражнению с Provider
Flutter #515 - Выпилил реализацию аутентификации
Flutter #514 - Просмотрел ролики Константина Кокорина по BLoC
Flutter #513 - Исследовал старую реализацию аутентификации
Flutter #512 - Отрефакторил EnumModel (2 серия)
+ поделился инсайтами по стримам на Youtube
Flutter #511 - Отрефакторил EnumModel (1 серия)
Flutter #510 - Отрефакторил UrgentValue
Flutter #509 - Изучил примеры проектов на BLoC из bloclibrary.dev
Flutter #508 - Исправил import
Flutter #507 - Почистил код с применением lint
+ разобрал, как стать спонсируемым разработчиком на GitHub
Flutter #506 - Исследовал DDD (3 серия)
Flutter #505 - Исследовал DDD (2 серия)
Flutter #504 - Исследовал DDD (1 серия)
Flutter #503 - Разобрал примеры пакета provider
+ освоил область видимости "protected"
Flutter #502 - Реализовал navigator
+ разобрал проект на MobX - "pixez-flutter", попробовал запустить пример проекта на BLoC - finished_notes_firebase_ddd_course
Flutter #501 - Форкнул пример проекта на BLoC - flutter_firebase_login
+ рассказал про Минск, про фондовый рынок, про всё-всё-всё
Flutter #500 - Реализовал *Screen.route()
Flutter #499 - Познакомился с bloclibrary.dev (3 серия)
+ познакомился с пакетом freezed
Flutter #498 - Познакомился с bloclibrary.dev (2 серия)
+ разобрал шаблон делегирования
Flutter #497 - Познакомился с bloclibrary.dev (1 серия)
Flutter #496 - Отрефакторил ContentScreen (2 серия)
Flutter #495 - Отрефакторил ContentScreen (1 серия)
Flutter #494 - Реализовал типизацию аргументов для навигации (3 серия)
Flutter #493 - Реализовал типизацию аргументов для навигации (2 серия)
Flutter #492 - Реализовал типизацию аргументов для навигации (1 серия)
Flutter #491 - Отрефакторил /screens и /widgets (2 серия)
Flutter #490 - Исследовал пакеты про типизацию аргументов для роутинга
Flutter #489 - Отрефакторил /screens и /widgets (1 серия)
Flutter #488 - Сверстал блок компаньона
+ реализовал Content
Flutter #487 - Исправил заполнение units в профиле
Flutter #486 - Исправил Hero для PageView
Flutter #485 - Выполнил код-ревью тестового задания моего ученика
Flutter #484 - Проверил гипотезы для Hero
Flutter #483 - Исследовал PageStorageKey
Flutter #482 - Исследовал ошибку Hero для PageView
Flutter #481 - Исправил Hero для возврата на витрину из другого лота
+ рассказал про свой путь к Flutter-у
Flutter #480 - Исследовал "There are multiple heroes that share the same tag within a subtree".
Flutter #479 - Пофиксил typecast для Places
+ воспроизвёл ошибку с Hero для PageView
Flutter #478 - Добавил поле ввода в Messages
Flutter #477 - Исследовал CustomScrollView + .reverse = true
Flutter #476 - Добавил индикатор непрочитанных сообщений
+ рассказал про изыскания "золотой" архитектуры для state-management
Flutter #475 - Исследовал проект на build_redux (2 серия)
Flutter #474 - Исследовал проект на build_redux (1 серия)
Flutter #473 - Исследовал разделение кода между /screens и /widgets
Flutter #472 - Отрефакторил _optimisticUpdateWish()
+ рассказал об открытом уроке на курсах про Flutter
Flutter #471 - Реализовал Mutations.upsertBlock (4 серия)
Flutter #470 - Реализовал Mutations.upsertBlock (3 серия)
+ исследовал bot_toast
Flutter #469 - Реализовал Mutations.upsertBlock (2 серия)
+ исследовал GetX
Flutter #468 - Реализовал Mutations.upsertBlock (1 серия)
Flutter #467 - Реализовал MyBlocksModel
Flutter #466 - Реализовал 'complaint' action
Flutter #465 - Добавил PopupMenuButton для MessagesScreen
Flutter #464 - Исследовал JWTExpired
Flutter #463 - Исправил DistanceModel
+ перехватил JWTExpired
Flutter #462 - Добавил MessagesScreen
+ рассказал, почему не буду писать на Swift и Java
Flutter #461 - Исследовал Union-типы
Flutter #460 - Утвердился в варианте применения provider
Flutter #459 - Реализовал VersionModel
Flutter #458 - Реализовал ChatList с применением _normalizeItems()
Flutter #457 - Вернул реализацию ChatList на базе ListBox
Flutter #456 - Исправил PageView.children
Flutter #455 - Исследовал реализацию indicatorBuilder для ChatList
Flutter #454 - Попробовал заменить ListBox на ListView.separated()
Flutter #453 - Исследовал ListView внутри Column
Flutter #452 - Реализовал playlist.json (содержание всех трансляций)
Flutter #451 - Реализовал itemBuilder для _buildChat()
Flutter #450 - Реализовал _buildChat()
Flutter #449 - Поженил ChatList и ChatData
+ рассказал про собственные курсы, сегодня начинаем!
Flutter #448 - Усовершенствовал Wrapper.dataPool
Flutter #447 - Реализовал ChatData
Flutter #446 - Прочитал "Dart & Flutter Easy Wins"
Набор на онлайн-курсы обучения https://t.me/joinchat/FN6rLBrNNtP9DcLFvy06ZA
Flutter #445 - Исследовал реализацию slivers для ChatList
+ рассказал про NextJS, GatsbyJS, React, React Native, TypeScript, Flow, AntDesign, мобильное приложение Meduza
Flutter #444 - Добавил FutureBuilder для ChatList
Flutter #443 - Применил PageView
Flutter #442 - Исследовал реализацию источника данных для ChatList
+ исследовал AutomaticKeepAliveClientMixin
Flutter #441 - Исследовал модель данных для чата (2 серия)
Flutter #440 - Исследовал модель данных для чата (1 серия)
+ рассказал о выборе технологий: Flutter vs Native-разработка, GoLang vs RubyOnRails
Flutter #439 - Добавил _isInitialExpanded для _ChatListGroupState
Flutter #438 - Исследовал ошибку JWTExpired от hasura
Flutter #437 - Реализовал анимацию для ChatListGroup
+ рассказал, какие приёмы использую для управления состоянием и почему пока не использую BLoC
Flutter #436 - Исследовал анимацию для ChatListGroup
+ рассказал, почему Flutter+Dart и Hasura+GoLang
Flutter #435 - Определился с анимацией для ChatListGroup
Flutter #434 - Реализовал заголовок для SliverList
Flutter #433 - Добавил ChatList (WIP)
Flutter #432 - Реализовал getDisplayDate()
Flutter #431 - Переименовал Showcase на Wrapper
Flutter #426 - Отобразил данные для NoticeData
Flutter #430 - Реализовал NoticeList
Flutter #429 - Добавил NoticeList
+ рассказал, почему говнокод и про свой комп
Flutter #428 - Реализовал табы для InteractionScreen
Flutter #427 - Обработал ошибку в SourceList.handleRefresh()
Flutter #425 - Исправил StickyData.refresh()
Flutter #424 - Реализовал NoticeData
Flutter #423 - Отключил неявное приведение типов
+ рассказал немного о своём профессиональном пути
Flutter #422 - Прочитал "Как мы похерили 30 килобаксов на Firebase за 72 часа"
Оригинал: https://hackernoon.com/how-we-spent-30k-usd-in-firebase-in-less-than-72-hours-307490bd24d
Flutter #421 - Исследовал loading_more_list ... multiple_sliver_demo
Flutter #420 - Реализовал member.photoUrl
+ рассказал, почему Hasura и Firebase
Flutter #419 - Реализовал Mutations.upsertMember
Flutter #418 - Исследовал реализацию добавления нового участника (2 серия)
Flutter #417 - Исследовал реализацию добавления нового участника (1 серия)
Flutter #416 - Улучшил LoginScreen
Flutter #415 - Реализовал LoginScreen
Flutter #414 - Реализовал FirebaseAuth + signInWithGoogle() с требованиями в JWT для hasura
Flutter #413 - Исправил подключение к JWT ("x-hasura-user-id" header is expected but not found)
Flutter #412 - Развернул Firebase Cloud Functions
Flutter #411 - Исправил AuthCheck
Flutter #410 - Реализовал Google Sign-In аутентификацию через Firebase
Flutter #409 - Реализовал AuthCheck
Flutter #408 - Исследовал реализацию аутентификации через Firebase для Google Sign In
Flutter #407 - Исследовал реализацию аутентификации
Flutter #406 - Исправил обновления в слоях карты при перемещении
Flutter #405 - Исследовал антипаттерн разделения build() на вложенные build*()
Flutter #404 - Изучил горячие клавиши VSCode
Flutter #403 - Попробовал DevicePreview
Flutter #402 - Восстановил авторизацию в hasura_trivia
Flutter #401 - Улучшил ContentScreen для невероятно быстрой загрузки больших markdown-файлов
Flutter #400 - Улучшил ScrollBody
Flutter #399 - Улучшил ExtendedAppBar
Flutter #398 - Применил ExtendedAppBar
Flutter #397 - Обернул Scaffold.body в SafeArea
Flutter #396 - Реализовал AppBarModel.isElevation
Flutter #395 - Реализовал getMagicHeight()
Flutter #394 - Улучшил PaymentStep
Flutter #391 - Реализовал buildScrollBody()
Flutter #393 - Реализовал ContentScreen
Flutter #392 - Реализовал ExtendedAppBar
Flutter #390 - Исследовал прокрутку в ListView
Flutter #389 - Реализовал ExtendedAppBar
Flutter #388 - Реализовал PaymentScreen
Flutter #387 - Добавил animateTo() для kPaymentSteps
Flutter #386 - Добавил PaymentStepModel
Flutter #385 - Реализовал анимацию для PaymentStep
Flutter #384 - Исследовал анимацию для PaymentStep
Flutter #383 - Исследовал Markdown & WebView
Flutter #382 - Реализовал AnimatedSize
Flutter #381 - Реализовал отображение скидки внутри PaymentStep
Flutter #380 - Реализовал header-footer внутри PaymentStep
Flutter #379 - Добавил ListView для kPaymentSteps на PaymentScreen (WIP)
Flutter #378 - Реализовал PaymentButton
Flutter #377 - Исследовал варианты анимации масштабирования текста
Никак не могу добиться плавной анимации текста при масштабировании (перебрал DefaultTextStyleTransition и ScaleTransition: для контейнера, для картинки, для канваса). Дергается строка туда-сюда. Должно же быть какое-то красивое решение. Могу предположить, что нужна какая-то двойная буферизация. Опять буксую с анимацией, выдалась же неделька 😊 исходники: https://gist.github.com/comerc/1ba71b7ce7aa60116b635830143fa83f
Flutter #376 - Исследовал анимацию для HotButton
Flutter #375 - Переписал AutoIncreaseField для WantDialog на AnimatedSize
Flutter #374 - Исследовал AnimatedSize
Flutter #373 - Отрефакторил AutoIncreaseField для WantDialog
Flutter #372 - Реализовал второй Expansion для WantDialog
Flutter #371 - Реализовал Expansion для WantDialog
Flutter #370 - Реализовал Accordion для WantDialog (WIP)
Flutter #369 - Исследовал увеличение размера WantDialog для AutoIncreaseField
Flutter #368 - Реализовал выбор ставки на ListWheelScrollView (WIP)
Flutter #367 - Переписал WantDialog
Flutter #366 - Реализовал анимацию для AutoIncreaseField
Flutter #365 - Исследовал реализацию AutoIncreaseField
Flutter #364 - Улучшил selectUrgentDialog
Flutter #363 - Добавил PaymentModel.balance
Flutter #362 - Просмотрел плейлист "Flutter Widget of the Week" (9 серия)
Виджеты: IgnorePointer, CupertinoActivityIndicator, ClipOval, AnimatedWidget, Padding, CheckboxListTile, AboutDialog, Package:async.
Flutter #361 - Просмотрел плейлист "Flutter Widget of the Week" (8 серия)
Виджеты: Builder, ClipPath, CircularProgressIndicator and LinearProgressIndicator, Divider.
Flutter #360 - Просмотрел плейлист "Flutter Widget of the Week" (7 серия)
Виджеты: Drawer, SnackBar, ListWheelScrollView, ShaderMask, NotificationListener
Flutter #359 - Просмотрел плейлист "Flutter Widget of the Week" (6 серия)
Виджеты: CupertinoActionSheet, TweenAnimationBuilder, Image, DefaultTabController & TabBar
Flutter #358 - Реализовал InviteScreen
Flutter #357 - Украсил HowToPayScreen
Flutter #356 - Реализовал HowToPayScreen
Flutter #355 - Реализовал переход на Google Map
Flutter #354 - Реализовал FeedbackScreen
Flutter #353 - Реализовал Avatar
Flutter #352 - Реализовал action для элементов списка WalletScreen
Flutter #351 - Реализовал image и text для элементов списка WalletScreen
Flutter #350 - Реализовал AccountModel
Flutter #349 - Реализовал триггеры для payment
Flutter #348 - Переименовал item на unit
Flutter #347 - Реализовал WalletData
Flutter #346 - Восстановил таймауты
Flutter #345 - Записал вопрос про timeout для GraphQLClient
Flutter #344 - Починил showSnackBar и попытался исправить Future.timeout
Flutter #343 - Выявил, что GraphQLClient не отменить таймаутом
Flutter #342 - Вынес MyWishesModel из ProfileModel
Flutter #341 - Реализовал WalletScreen._onRefresh
Flutter #340 - Реализовал WalletScreen (WIP)
Flutter #339 - Проговорил структуру файлов проекта
Flutter #338 - Исправил код по подсказкам pedantic
Flutter #337 - Реализовал PullToRefreshNotification для ExtendedListView
Flutter #336 - Исследовал реализацию загружаемого списка с группировкой по дате
Flutter #335 - Реализовал HomeProfile
Flutter #334 - Реализовал аватар в профиле
Flutter #333 - Переместил *_page в screens/home/
Flutter #332 - Добавил аватар на ProfilePage
Flutter #331 - Реализовал ProfilePage (WIP)
Flutter #330 - Реализовал ListView для ProfilePage
Flutter #329 - Подключил FirebaseAnalytics
Flutter #328 - Подключил initDynamicLinks для StartScreen
Flutter #327 - Исправил _MapAreaLayerState._radius
Flutter #326 - Реализовал StartMapScreen
Flutter #325 - Реализовал buildMapInfo
Flutter #324 - Реализовал MapReadyButton.saveModes
Flutter #323 - Определил данные для ProfileMapScreen
Flutter #322 - Отрефакторил widgets/showcase и widgets/map
Flutter #321 - Добавил /profile_map на SettingsScreen
Flutter #320 - Рассмотрел примеры flutter_local_notifications
Flutter #319 - Исправил brightness для AppBar
Flutter #318 - Реализовал примеры для flutter_local_notifications
Flutter #317 - Попытался запустить flutter_local_notifications/example
Flutter #316 - Перенёс демо-код
Flutter #315 - Исправил Hero.tag
Flutter #314 - Реализовал Queries для Underway
Flutter #313 - Реализовал общий Showcase
Flutter #312 - Реализовал CommonList
Flutter #311 - Реализовал UnderwayData
Flutter #310 - Добавил UnderwayData
Flutter #309 - Разделил CommonData и ShowcaseData
Flutter #308 - Реализовал Underway
Flutter #307 - Реализовал NestedScrollView.floatHeaderSlivers
Flutter #306 - Добавил адаптивный дизайн в Showcase
Flutter #305 - Заменил BoxShadow на Material.elevation
Flutter #304 - Добавил InkWell для ImageModel
Flutter #303 - Исправил ItemsRepository.clear для refreshWiget
Flutter #302 - Реализовал всплывающий refreshWiget для Showcase
Flutter #301 - Отрефакторил Showcase для RefreshIndicator (WIP)
Flutter #300 - Demo for NestedScrollView.floatHeaderSlivers
Flutter #299 - Исследовал NestedScrollView.floatHeaderSlivers
Flutter #298 - Реализовал SliverAppBarDelegate
Flutter #297 - Исправил appBarTheme
Flutter #296 - Реализовал SliverAppBarDelegate (WIP)
Flutter #295 - Исследовал реализацию subtitle для SliverAppBar
Flutter #294 - Добавил в GraphQL поле item.is_winned
Flutter #293 - Исправил ошибку в PullToRefreshNotification
Flutter #292 - Реализовал индикаторы выгрузки картинок на AddItemScreen
Flutter #291 - Реализовал индикаторы выгрузки картинок для AddImageButton
Flutter #290 - Реализовал _uploadQueue для AddItemScreen
Flutter #216 - Повторил про Provider
Flutter #289 - Реализовал отмену загрузки картинок
Flutter #288 - Исследовал очередь из Future
Flutter #287 - Добавил AddedItemDialog на AddItemScreen
Flutter #286 - Реализовал _openDeepLink для Showcase
Flutter #285 - Переместил ShowcaseScreen на HomeScreen
Flutter #284 - Реализовал болванку HomeScreen для bottomNavigationBar
Flutter #283 - Исправил ItemsRepository.isLoadDataByTabChange
Flutter #282 - Реализовал poolForReloadTabs
Flutter #281 - Починил tag для _ItemScreenState._otherItems
Flutter #280 - Реализовал обновление ShowcaseScreen
Flutter #279 - Реализовал ProfileModel.notifications
Flutter #278 - Реализовал view notification на Hasura
Flutter #277 - Реализовал _PopupMenuValue.askQuestion для ItemScreen
Flutter #276 - Реализовал NotificationModel
Flutter #275 - Реализовал _PopupMenuValue.toModerate для ItemScreen
Flutter #274 - Реализовал ConfirmDialog
Flutter #273 - Исправил Mutations.deleteItem
Flutter #272 - Улучшил Mutations.insertItem
Flutter #271 - Реализовал _Highlight для Places и отступ в ListTile.leading
Flutter #270 - Реализовал в UI включение ItemModel.isLocalDeleted
Flutter #269 - Реализовал Mutations.deleteItem
Flutter #268 - Добавил PopupMenu для ItemScreen
Flutter #267 - Исправил ошибки в навигации
Flutter #266 - Исследовал showGeneralDialog()
Flutter #265 - Закостылил MarkdownBody для Places и DeviceOrientation для /zoom
Flutter #264 - Добавил item в sourceListPool
Flutter #263 - Реализовал _handleAddItem для AddItemScreen
Flutter #262 - Реализовал загрузку картинок на Firebase внутри AddItemScreen
Flutter #261 - Исследовал загрузку картинок в AddImageButton
Flutter #260 - Реализовал Fragments.itemFields
Flutter #259 - Реализовал вызов Mutations.insertItem
Flutter #258 - Исследовал Mutations.insertItem
Flutter #257 - Исследовал добавление фрагментов в GraphQL
Flutter #256 - Починил ItemMapScreen
Flutter #255 - Реализовал AddedItemDialog
Flutter #254 - Добавил ProgressIndicator для AddItemScreen
Flutter #253 - Исправил навигацию между /add_item и /kinds
Flutter #252 - Добавил KindsScreen на AddButton
Flutter #251 - Исправил itemMap.init()
Flutter #250 - Реализовал KindButton и переделал сетку на KindsScreen
Flutter #249 - Реализовал сетку из kinds внутри KindsScreen
Flutter #248 - Реализовал _AddItemScreenState._urgent
Flutter #247 - Добавил инфо-блок на MyItemMapScreen
Flutter #246 - Реализовал MyItemMapScreen в связке с AddItemScreen
Flutter #245 - Реализовал управление Places на MyItemMapScreen
Flutter #244 - Исправил мигание loadingBuilder для Places
Flutter #243 - Добавил Places на MyItemMapScreen
Flutter #242 - Исследовал кастомизацию AppBar для применения Places
Flutter #241 - Реализовал Places
Flutter #240 - Подключил TypeAheadField для поиска адреса
Flutter #239 - Выполнил запрос к Algolia Places через REST API
Flutter #238 - Исследовал источники данных для поиска координат по адресу
Flutter #237 - Реализовал обратный геокодинг
Flutter #236 - Исследовал, как получить обратное геокодирование
Flutter #235 - Реализовал ItemMapModel.visible
Flutter #234 - Реализовал управление анимацией через ItemMapModel
Flutter #233 - Исследовал Provider
Flutter #232 - Добавил MapModel
Flutter #231 - Вынес ItemLayerMapPlugin
Flutter #230 - Реализовал AnimatedLabel (WIP)
Flutter #229 - Реализовал AnimationScreen
Flutter #228 - Реализовал MapWidget.isCenterWithMarkerPoint
Flutter #227 - Реализовал проброс переменных для MyItemMapScreen
Flutter #226 - Реализовал showCancelItemDialog()
Flutter #225 - Реализовал selectUrgentStatusDialog()
Flutter #224 - Исправил поведение showImageSourceDialog
Flutter #223 - Вынес image_source_dialog
Flutter #222 - Реализовал AddImageButton
Flutter #221 - Реализовал choiceImageSource для AddItemScreen
Flutter #220 - Определил UI для выбора источника картинки
Flutter #219 - Реализовал демо-проект на image_picker
Flutter #218 - Исследовал image_picker
Flutter #217 - Запустил примеры из обновленного пакета extended_image
Flutter #215 - Отключил CarouselSlider для ItemMapScreen
Flutter #214 - Реализовал AddImageButton для AddItemScreen
Flutter #213 - Реализовал SelectButton для AddItemScreen
Flutter #212 - Починил MediaQueryWrap
Flutter #211 - Добавил поле ввода внутри AddItemScreen
Flutter #210 - Реализовал макет экрана добавления товара
Flutter #209 - Определил, что надо делать дальше добавление товара
Flutter #208 - Реализовал ItemMapScreen
Flutter #207 - Подготовил повторное использование MapWidget
Flutter #206 - Реализовал AddressText для BidDialog
Flutter #205 - Реализовал BidDialog (3 серия)
Flutter #204 - Реализовал BidDialog (2 серия)
Flutter #203 - Реализовал BidDialog (1 серия)
Flutter #202 - Отрефакторил updateWish для WishButton
Flutter #201 - Подключил обновления ProfileModel.wishes через Provider
Flutter #200 - Исследовал реализацию управления состоянием через provider
Flutter #199 - Исследовал кэш graphql_flutter
Flutter #198 - Сформулировал вопросы по движению данных
+ исследовал graphql-flutter (очередная попытка)
Flutter #197 - Добавил InfoDialog на WantButton для состояний item.isClosed
Flutter #196 - Добавил InfoDialog на PriceButton
Flutter #195 - Добавил кнопку Gift
Flutter #194 - Добавил диалог цены для item.isClosed
Flutter #193 - Реализовал status для ItemModel
Flutter #192 - Реализовал "другие лоты участника"
Flutter #191 - Наполнил данными "другие лоты участника"
Flutter #190 - Добавил "другие лоты участника"
Flutter #189 - Доработал кнопки для ItemScreen
Flutter #188 - Реализовал подвал с кнопками для ItemScreen
Flutter #187 - Реализовал value для Distance
Flutter #186 - Добавил Price и Distance на ItemScreen
Flutter #185 - Реализовал SlidingUpPanel.maxHeight
Flutter #184 - Исследовал реализацию SlidingUpPanel.maxHeight
Flutter #183 - Определил SlidingUpPanel.minHeight
Flutter #182 - Реализовал отключение блокировки ориентации для ZoomScreen
Flutter #181 - Реализовал навигацию внутри ZoomScreen
Flutter #180 - Попытался прикрутить pic_swiper из extended_image
Flutter #179 - Исследовал zoom для CarouselSlider
Flutter #178 - Победил пустой Stack
Flutter #177 - Добавил Hero для ZoomScreen
Flutter #176 - Добавил currentIndex для ImageZoomScreen
Flutter #175 - Реализовал ItemZoomScreen
Flutter #174 - Реализовал Hero между ShowcaseItem и Item
Flutter #173 - Исследовал SliverAppBar и SliverPersistentHeader
+ ExtendedImageSlidePage.slideType
Flutter #172 - Попробовал изобрести PageRoute без анимации
Flutter #171 - Исследовал реализацию zoom для extended_image
Flutter #170 - Реализовал Hero для ItemImage
Flutter #169 - Убрал padding для Wish.likeCount, когда его не показываю
Flutter #168 - Прикрутил carousel_slider и sliding_up_panel для страницы товара
Flutter #167 - Реализовал свайпер для страницы товара
Flutter #166 - Реализовал Scaffold для страницы товара
+ исследовал Scaffold.bottomSheet
Flutter #165 - Исследовал реализацию фоток для страницы товара
+ узнал про GlobalKey + statefulWidgetKey.currentState
Flutter #164 - Реализовал оптимистичное обновление данных внутри Wish
Flutter #163 - Исследовал решение по реализации ProfileModel.wishes
Flutter #162 - Запустил Queries.getProfile
Flutter #161 - Определил Queries.getProfile
+ реализовал откат неудавшейся мутации для Wish
Flutter #160 - Добавил SQL-триггеры в таблицу wish для обновления item.total_wishes
Flutter #159 - Реализовал мутации желаний в Hasura
Flutter #158 - Добавил индикацию своих собственных желаний
+ исследовал мутации в graphql_flutter
Flutter #157 - Переименовал таблицы в Hasura через "Custom GraphQL Root Fields"
Flutter #156 - Реализовал витрину товаров (46 серия)
+ закостылил ошибку в _NestedScrollPosition.updateCanDrag внутри extended_nested_scroll_view
Flutter #155 - Реализовал витрину товаров (45 серия)
+ исправил ошибку в loading_more_list
Flutter #154 - Реализовал витрину товаров (44 серия)
Flutter #153 - Реализовал витрину товаров (43 серия)
Flutter #152 - Реализовал витрину товаров (42 серия)
Flutter #151 - Реализовал витрину товаров (41 серия)
+ исследовал dart namespace
Flutter #150 - Реализовал витрину товаров (40 серия)
+ попробовал запустить alibaba/flutter-go
Flutter #149 - Реализовал витрину товаров (39 серия)
+ разобрался с багом VSCode Apollo GraphQL; исследовал функционал fetchMore для graphql_flutter и как подобраться к GraphQLClient
Flutter #148 - Реализовал витрину товаров (38 серия)
+ исследовал пагинацию в Hasura
Flutter #147 - Реализовал витрину товаров (37 серия)
Увы, пропал звук с 32 минуты: обнаружил HASURA_GRAPHQL_UNAUTHORIZED_ROLE и получил данные в приложении Flutter от Hasura.
Flutter #146 - Реализовал витрину товаров (36 серия)
+ встретил Новый Год с подарками от Hasura!
Flutter #145 - Реализовал витрину товаров (35 серия)
+ подключил расширение VSCode Apollo GraphQL
Flutter #144 - Реализовал витрину товаров (34 серия)
+ настроил permissions в Hasura
Flutter #143 - Реализовал витрину товаров (33 серия)
+ в Hasura победил permissions и прикрутил PostGIS
Flutter #142 - Реализовал витрину товаров (32 серия)
Flutter #141 - Реализовал витрину товаров (31 серия)
Flutter #140 - Реализовал витрину товаров (30 серия)
Flutter #139 - Реализовал витрину товаров (29 серия)
Flutter #138 - Реализовал витрину товаров (28 серия)
Flutter #137 - Реализовал витрину товаров (27 серия)
Flutter #136 - Реализовал витрину товаров (26 серия)
Flutter #135 - Реализовал витрину товаров (25 серия)
+ исследовал artemis
Flutter #134 - Реализовал витрину товаров (24 серия)
Flutter #133 - Реализовал витрину товаров (23 серия)
Flutter #132 - Реализовал витрину товаров (22 серия)
Flutter #131 - Реализовал витрину товаров (21 серия)
Flutter #130 - Реализовал витрину товаров (20 серия)
Flutter #129 - Реализовал витрину товаров (19 серия)
+ исследовал: uni_links, firebase_dynamic_links, share, flutter_share
Flutter #128 - Реализовал витрину товаров (18 серия)
Flutter #127 - Реализовал витрину товаров (17 серия)
Flutter #126 - Реализовал витрину товаров (16 серия)
+ исследовал реализацию анимации в like_button
Flutter #125 - Реализовал витрину товаров (15 серия)
Flutter #124 - Реализовал витрину товаров (14 серия)
Flutter #123 - Реализовал витрину товаров (13 серия)
Flutter #122 - Реализовал витрину товаров (12 серия)
+ определился с функциональными виджетами
Flutter #121 - Реализовал витрину товаров (11 серия)
Flutter #120 - Реализовал витрину товаров (10 серия)
Flutter #119 - Реализовал витрину товаров (9 серия)
Flutter #118 - Реализовал витрину товаров (8 серия)
Flutter #117 - Реализовал витрину товаров (7 серия)
+ исследовал yaml2podo и dson
Flutter #116 - Реализовал витрину товаров (6 серия)
+ прикрутил json_serializable
Flutter #115 - Реализовал витрину товаров (5 серия)
+ исследовал json_serializable, обнаружил паразитные вызовы StatefulWidget.build() при навигации
Flutter #114 - Реализовал витрину товаров (4 серия)
Flutter #113 - Реализовал витрину товаров (3 серия)
Flutter #112 - Реализовал витрину товаров (2 серия)
+ придумал общий локальный импорт, типизировал аргументы для роутов
Flutter #103 - Составил план по экранам приложения (1 серия)
+ определился с роутингом
Flutter #111 - Реализовал витрину товаров (1 серия)
+ исследовал loading_more_list
Flutter #110 - Отрефакторил state_persistence
+ попробовал flutter_screenutil и shared_preferences
Flutter #109 - Попробовал ff_annotation_route
+ научился использовать flutter pub
Flutter #108 - Сформулировал хакерский подход к разработке MVP
Flutter #107 - Составил план по экранам приложения (5 серия)
Flutter #106 - Составил план по экранам приложения (4 серия)
Flutter #105 - Составил план по экранам приложения (3 серия)
+ нашёл dart-json-mapper
Flutter #104 - Составил план по экранам приложения (2 серия)
Flutter #102 - Попробовал прочие виджеты от FlutterCandies
waterfall_flow, loading_more_list, flutter_candies/widgets_sample, extended_text_field, pull_to_refresh_notification, extended_nested_scroll_view, extended_tabs, http_client_helper, image_picker_saver, ff_annotation_route
Flutter #101 - Попробовал wechat_flutter by FlutterCandies
Flutter #100 - Попробовал gitcandies by FlutterCandies
Flutter #99 - Попробовал ExtendedImage by FlutterCandies
Flutter #98 - Попробовал ImageCrop
Flutter #97 - Попробовал Hero
Flutter #96 - Попробовал перенять что-нибудь по обработке картинок из Timy Messenger
Flutter #95 - Улучшил загрузку картинок на Firebase Storage
Flutter #94 - Реализовал загрузку картинок на Firebase Storage
Flutter #93 - Установил Firebase в приложении
Flutter #92 - Исследовал загрузку картинок на Firebase Storage
Flutter #91 - Исследовал подключение камеры и галереи картинок (2 серия)
Flutter #90 - Исследовал подключение камеры и галереи картинок (1 серия)
Flutter #89 - Исследовал альтернативы Google Places API
+ нашёл баг в Geolocator().getCurrentPosition()
Flutter #88 - Реализовал плагин для flutter_map (12 серия)
Flutter #87 - Реализовал плагин для flutter_map (11 серия)
Flutter #86 - Реализовал плагин для flutter_map (10 серия)
Flutter #85 - Реализовал плагин для flutter_map (9 серия)
Flutter #84 - Реализовал плагин для flutter_map (8 серия)
Flutter #83 - Реализовал плагин для flutter_map (7 серия)
Flutter #82 - Исследовал flutter-permission-handler
Flutter #81 - Исследовал flutter-geolocator
Flutter #80 - Реализовал плагин для flutter_map (6 серия)
Flutter #79 - Реализовал плагин для flutter_map (5 серия)
Flutter #78 - Реализовал плагин для flutter_map (4 серия)
Flutter #77 - Реализовал плагин для flutter_map (3 серия)
Flutter #76 - Реализовал плагин для flutter_map (2 серия)
Flutter #75 - Реализовал плагин для flutter_map (1 серия)
Flutter #74 - Попробовал user_location (плагин для flutter_map)
Flutter #73 - Просмотрел "ToggleButtons (Flutter Widget of the Week)"
Flutter #72 - Попробовал flutter_map (исследовал example)
Flutter #71 - Попробовал flutter_map (запустил example)
Flutter #70 - Попробовал flutter_map (неудачная попытка запустить example)
+ научился переводить проекты на AndroidX
Flutter #69 - Попробовал google_map_location_picker
Flutter #68 - Просмотрел плейлист "Flutter Widget of the Week" (5 серия)
Виджеты: AnimatedPadding, IndexedStack, Semantics, ConstrainedBox, Stack, AnimatedOpacity, FractionallySizedBox, ListView, ListTile, Container, SelectableText, DataTable, Slider, RangeSlider, CupertinoSlider, AlertDialog, AnimatedCrossFade, DraggableScrollableSheet, ColorFiltered.
Flutter #67 - Просмотрел плейлист "Flutter Widget of the Week" (4 серия)
Виджеты: AnimatedList, Flexible, MediaQuery, Spacer, InheritedWidget, AnimatedIcon, AspectRatio, LimitedBox, Placeholder, RichText, RecordableListView, AnimatedSwitcher, AnimatedPositioned.
Flutter #66 - Просмотрел плейлист "Flutter Widget of the Week" (3 серия)
Виджеты: Align, Positioned, AnimatedBuilder, Dismissible, SizedBox, ValueListenableBuilder, Draggable.
Flutter #65 - Просмотрел плейлист "Flutter Widget of the Week" (2 серия)
Виджеты: FadeImage, StreamBuilder, InheritedModel, ClipRRect, Hero, CustomPaint, Tooltip, FittedBox, LayoutBuilder, AbsorbPointer, Transform, BackdropFilter.
Flutter #64 - Просмотрел плейлист "Flutter Widget of the Week" (1 серия)
Виджеты: SafeArea, Expanded, Wrap, AnimatedContainer, Opacity, FutureBuilder, FadeTransition, FloatingActionButton, PageView, Table, SliverAppBar, SliverList, SliverGrid.
Flutter #63 - Исследовал opensource-проекты на itsallwidgets.com (2 серия)
Выбрал: AmiiDex, CarPark, Facebook Audience Network for Flutter.
Flutter #62 - Исследовал opensource-проекты на itsallwidgets.com (1 серия)
Выбрал: FlutterNews, Flutter Catalog, SpaceX GO!, You, FoodScan, ahhhhhh, Flutter Widget Guide, Flutter Native Ads, Smart Notes, Influencer Simulator 2019, Timy Messenger.
Flutter #61 - Исследовал flutter/samples
.., что понравилось: animations, jsonexample, platform_design
Flutter #60 - Исследовал flutter/flutter/examples
+ повторил InheritedWidget
Flutter #59 - Прошёл по примерам Firebase Authentication на flutterawesome.com
Flutter #58 - Поиграл с приложением hasura_trivia
+ прочитал "Firebase: Developing serverless functions in Go"
Flutter #57 - Прошёл "Flutter + Hasura + event-driven serverless, Part 3 - Flutter client"
Flutter #56 - Прошёл "Flutter + Hasura + event-driven serverless, Part 2 - Setting up Firebase Auth"
Flutter #55 - Прошёл "Flutter + Hasura + event-driven serverless, Part 1 - Setting up Hasura"
Flutter #54 - Прошёл "Getting started with Hasura and Flutter"
Flutter #53 - Исследовал пример "Timy Messenger" на flutter_redux (Firebase Firestore)
Flutter #52 - Исследовал пример "Github Search" на flutter_redux (redux_epics)
Flutter #51 - Исследовал flutter_redux + GraphQL
+ посмотрел доклад про GraphQL на HolyJS 2019 Moscow
Flutter #50 - Разобрал flutter_architecture_samples / Redux Example (теория)
Flutter #49 - Разобрал flutter_architecture_samples / Redux Example (исходники)
Flutter #48 - Разобрал flutter_architecture_samples / Bloc Library Example (исходники)
Flutter #47 - Разобрал flutter_architecture_samples / Bloc Library Example (теория)
Flutter #46 - Разобрал flutter_architecture_samples / InheritedWidget Example
Flutter #45 - Разобрал flutter_architecture_samples / Lifting State Up (Vanilla) Example
Flutter #44 - Разобрал flutter_architecture_samples
Flutter #43 - Разобрал "BLoC паттерн на простом примере"
https://habr.com/ru/post/475404/
Flutter #42 - Выполнил обзор "Управление состоянием в приложении"
https://medium.com/flutter-community/let-me-help-you-to-understand-and-choose-a-state-management-solution-for-your-app-9ffeac834ee3
Flutter #41 - Выполнил "Урок 1. Введение в разработку на FlutterWeb" от flutter.su
Flutter #40 - Выполнил "Flutter на практике (ListTile + диалоги)" от flutter.su
Flutter #39 - Выполнил "Урок 7. HTTP и HTTPS, сетевые запросы в Dart и Flutter" от flutter.su
Flutter #38 - Выполнил "Урок 6. Асинхронные методы async и await" от flutter.su
Flutter #37 - Выполнил "Урок 5. Навигация и маршрутизация в приложении" от flutter.su
Flutter #36 - Выполнил "Урок 4. Форма ввода, проверка правильного ввода" от flutter.su
Flutter #35 - Выполнил "Урок 3. ListView бесконечный прокручиваемый список" от flutter.su
Flutter #34 - Выполнил "Урок 2. StatelessWidget и StatefulWidget" от flutter.su
Flutter #33 - Выполнил "Урок 1. Flutter первое приложение Hello World" от flutter.su
Flutter #32 - Выполнил "Write Your First Flutter App, part 2"
+ разобрал код https://github.com/lesnitsky/todolist_flutter
Flutter #31 - Выполнил "Write Your First Flutter App, part 1"
Flutter #30 - Пробежал "Dart by Example"
Flutter #29 - Прошёл "dart:io" в туре по библиотекам ядра Dart 2.x
Flutter #28 - Прошёл "dart:html" в туре по библиотекам ядра Dart 2.x
Flutter #27 - Прошёл "dart:convert" в туре по библиотекам ядра Dart 2.x
Flutter #26 - Прошёл "dart:math" в туре по библиотекам ядра Dart 2.x
Flutter #25 - Прошёл "dart:async" в туре по библиотекам ядра Dart 2.x
Flutter #24 - Прошёл "dart:core" в туре по библиотекам ядра Dart 2.x
Flutter #23 - Прошёл "Comments" в туре по языку Dart 2.x
Flutter #22 - Прошёл "Metadata" в туре по языку Dart 2.x
Flutter #21 - Прошёл "Typedefs" в туре по языку Dart 2.x
Flutter #20 - Прошёл "Isolates" в туре по языку Dart 2.x
Flutter #19 - Прошёл "Callable classes" в туре по языку Dart 2.x
Flutter #18 - Прошёл "Generators" в туре по языку Dart 2.x
Flutter #17 - Прошёл "Asynchrony support" в туре по языку Dart 2.x
Flutter #16 - Прошёл "Libraries and visibility" в туре по языку Dart 2.x
Flutter #15 - Прошёл "Generics" в туре по языку Dart 2.x
Flutter #14 - Прошёл "Classes" в туре по языку Dart 2.x
Flutter #13 - Прошёл "Exceptions" в туре по языку Dart 2.x
Flutter #12 - Прошёл "Control flow statements" в туре по языку Dart 2.x
Flutter #11 - Прошёл "Operators" в туре по языку Dart 2.x
Flutter #10 - Прошёл "Functions" в туре по языку Dart 2.x
Flutter #9 - Прошёл "Built-in types" в туре по языку Dart 2.x
Flutter #8 - Изучил DartVM, Isolates, Streams в Dart 2.x
Flutter #7 - Изучил асинхронное программирование в Dart 2.x
Flutter #6 - Изучил коллекции в Dart 2.x
Flutter #5 - Изучил обобщения в Dart 2.x
Flutter #4 - Изучил классы и объекты в Dart 2.x
Flutter #3 - Изучил встроенные типы данных в Dart 2.x
Flutter #2 - Прикрутил VSCode
Flutter #1 - Запустил HelloWorld в эмуляторе Android Studio
Flutter #0 - Установил Android Studio