1 — О модуле
2 — Что мы будем строить?
3 — Как правильно произносить?
4 — Какие компании используют Flutter?
5 — Нативные и кросс-платформенные приложения
6 — Характеристики Flutter
7 — Причины использовать Flutter и его конкуренты
8 — Установка Flutter — Apple iOS — Часть 1
9 — Установка Flutter на Windows
10 — ВАЖНО!
11 — Установка Flutter — Часть 2
12 — Установка Flutter — Часть 3
13 — Установка Android Studio — Apple iOS
14 — Установка Android Studio — Windows
15 — Установка плагинов Flutter & Dart
16 — Создание нового проекта Flutter
17 — Запуск проекта в Android Studio
18 — Домашняя страница приложения
19 — Установка Xcode (только для Mac)
20 — Xcode & Android Studio (только для Mac)
Вопросы к модулю
Ответы на вопросы
Тест к модулю
0 — О модуле
1 — Функции в Dart
2 — Текстовый и дополнительный материал о функциях в Dart
3 — Цифровые типы данных — int, double, num
4 — Текстовый и дополнительный материал о цифровых типах данных
5 — Статья на Medium о числовых типах данных
6 — Текстовый (строковой) тип данных
7 — Текстовый и дополнительный материал о текстовых (строковых) типах данных
8 — Boolean — Логический тип bool
9 — Текстовый и дополнительный материал о логическом типе данных
10 — Другие типы данных
11 — Что такое типы данных?
12 — Другие типы данных (помимо изученных)
13 — Переменные
14 — Текстовый и дополнительный материал по переменным
15 — Текстовый и дополнительный материал по константам
16 — Функция runApp(app)
17 — Резюме урока про runApp(app)
18 — Что такое виджет?
19 — Создание первого класса в main.dart
20 — Что такое классы и зачем они нужны?
21 — Текстовый и дополнительный материал — Что такое классы?
22 — Stateless Widgets
23 — Текстовый и дополнительный материал — StatelessWidget & StatefulWidget
24 — Super & Key
25 — Текстовый и дополнительный материал — Key
26 — @override BuildContexte
27 — Дополнительный материал — Второе назначение @override
28 — Текстовый и дополнительный материал — BuildContext
29 — Создаем class Homepage
30 — Убираем надпись debug
31 — Создаем кнопку и текст
32 — Разбираем написанный код + Домашнее задание
Вопросы к модулю
Ответы на вопросы
Тест к модулю
0 — О модуле
1 — Удаляем написанный код
2 — Что такое Scaffold?
3 — Material App vs Scaffold
4 — Что такое Material Design?
5 — Текстовый дополнительный материал — Scaffold
6 — Меняем фоновый цвет
7 — Меняем цвет текста
8 — Виджет Center
9 — Текстовый документ — Виджет Center
10 — Домашнее задание — Размер шрифта
11 — Размер шрифта — Стандарты дизайна
12 — Небольшой рефакторинг кода — Создание новой папки
13 — Удаляем ненужный код
14 — Опускаем текст — heightFactor
15 — Виджет Center — Немного теории
16 — Домашнее задание — Добавьте кнопку
17 — Графа — TextField()
18 — Что такое TextField()?
19 — Ставим кнопку и добавляем/убираем const
Вопросы к модулю
Ответы на вопросы
Тест к модулю
1 — Добавляем изображения
2 — Ссылка на логотип
3 — Ссылка на светлую тему (изображение)
3 — Ссылка на темную тему (изображение)
4 — Добавляем конфигурацию
5 — О документе pubspec.yaml
6 — SvgPicture
7 — Материал об Svg
8 — Указываем нужный package
9 — Инструкции по установке flutter_svg
10 — Работаем с полями и пространством формы
11 — InputDecoration & OutlineInputBorder
12 — Виджет TextField
13 — SizedBox
14 — SizedBox — Доп материал
15 — Expanded
16 — Expanded — Дополнительный материал
17 — Column
18 — Дополнительный материал — Column
19 — Container
20 — Container — резюме
21 — Примеры использования Container
22 — EdgeInsets
23 — EdgeInsets — теория
Вопросы к модулю
Ответы на вопросы
Тест к модулю
1 — Домашнее задание
2 — Ответ на домашнее задание
3 — Добавляем title
4 — Официальный канал Flutter на YouTube
5 — План на этот модуль
6 — Создаем новую структуру страницы + домашнее задание
7 — Домашнее задание — опускаем логотип и текст ниже
8 — Названия папок во flutter
9 — Принципы наименования документов и переменных
10 — Новый виджет — SafeArea
11 — Документация SafeArea — Домашнее задание
12 — Домашнее задание
13 — Разделяем пространством логотип и текст + Домашнее задание
14 — MediaQuery
15 — Widget Flexible + домашнее задание
16 — Подсказка по поводу фонового цвета
17 — Подсказка по поводу желтого квадрата
18 — Expanded — теория
19 — Expanded — Ссылка на примеры
20 — Ответ на задание о цвете фона
21 — Домашнее задание — logo должен быть наверху, а текст — в самом низу
22 — Домашнее задание
23 — MainAxisAlignment — как он работает? (практика)
24 — MainAxisAlignment — теория
25 — Домашнее задание — MainAxisAlignment
26 — План на следующие уроки этого модуля
27 — Домашнее задание
28 — Новая структура + домашнее задание
29 — Кнопки
30 — Добавляем элементы
31 — Flexible
32 — InkWell
33 — Домашнее задание
34 — Опускаем текст вниз страницы
35 — Домашнее задание
36 — Center — Домашнее задание
37 — Ответ на домашнее задание
38 — Последние штрихи
Вопросы к модулю
Ответы на вопросы
Тест к модулю
1 — Padding class — Для чего он нужен?
2 — Padding или Container?
3 — Padding — документация
4 — Домашнее задание из урока 1 — С картинками
5 — Ответ на домашнее задание
6 — Домашнее задание
7 — Домашнее задание — Продолжение
8 — Домашнее задание — Продолжение (Container)
9 — Растягиваем кнопку по ширине
10 — Вопросы по поводу double.infinity
11 — Домашнее задание
12 — Напоминание — InputDecoration()
13 — Ответ и новое домашнее задание
14 — Найдите мою ошибку
15 — В чем была ошибка?
16 — Домашнее задание
17 — Ответ и домашнее задание
18 — Новый компонент для TextField
19 — Refactoring — Часть 1 — Найдите ошибку
20 — Refactoring — Часть 2 — Домашнее задание
21 — Refactoring — Часть 3
22 — Required
23 — Var, final и const
24 — Что такое тема?
25 — Меняем фон приложения — Часть 1
26 — Меняем фон приложения — Часть 2
27 — Что такое тема? Продолжение
28 — Смена цвета шрифта — Часть 1
29 — Домашнее задание
30 — Смена цвета шрифта — Часть 2 — HEX
31 — Primary и secondary color — Часть 1 (Пример)
32 — Primary vs secondary color — Часть 2 (Теория)
33 — Домашнее задание
34 — Номер кода HEX
35 — Меняем шрифт при темной теме
36 — Домашнее задание
37 — Меняем семью шрифта
38 — Документация о смене семьи шрифта
39 — Theme Refactoring — Часть 1
40 — Theme Refactoring — Часть 2 — Домашнее задание
41 — Theme Refactoring — Часть 3 — Домашнее задание
42 — Theme Refactoring — Часть 4 — Домашнее задание
43 — Theme Refactoring — Домашнее задание ****
44 — Theme Refactoring — Классы ****
Вопросы к модулю
Ответы на вопросы
Тест к модулю
1 — Задание №1 — Padding
2 — Задание №2 — Кнопка
3 — Задание №3 — Граница
4 — Задание №3 — Граница — Refactoring
5 — Задание №4
6 — Цвет шрифта и тернарный оператор
7 — Цвет шрифта и тернарный оператор
8 — Документация
9 — Улучшение + домашнее задание
10 — Ответ на домашнее задание — Рефакторинг
11 — Следующие страницы которые мы создадим (их 3!)
12 — 3 страницы вместе (для вашего удобства)
13 — Что дальше?
14 — Navigator — Часть 1
15 — Navigator — Часть 2
16 — Документация о Flutter
17 — Домашнее задание из урока 15 — Макет
18 — Ответ на домашнее задание из урока 15
19 — Новая архитектура страниц Signup
20 — Домашнее задание на неделю
1 — Ответ на домашнее задание — Стили
2 — Ответ на домашнее задание — Новая страница (пока без навигации)
3 — Примечание к следующему уроку
4 — Добавление кнопки I didn't get the code
5 — Навигация — Создаем routes
6 — Навигация — Email Confirmation Code
7 — Домашнее задание
8 — Создание кнопки I didn't get the code
9 — Примечание
10 — Страница Create a password + Навигация
11 — Домашнее задание
12 — Рефакторинг кода папки Signup — 1
13 — Рефакторинг кода папки Signup — 2
14 — Рефакторинг кода папки Signup — 3
15 — Рефакторинг кода папки Signup — 4
16 — Домашнее задание
17 — Подсказки к заданию
1 — Отображаем HomeScreen
2 — Решаем технические проблемы — Часть 1
3 — Решаем технические проблемы — Часть 2
4 — Рефакторинг кода — Часть 1
5 — Рефакторинг кода — Часть 2
6 — Рефакторинг кода — Часть 3
7 — Рефакторинг кода — Часть 4
8 — Рефакторинг кода — Часть 5
9 — Рефакторинг кода — Часть 6 + Домашнее задание
10 — Рефакторинг кода — Часть 7
11 — Рефакторинг кода — Часть 8
12 — Рефакторинг кода — Часть 9
13 — Что такое Provider?
14 — Статьи для чтения
15 — Provider — Часть 1
16 — Provider — Часть 2
17 — Доступ к графам, которые заполняет пользователь
18 — Text Editing Controller
19 — Text Editing Controller
20 — Важно
21 — Text Editing Controller — Часть 1
22 — Text Editing Controller — Часть 2
23 — Text Editing Controller — Часть 3
24 — Text Editing Controller — Часть 4
25 — Text Editing Controller — Часть 5
26 — Text Editing Controller — Часть 6
27 — Text Editing Controller — Часть 7
28 — Text Editing Controller — Часть 8
29 — Text Editing Controller — Часть 9
30 — Text Editing Controller — Резюме
31 — Пошаговое объяснение — TextEditingController
32 — Что такое _signupEmailController?
33 — Что такое textInputField?
1 — Пример использования Provider
2 — Пример использования Provider — Разбор
Разбор примера Provider и ChangeNotifier
4 — Документация для изучения
5 — AuthProvider.dart
6 — Разбор синтаксиса — authprovider.dart
7 — Работаем над кнопкой Next
8 — Небольшой рефакторинг
9 — Работаем над кнопкой Next — Часть 2
10 — Внедряем Provider
11 — Устраняем ошибку
12 — Разбираем код — Часть 1
13 — Provider и ChangeNotifier
14 — Разбор синтаксиса — signup_email_screen.dart
15 — Разбираем код — Часть 2
16 — Разбор синтаксиса — main.dart
1 — Цель этого модуля
2 — Separation of concerns — Routes
3 — Separation of concerns — Теория и примеры
4 — Separation of concerns — Документация
5 — Добавляем пути в документ AppRoutes
6 — AppRoutes — продолжение (1)
7 — AppRoutes — продолжение (2)
8 — static Map getRoutes()
9 — AppRoutes — продолжение (3)
10 — AppRoutes — продолжение (4)
11 — AppRoutes — продолжение (5)
12 — AppRoutes — продолжение (6)
13 — Home — ошибка
14 — auth.screen — домашнее задание
15 — Логика документа auth.screen (1)
16 — Логика документа auth.screen (2)
17 — Домашнее задание
18 — Ответ на домашнее задание
19 — Домашнее задание
20 — Ответ на домашнее задание
21 — Local storage — Shared preferences (1)
22 — Shared Preferences — Теория и документация
23 — Local storage — Shared preferences (2)
24 — Local storage — Shared preferences (3)
25 — Local storage — Shared preferences (4)
26 — Local storage — Shared preferences (5)
27 — Домашнее задание (тернарный оператор)
28 — Ответ на домашнее задание
29 — Тестируем логику кода (1)
30 — Тестируем логику кода (2)
31 — Тестируем логику кода (3)
32 — Резюме сделанного
1 — Рефакторинг sharedPreferences (1)
2 — Final vs late
3 — Рефакторинг sharedPreferences (2)
4 — Рефакторинг sharedPreferences (3)
5 — Рефакторинг sharedPreferences (4)
6 — Рефакторинг sharedPreferences (5)
7 — Создаем модель пользователя
8 — Что такое Stream Builder?
9 — Используем StreamBuilder (1)
10 — Используем StreamBuilder (2)
11 — Используем StreamBuilder (3)
12 — Разъяснения по уроку 11
13 — Условия в StreamBuilder (1)
14 — Условия в StreamBuilder (2)
15 — PushNamed и pushReplacementNamed
16 — Условия в StreamBuilder (3)
17 — Условия в StreamBuilder (4)
18 — Страница HomePage
19 — Домашнее задание — HomePage
20 — Ответ — HomePage
21 — Кнопка Logout (1)
22 — Кнопка Logout (2)
23 — Login Page
24 — Материалы для дополнительного изучения
1 — Создаем loginWithEmailAndPassword
2 — Ответ на домашнее задание
3 — UserAccountModel
4 — Factory в UserAccountModel
5 — Что такое factory?
6 — Factory — документация
7 — Factory и рефакторинг (1)
8 — Рефакторинг (2)
9 — Домашнее задание
10 — Ответ на домашнее задание
11 — Домашнее задание
12 — Ответ на домашнее задание
13 — Домашнее задание
14 — Ответ на домашнее задание
15 — Тестируем код (1)
16 — Тестируем код (2)
17 — Домашнее задание
18 — Switch/case — ссылки
19 — Ответ на домашнее задание
20 — Домашнее задание
21 — Ответ на домашнее задание
22 — Рефакторинг (1)
23 — Рефакторинг (2)
24 — Рефакторинг (3)
25 — Рефакторинг (4)
26 — Рефакторинг (5)
27 — Рефакторинг (6)
28 — Рефакторинг (7)
29 — Рефакторинг (8)
30 — Рефакторинг (9)
31 — Рефакторинг (10)
32 — Рефакторинг (11)
33 — Домашнее задание
34 — Рефакторинг (12)
35 — Рефакторинг (13)
36 — Рефакторинг (14)
37 — Рефакторинг (15)
38 — Рефакторинг (16) + Домашнее задание
39 — Рефакторинг (17) + Ответ на домашнее задание
40 — Тестируем код (1)
41 — Тестируем код (2)
42 — Тестируем код (3)
43 — Документация по SnackBar + Домашнее задание
44 — Ответ на домашнее задание
45 — SnackBar
46 — Объяснение написанного кода (1)
47 — Объяснение написанного кода (2)
48 — Объяснение написанного кода (3)
1 — О модуле
2 — Работа с firebase store
3 — Создаем первую коллекцию пользователей (1)
4 — Создаем первую коллекцию пользователей (2)
5 — Создаем первую коллекцию пользователей (3)
6 — Создаем первую коллекцию пользователей (4)
7 — Создаем первую коллекцию пользователей (5)
8 — Создаем вторую коллекцию пользователей (1)
9 — Создаем вторую коллекцию пользователей (2)
10 — Создаем коллекцию публикаций (1)
11 — Создаем коллекцию публикаций (2)
12 — Копируем все ссылки
13 — Создаем коллекцию публикаций (3)
14 — Создаем коллекцию публикаций (4)
15 — Создаем коллекцию публикаций (5)
16 — Создаем коллекцию публикаций (6)
17 — Что будет дальше?
1 — Переименовываем документы (1)
2 — Рефакторинг (1)
3 — Рефакторинг (2)
4 — Рефакторинг (3)
5 — Рефакторинг (4)
6 — Информация о пользователе (1)
7 — Enum
8 — Применяем enum
9 — Информация о пользователе (2) + ДЗ
10 — Информация о пользователе (3) + ДЗ
11 — Документация firebase для изучения
12 — Информация о пользователе (4)
13 — Информация о пользователе (5)
14 — Информация о пользователе (6)
15 — Объяснение кода из урока 14
16 — Генерация идентификатора пользователя (1)
17 — Генерация идентификатора пользователя (2)
18 — Генерация идентификатора пользователя (3)
19 — Генерация идентификатора пользователя (4)
20 — Объяснения SHA-256, UTF-8, BASE64URL
21 — Генерация идентификатора пользователя (5)
22 — Генерация идентификатора пользователя (6)
23 — Генерация идентификатора пользователя (7)
24 — Генерация идентификатора пользователя (8)
1 — Добавляем опционные параметры
2 — Устанавливаем cloud package
3 — Устанавливаем соединение с Firebase
4 — Добавляем пользователя в коллекцию пользователей (1)
5 — Добавляем пользователя в коллекцию пользователей (2)
6 — Добавляем пользователя в коллекцию пользователей (3)
7 — Map< String, dynamic > Function (1)
8 — Map< String, dynamic > Function (2)
9 — Map< String, dynamic > Function (3)
10 — Домашнее задание (1)
11 — Ответ на домашнее задание (1)
12 — Домашнее задание (2)
13 — Ответ на домашнее задание (2)
14 — Тестируем код (1)
15 — Тестируем код (2)
16 — Тестируем код (3)
17 — Тестируем код (4)
1 — Откуда идет ошибка?
2 — Метод copyWith (1)
3 — Метод copyWith (2)
4 — Теория — copyWith({})
5 — Тестируем код
6 — Объяснение написанного кода
7 — Создаем 2 других пользователя
8 — Логика создания постов (1)
9 — Логика создания постов (2)
10 — Логика создания постов (3)
11 — Домашнее задание
12 — Ответ на домашнее задание
13 — Объяснение кода
14 — Логика создания постов (4)
15 — Объяснения и документация
16 — Логика создания постов (5)
17 — Домашняя страница (1)
18 — Объяснения кода
19 — Устранение ошибки и вывод постов в консоль
20 — Объяснение кода (1)
21 — Объяснение кода (2)
22 — Объяснение кода (3)
23 — Объяснение кода (4)
24 — Объяснение кода (5)
25 — Объяснение кода (6)
1 — Factory в Post
2 — Исправление ошибки
3 — Объяснение кода
4 — Данные поста и пользователей
5 — Объяснение кода — Post и add()
6 — 3 сценария — Посты
7 — Отображение постов — 1
8 — ListView — Объяснение
9 — Отображение постов — 2
10 — Устранение ошибки — «Нет разрешения»
11 — Отображение в консоли
12 — Устранение ошибки — «Null is not a subtype of type String»
13 — Устранение ошибки — «List dynamic is not a subtype of List Media»
14 — Устранение ошибки — «String is not a subtype of type Media Type» — 1
15 — Устранение ошибки — «String is not a subtype of type Media Type» — 2
16 — Объяснение кода — Post
17 — Объяснение кода — Media
18 — Отображение пользователей и постов — 1
19 — Отображение пользователей и постов — 2
20 — Отображение пользователей и постов — 3
21 — Отображение пользователей и постов — 4
22 — Отображение пользователей и постов — 5
23 — Виджет Card и объяснение кода
1 — Логотип клона инстаграм (1)
2 — Логотип клона инстаграм (2)
3 — Работа с padding (1)
4 — Работа с padding (2) + Домашнее задание
5 — Работа с padding (3) + Ответ на домашнее задание
6 — Домашнее задание
7 — Домашнее задание
8 — Ответ на домашнее задание
9 — Логотип клона инстаграм (3)
10 — Добавляем сердечко
11 — Домашнее задание
12 — Ответ на домашнее задание
13 — Логотип клона инстаграм (4)
14 — Увеличиваем пространство AppBar
15 — Небольшой рефакторинг
16 — BottomNavigationBar (1)
17 — BottomNavigationBar (2)
18 — Домашнее задание
19 — BottomNavigationBar (3)
20 — BottomNavigationBar (4)
21 — BottomNavigationBar (5)
22 — BottomNavigationBar (6)
23 — Домашнее задание
24 — BottomNavigationBar (7)
25 — Домашнее задание
26 — Домашнее задание
27 — BottomNavigationBar (8)
28 — BottomNavigationBar (9)
29 — BottomNavigationBar (10)
30 — BottomNavigationBar (11)
31 — BottomNavigationBar (12)
32 — BottomNavigationBar (13)
33 — BottomNavigationBar (14)
34 — BottomNavigationBar (15)
35 — Объяснение кода — Зачем мы прописали init?
36 — Объяснение кода
1 — План на эту неделю
2 — Новый виджет
3 — Установка Carousel Slider
4 — Объяснение кода из урока 3
5 — Carousel Slider
6 — Объяснение кода из урока 5
7 — Работа с carousel
8 — Объяснение кода из урока 7
9 — Что мы возвращаем?
10 — Объяснение кода из урока 9
11 — Отображаем видео (1)
12 — Объяснение кода из урока 11
13 — Отображаем видео (2)
14 — Объяснение кода из. урока 13
15 — Что такое toList()
16 — Опции в Carousel Slider
17 — Объяснение кода из урока 16
18 — Тестируем код
19 — Объяснение кода из урока 17
20 — Исправляем ошибку (1)
21 — Исправляем ошибку (2)
22 — Исправленный код
23 — Объяснение кода из урока 22
24 — Исправляем ошибку (3)
25 — Объяснение кода из урока 24
26 — Исправляем ошибку (4)
27 — Объяснение кода из урока 26
27 — Исправляем ошибку (5)
28 — Дорабатываем отображение видео
29 — Объяснение кода из урока 28
30 — Воспроизведение видео (1)
31 — Воспроизведение видео (2)
32 — Воспроизведение видео (3)
33 — Объяснение кода из уроков 30, 31 и 32
34 — Устраняем глюк
35 — Добавляем паузу
36 — Объяснение кода из урока 35
37 — Почему пауза перед play?
38 — Добавляем круги под фото и видео
39 — Объяснение кода из урока 38
40 — Последнее улучшение и новые элементы
41 — Firebase — Posts
42 — Мои ссылки на фото и видео из Firebase — Пользователь 1
43 — Мои ссылки на материалы из Firebase — Пользователь 2
1 — Создаем новый компонент
2 — Иконка сердца
3 — Домашнее задание
4 — Иконки: оптимизируем код (1)
5 — Иконки: оптимизируем код (2)
6 — Иконки: оптимизируем код (3)
7 — Иконки: стиль (1)
8 — Иконки: стиль (2)
9 — Иконки: стиль (3)
10 — Иконки: стиль (4)
11 — Иконки: стиль (5)
12 — Ник пользователя и описание поста (1)
13 — Ник пользователя и описание поста (2)
14 — Ник пользователя и описание поста (3)
15 — Работа с датой (1)
16 — Отделение текста от картинки
17 — Иконки: стиль (6)
18 — Домашнее задание
19 — Ответ на домашнее задание
20 — Работа с датой (2)
21 — Работа с датой (3)
22 — Домашнее задание
23 — Ответ на домашнее задание
24 — Ник пользователя и аватарка
25 — Кнопка Follow
26 — Улучшаем стиль (1)
27 — Улучшаем стиль (2)
28 — Улучшаем стиль (3)
29 — Улучшаем стиль (4)
30 — Улучшаем стиль (5)
31 — Stack — что это?
32 — Улучшаем стиль (6)
33 — Улучшаем стиль (7)
34 — Улучшаем стиль (8)
35 — Форматируем число лайков (1)
36 — Форматируем число лайков (2)
1 — Меняем компонент на компонент с состоянием
2 — Работаем с watch
3 — Что такое watch?
4 — Notify listeners (1)
5 — Notify listeners (2)
6 — Notify listeners (3)
7 — Работаем с инфой о пользователе (1)
8 — Работаем с инфой о пользователе (2)
9 — Работаем с инфой о пользователе (3)
10 — Работаем с инфой о пользователе (4)
11 — Работаем с инфой о пользователе (5)
12 — Работаем с инфой о пользователе (6)
13 — Работаем с инфой о пользователе (7)
14 — Объяснение кода (1) — user-profile.provider.dart
15 — Объяснение кода (2) — user-profile.dart
16 — Объяснение кода (3) — предыдущий документ
17 — Объяснение кода (4) — use-profile.service.dart
18 — Работа с комментами (1)
19 — Работа с комментами (2)
20 — Работа с комментами (3)
21 — Работа с комментами (4)
22 — Работа с комментами (5)
23 — Работа с комментами (6)
24 — Работа с комментами (7)
25 — Работа с комментами (8)
26 — Задание
27 — Работа с комментами (9)
28 — Работа с комментами (10)
29 — Код
30 — Объяснение кода
1 — Визуал модального окна — Часть 1
2 — Визуал модального окна — Часть 2
3 — Домашнее задание
4 — Ответ на домашнее задание
5 — Домашнее задание
6 — Ответ на домашнее задание
7 — Устраняем ошибку
8 — Объяснение кода
9 — Работаем с сервисом — Часть 1
10 — Объяснение кода
11 — Работаем с сервисом — Часть 2
12 — Объяснение кода
13 — Работаем с сервисом — Часть 3
14 — Объяснение кода
15 — Работаем с сервисом — Часть 4
16 — Объяснение кода
17 — Работаем с сервисом — Часть 5
18 — Объяснение кода
19 — Работаем с сервисом — Часть 6
20 — Объяснение кода
21 — Работаем с сервисом — Часть 7
22 — Объяснение кода
23 — Работаем с сервисом — Часть 8
24 — Объяснение кода
25 — Работаем с сервисом — Часть 9
26 — Объяснение кода
27 — Работаем с сервисом — Часть 10
28 — Объяснение кода
29 — Работа с кнопкой submit
30 — Объяснение кода
31 — Тестируем логику
32 — Отображение коммента
1 — Домашнее задание — Файл Gallery
2 — Ответ на домашнее задание
3 — Домашнее задание — Графа поиска
4 — Ответ на домашнее задание
5 — Стиль поля
6 — Объяснение кода
7 — StreamBuilder — Домашнее задание
8 — Объяснение кода
9 — Ответ на домашнее задание
10 — StreamBuilder — 2
11 — Объяснение кода
12 — Зачем три List?
13 — StreamBuilder — 3
14 — Объяснение кода
15 — Файл GalleryThumbNail — Часть 1
16 — Файл GalleryThumbNail — Часть 2
17 — Объяснение кода
18 — Домашнее задание
19 — Ответ на домашнее задание
20 — Отображение видео — Часть 1
21 — Отображение видео — Часть 2
22 — Отображение видео — Часть 3
23 — Объяснение кода
24 — Отображение видео — Часть 4
25 — Отображение видео — Часть 5
26 — Визуальное улучшение
1 — Домашнее задание — Explore
2 — Ответ на домашнее задание
3 — UserProfileService — 1
4 — UserProfileService — 2
5 — Объяснение кода
6 — UserProfileService — 3
7 — UserProfileService — 4
8 — Объяснение кода
9 — UserProfileService — 5
10 — Объяснение кода
11 — Explore page — 1
12 — Объяснение кода
13 — Explore page — 2
14 — Домашнее задание
15 — Ответ на домашнее задание
16 — Объяснение кода
17 — Explore Page — 3
18 — Explore page — 4
19 — Объяснение кода
20 — Исправляем ошибку и тестируем код
21 — Домашнее задание
22 — Ответ на домашнее задание — 1 (написано с ошибкой)
23 — Ответ на домашнее задание — 2
24 — Объяснение кода
25 — Улучшаем стиль
26 — Объяснение кода
27 — Добавляем isLoading — 1
28 — Объяснение кода
29 — Добавляем isLoading — 2
30 — Объяснение кода
1 — Создаем страницу пользователя
2 — Домашнее задание
3 — Ответ на домашнее задание — 1
4 — Ответ на домашнее задание — 2
5 — Стиль страницы
6 — Объяснение кода
7 — Создаем кнопку Follow
8 — Объяснение кода
9 — Используем кнопку Follow
10 — Домашнее задание
11 — Ответ на домашнее задание
12 — Домашнее задание
13 — Ответ на д/з и Новое домашнее задание
14 — Ответ на домашнее задание — Часть 1
15 — Улучшаем код
16 — Улучшаем код — 2
17 — Улучшаем код — 3
18 — Домашнее задание
19 — Ответ на домашнее задание — 1
20 — Ответ на домашнее задание — 2
21 — Решаем проблему с цветом Follow — 1
22 — Решаем проблему с цветом Follow — 2
23 — Получаем профиль пользователя — 1
24 — Получаем профиль пользователя — 2
25 — Объяснение кода
26 — Кнопка Follow
27 — Получаем профиль пользователя — 3
28 — Получаем профиль пользователя — 4
29 — Получаем профиль пользователя — Часть 5
30 — Объяснение кода
31 — Работа над аватаркой
32 — Посты, подписчики и подписки — 1
33 — Посты, подписчики и подписки — 2
34 — Посты, подписчики и подписки — 3
35 — Посты, подписчики и подписки — 4
36 — Посты, подписчики и подписки — 5
36 — Посты, подписчики и подписки — 6
37 — Объяснение кода
38 — Отображаем посты
39 — Объяснение кода
40 — Рефакторинг — 1
41 — Рефакторинг — 2
42 — Разъединяем элементы
43 — Объяснение кода
44 — Продолжение
1 — Новый компонент
2 — Выносим посты отдельно
3 — Редактируем документ — 1
4 — Редактируем документ — 2
5 — Домашнее задание
6 — Ответ на домашнее задание
7 — Домашнее задание
8 — Ответ на домашнее задание
9 — Небольшой корректив
10 — Инкорпорируем InkWell
11 — Домашнее задание
12 — Ответ на домашнее задание — Часть 1
13 — Ответ на домашнее задание — Часть 2
14 — Ответ на домашнее задание — Часть 3
15 — Исправляем ошибки — 1
16 — Исправляем ошибки — 2
17 — Объяснение кода
18 — Исправляем ошибки — 3
19 — Объяснение кода
20 — Домашнее задание
21 — Домашнее задание — продолжение
22 — Домашнее задание — продолжение — 2
23 — Исправляем ошибки — 4
24 — Объяснение кода
25 — Реализовываем новый функционал — 1
26 — Реализовываем новый функционал — 2
27 — Реализовываем новый функционал — 3
28 — Тестируем код
29 — Объяснение кода
30 — Шпаргалка по модулю
31 — Как из списка List Post мы создаём структуру List UserPostMedia
1 — План модуля
2 — Логика для открытия камеры
3 — Даем доступ к камере и микрофону — 1
4 — Даем доступ к камере и микрофону — 2
5 — Даем доступ к камере и микрофону — 3
6 — Даем доступ к камере и микрофону — 4
7 — Даем доступ к камере и микрофону — 5
8 — Даем доступ к камере и микрофону — 6
9 — Тестируем функциональность
10 — Поле для caption — 1
11 — Поле для caption — 2
12 — Новый класс
13 — Установка нового package MIME
14 — Логика на определение типа файла — 1
15 — Логика на определение типа файла — 2
16 — Объяснение кода
17 — Исправляем ошибку
18 — Объяснение кода
19 — Логика на определение типа файла — 3
20 — Объяснение кода
21 — Убираем _
22 — Почему нужно убрать _?
23 — Отображаем изображения — 1
24 — Отображаем изображения — 2
25 — Объяснение кода
26 — Проблема с кодом
27 — Устраняем проблему — 1
28 — Объяснение кода
29 — Устраняем проблему — 2
30 — Объяснение кода
31 — Что такое Uri?
32 — Устраняем проблему — 3
33 — Объяснение кода
34 — Что такое File?
35 — Устраняем проблему — 4
36 — Устраняем проблему — 5
37 — Рефакторинг (всего на 3 минуты!!)
38 — Объяснение кода — 1
39 — Объяснение кода — 2
1 — PostService() — 1
2 — PostService() — 2
3 — PostService() — 3
4 — PostService() — 4
5 — PostService() — 5
6 — PostService() — 6
7 — PostService() — 7
8 — Объяснение кода прошлых уроков — 1
9 — Объяснение кода прошлых уроков — 2
10 — Объяснение кода прошлых уроков — 3
11 — PostService() — 8
12 — PostService() — 9
13 — PostService() — 10
14 — Объяснение кода — 1
15 — Объяснение кода — 2
16 — Объяснение кода — 3
17 — Устраняем ошибку
18 — Объяснение кода
19 — PostService() — 11
20 — Меняем Post
21 — Объяснение кода
22 — Меняем пост — 2
23 — Объяснение кода
24 — Отображение поста — 1
25 — Объяснение кода
26 — Отображение поста — 2
27 — Объяснение кода
28 — Отображение поста — 3
29 — Отображение поста — 4
30 — Отображение поста — 5
31 — Отображение поста — 6
32 — Отображение поста — 7
33 — Отображение поста — 8
34 — post.service.dart
35 — posts.screen.dart
36 — post.dart
37 — media.dart
38 — home-media-slider.dart
39 — Если что-то не работает
40 — Мой pubspec.yaml
41 — Объяснение post.service.dart
1 — Новый блок кода в Post.dart
2 — ListViewBuilder — 1
3 — ListViewBuilder — 2
4 — ListViewBuilder — 3
5 — ListViewBuilder — 4
6 — Объяснение кода
7 — Логика запуска видео — 1
8 — Логика запуска видео — 2
9 — Устраняем ошибки
10 — Объяснение кода
11 — Отображение caption
12 — Video slider
13 — Логика запуска видео — 3
14 — Объяснение кода
15 — Логика запуска видео — 4
16 — Логика запуска видео — 5
17 — Объяснение кода
18 — Устраняем ошибку
19 — Код video media slider
20 — Объяснение кода
21 — Сравнение — что было и что я добавила
22 — Отображение видео — 1
23 — Отображение видео — 2
24 — Условие по circles под постами
25 — VideoProgressIndicator — 1
26 — VideoProgressIndicator — 2
27 — Код
28 — VideoProgressIndicator — 3
29 — Рефакторинг — 1
30 — Рефакторинг — 2
31 — Рефакторинг — 3
32 — Рефакторинг — 4
33 — Домашнее задание — 1
34 — Домашнее задание — 2
35 — Домашнее задание — 3
36 — Ответ на домашние задания
37 — Домашнее задание — 4
38 — Ответ на домашнее задание №4
39 — Рефакторинг — 5
40 — Устраняем визуальный глюк
41 — Визуал страницы — 1
42 — Визуал страницы — 2
43 — Визуал страницы — 3
44 — Визуал страницы — 4
45 — Визуал страницы — 5
46 — Визуал страницы — 6
47 — Визуал страницы — 7
1 — Appbar() — 1
2 — Appbar() — 2
3 — Аватарка — 1
4 — Аватарка — 2
5 — Аватарка — 3
6 — Аватарка — 4
7 — Аватарка — 5
8 — Разделительная линия
9 — Работа над полями — 1
10 — Работа над полями — 2
11 — Работа над полями — 3
12 — Работа над полями — 4
13 — Работа над полями — 5
14 — Text controllers — 1
15 — Text controllers — 2
16 — Text controllers — 3
17 — Text controllers — 4
18 — Text controllers — 5
19 — Text controllers — 6
20 — Text controllers — 7
21 — Email controller — 1
22 — Email controller — 2
23 — Placeholders
24 — Подчищаем код
25 — Поле пола gender — 1
26 — Поле пола gender — 2
27 — Поле пола gender — 3
28 — Поле пола gender — 4
29 — Поле пола gender — 5
30 — Поле пола gender — 6
31 — Поле пола gender — 7
1 — Добавляем dispose()
2 — Работаем над сменой аватарки — 1
3 — Работаем над сменой аватарки — 2
4 — Обновление профиля пользователя — 1
5 — Обновление профиля пользователя — 2
6 — Обновление профиля пользователя — 3
7 — Обновление профиля пользователя — 4
8 — Обновление профиля пользователя — 5
9 — Работаем над сменой аватарки — 3
10 — Работаем над сменой аватарки — 4
11 — Объяснение кода — 1
12 — Объяснение кода — 2
13 — Работаем над сменой аватарки — 5
14 — Объяснение кода — 3
15 — Работаем над сменой аватарки — 6
16 — Обновление профиля пользователя — 6
17 — Объяснение кода — 4
18 — Объяснение кода — 5
19 — Устранение ошибок — 1
20 — Устранение ошибок — 2
21 — Устранение ошибок — 3
22 — Устранение ошибок — 4
23 — Устранение ошибок — 5
24 — Устранение ошибок — 6
25 — Устранение ошибок — 7
26 — Устранение ошибок — 8
27 — Устранение ошибок — 9
1 — Что будет в этом модуле
2 — Устраняем баг — видео — 1
3 — Создаем новые поля — 1
4 — Создаем новые поля — 2
5 — Устраняем баг — видео — 2
6 — Устраняем баг — видео — 3
7 — Устраняем баг — видео — 4
8 — Устраняем баг — видео — 5
9 — Новый сервис подписки — 1
10 — Новый сервис подписки — 2
11 — Transaction
12 — Кнопка подписаться — 1 (Draft)
13 — Кнопка подписаться — 2
14 — Логика подписок — 1
15 — Логика подписок — 2
16 — Проблема с context — 1
17 — Проблема с context — 2
18 — Проблема с context — 3
19 — Проблема с context — 4
20 — Проблема с context — 5
21 — Логика подписок — 3
22 — Логика подписок — 4
23 — Логика подписок — 4
24 — Домашнее задание
25 — Ответ
26 — Ошибка в возвращаемом типе — 1
27 — Ошибка в возвращаемом типе — 2
28 — Ошибка в возвращаемом типе — 3
29 — Тест кода
30 — Домашнее задание
1 — Создаем виртуальное устройство
2 — Ошибка SDK 23 vs SDK 21
3 — Ошибка build gradle 7.1
4 — Ошибка gradle wrapper
5 — Ошибка — несовместимость версий — 1
6 — Ошибка — несовместимость версий — 2 (Draft)
7 — Ошибка — несовместимость версий — 3
8 — Ошибка — несовместимость версий — 4
9 — Ошибка — название приложения
10 — Потеря соединения с устройством
11 — Android SDK — 1
12 — Android SDK — 2
13 — Android SDK — 3
14 — Android SDK — 4
15 — Android SDK — 5
16 — Android SDK — 6
17 — Иконка Инстаграм (для следующего урока)
18 — Меняем иконку приложения — 1
19 — Меняем иконку приложения — 2
20 — Скачиваем Java
21 — Цифровая подпись — 1
22 — Цифровая подпись — 2
23 — Меняем имя приложения — 1
24 — Меняем имя приложения — 2
25 — Устраняем ошибку — 1
26 — Устраняем ошибку — 2
27 — Устраняем ошибку — 3
28 — Устраняем ошибку — 4
29 — Публикуем приложение — 1
30 — Публикуем приложение — 2
31 — Публикуем приложение — 3
32 — Публикуем приложение — 4
33 — Публикуем приложение — 5
34 — Публикуем приложение — 6