Курс на Stepik
Обложка курса «Kotlin Coroutines & Flow для Android: от основ до production» на Stepik
4 590 ₽

Kotlin Coroutines & Flow для Android: от основ до production 4.694

Открыть на
STEPIK.ORG

Kotlin Coroutines и Flow для Android: от первых корутин до production-архитектуры. Вы начнете с простых примеров по принципу быстрого старта и шаг за шагом дойдете до полноценного мобильного приложения с реальным API. Научитесь писать асинхронный код без callback hell, работать с потоками данных, управлять состоянием экрана и строить современную Android-архитектуру.

Показатель Текущие показатели Рост
Значение 🏆 Рейтинг 3 дн 7 дн 30 дн
Количество учеников на курсе «Kotlin Coroutines & Flow для Android: от основ до production»Учеников на курсе 16
Сертификаты, выданные на курсе «Kotlin Coroutines & Flow для Android: от основ до production»Сертификатов выдано 0
Отзывы о курсе «Kotlin Coroutines & Flow для Android: от основ до production»Отзывов получено 11
Рейтинг курса «Kotlin Coroutines & Flow для Android: от основ до production»Рейтинг курса 4.694
Курсы в пакете «Kotlin Coroutines & Flow для Android: от основ до production»Курсов в пакете 2
Уроки в курсе «Kotlin Coroutines & Flow для Android: от основ до production»Количество уроков 90
Тесты в курсе «Kotlin Coroutines & Flow для Android: от основ до production»Количество квизов 161
Задачи с кодом в курсе «Kotlin Coroutines & Flow для Android: от основ до production»Количество задач с кодом 3
Время прохождения курса «Kotlin Coroutines & Flow для Android: от основ до production»Время прохождения курса
Стоимость курса «Kotlin Coroutines & Flow для Android: от основ до production»Стоимость курса 4 590 ₽
Обновления курса «Kotlin Coroutines & Flow для Android: от основ до production»Обновления курса
Дата публикации курса «Kotlin Coroutines & Flow для Android: от основ до production»Дата публикации курса
Последнее обновление курса «Kotlin Coroutines & Flow для Android: от основ до production»Последнее обновление
Сложность normal
4.694
из 5
11 отзывов
★★★★★
9
★★★★
2
★★★
0
★★
0
0
Barmaley
Barmaley
18 часов назад

Ставлю курсу твердую четверку. Что понравилось: 1) понравились некоторые интересные технические тонкости, которые интересно было "пощупать" через реальный код + вариант реализации паттерна Outbox 2) примеры с VM-фабриками были тоже очень познавательными. 3) примеры с combine да, очень хорошие - в коммерческих приложениях это главная "рабочая лошадка" :) Что не понравилось: 1) В паре мест автор дает идею и тут же отказывается от нее. Если идти по курсу последовательно, то в коде остаются ошибки, которые нужно исправлять самостоятельно. Так, например, было в SyncWorker, где автор попала в тупик собственного подхода - отказа от DI + хранения основных data-классов приложения (репозиториев) в MainActivity. Как мне кажется, курс смотрелся более выигрышно, если бы репозитории, БД и классы сетевого слоя хранились бы в отдельном Application-классе с ленивой инициализацией, а SyncWorker получал бы нужную ссылку через отдельный SyncWorkerFactory, например, так: class SyncWorkerFactory( private val repository: SyncRepository, ) : WorkerFactory() { override fun createWorker( appContext: Context, workerClassName: String, workerParameters: WorkerParameters ): ListenableWorker? { return when (workerClassName) { SyncWorker::class.java.name -> { SyncWorker(appContext, workerParameters, repository) } else -> null } } } а Application-класс определили бы как Configuration.Provider и добавили бы туда код: val syncRepository by lazy { SyncRepository( db = db, api = api, ) } override val workManagerConfiguration: Configuration get() = Configuration.Builder() .setWorkerFactory(SyncWorkerFactory(syncRepository)) .build() Ну и в целом, собирать конгломерат классов с ЖЦ уровня приложения внутри MainActivity - это не очень хороший пример. Учитывая, что курс могут проходить начинающие разработчики, я бы все-таки переработал код курса, чтобы плохие практики не перенимали ученики. 2) В проекте сделана не очень хорошая штука - классы распределяются по пакетам по типам, а не по функциональности. Например, VM-ки - в отдельный пакет "viewModel", dao-классы - в DAO и т.д. В крупных коммерческих приложениях так не делают никогда, потому что: а) Код пишут несколько команд и за каждым пакетом закрепляется свой оунер. Все кодоунеры перечислены в классе CODOWNERS и на код-ревью при изменении кода, закрепленного за отдельной командой, бот будет "тегать" именно того человека, который имеет отношение к измененном пакету в проекте. Если все VM-ки будут в одном пакете, начнется хаос - бот будет тегать всех подряд, включая людей из совсем других команд. б) фича не всегда пишется "на века". Например, сегодня в приложку добавили таблицу "leaderboard", а завтра у менеджмента зачешется левая пятка и скажут, что фича не востребована пользователями и ее нужно выпилить. Конкретно в случае этого проекта весь код удаляемой фичи нужно будет собирать по разным пакетам и удалять. А если фича хранится в отдельном модуле или пакете, то удаление для остальных команд будет максимально простым - просто дропнули нужный каталог и все. 3) В коде в нескольких местах есть ошибки + нет импортов, что делает менее удобным добавление кода - приходится тратить дополнительное время на ненужную работу.

Илья Другов
Илья Другов
3 недели назад

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

Barmaley
Barmaley
1 месяц назад

Курс понравился. Где-то его сравнивали с курсом Виноградова, но как мне кажется, они удачно дополняют друг друга. Причем, с этого курса лучше начать, а продолжить изучение уже у Виноградова, т.к. его курс более объемный. Материал изложен очень хорошо с интересными аналогиями - чувствуется, как Яна старалась, подбирая максимально наглядные примеры и упражнения. Если курс будет дорабатываться, то хотелось бы пожелать автору расширить блок с Flow, обогатив его дополнительными упражнениями - все-таки это "рабочие лошадки" в реальных коммерческих приложениях, на которых пишутся крупные продукты. В Android, например, combine из нескольких Flow - это ежедневная рутина. А так мне понравилось, своих денег курс однозначно стОит.

Нина Семкина
Нина Семкина
1 месяц назад

Курс понравился. Главный плюс в практике, потому что почти к каждой главе есть задания. На них хорошо набиваешь руку и закрепляешь теорию. Примеры для объяснений подобраны очень удачно и наглядно, поэтому всё сразу встает на свои места. Наполнение грамотное: все базовые темы по корутинам разобраны и поданы доступным языком. Для фундамента знаний это самое то

Анастасия Зенцова
Анастасия Зенцова
1 месяц назад

Здравствуйте! На новом месте работы переучилась с Java на Kotlin разработчика. Язык мне очень нравится, но встречающиеся в коде suspend-ы, контексты и тд постоянно меня пугали. Искала чтобы поизучать для введения и наткнулась на рекомендацию курса в сообществе в телеграмм по языку Kotlin. Порекомендовала курс еще двоим своим коллегам и мы начали проходить теорию и заниматься практикой. Курс содержательный, для первого знакомства подходит. Очень хочу пройти курс второй раз, чтобы более вдумчиво изучить тему, которые не очень уложились. Но мне понравилось, что много примеров, где можно прям писать код и отправлять в систему на проверку. А также есть после теории тесты. Тесты порой бывают запутанные и не очень логичные, но в целом 90% хорошие вопросы для проверки усвояемости материалов курса. В планах еще прочитать главу из книги "Kotlin в действии" (в новом издании добавлена глава по корутинам) Спасибо Яне за создание курса. Теперь при написании промышленно кода я могу более осмысленно использовать корутины и проводить код-ревью качественнее.

Alexander Ilinykh
Alexander Ilinykh
8 месяцев назад

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

Ответ
автора
Яна Седова
Яна Седова
1 год назад

Спасибо за конструктивную критику, это очень полезно!)