Как стать автором
Обновить

Комментарии 15

Полезная подборка. Я, дурак, писал свое первое приложение на Java, а ведь Kotlin набирает обороты.

Количество просмотров не равно “самому полезному»

Да, это немного жульничество, но цель жульничества — приглашение к дискуссии, чтобы читатели накидали свои варианты, что им было максимально полезно. Пока нет набора мнений адекватных людей, «количество просмотров» — лучший показатель.

Какой механизм выбора «самый лучший бесплатный видеокурс» вы можете предложить?

Есть множество путей, которыми мог пойти новичок. Например он может попытаться найти комьюнити по своему уровню, рано или поздно может выйти на https://t.me/kotlin_start, где его направят на FAQ группы https://git.io/JfV6K со ссылками на курсы от Jetbrains. Либо он может зайти на официальный сайт https://kotlinlang.org и увидеть документацию, youtube канал и прочий контент. Создатели языка проделывают хорошую работу в этом направлении и согласитесь, что качественные материалы скорее будешь ожидать от создателя. Либо методом поиска можно найти разные платформы https://openedu.ru/catalog/#query=kotlin . Вариантов конечно же больше, но все они требуют погружения в предметную область. Выучить язык по курсам "Learn Kotlin in 12 Minutes" будет затруднительно. Не ограничивайтесь только роликами с ютуба. Выбор механизма "самого лучшего бесплатного видеокурса" остается за вами.

спасибо!

Ещё есть курс по Kotlin и Kotlin для Android разработки от университета ИТМО на базе платформы "Открытое образование" openedu.ru.

Ну для меня пока самое сложное - понять корутины. Вот вроде смотрю видео, даже на русском, а сделать аналог из RxJava не понимаю как.

Расскажите, что на RxJava делали

Observable.amb как реализовать?

А этот amb должен работать для Flow или для suspend функций?

Для suspend, есть N источника данных, вызываются все параллельно, нужен результат только от 1го пришедшего, остальные отменяются.

А еще вот такой кейс, есть paged-API и данные надо вычерпать все. Т/е запрос данных это последовательный вызов API-метода с нужной страницей, при этом если какой-то из запросов вернется с ошибкой, то возвращать в результате накопленные данные (к примеру K из N запросов).

Кажется, что тут корутины предстают во всей красе. Если я правильно понял, то можно написать императивный код в таком духе.

suspend fun fetchPage(page: Int): Result<Data> 

suspend fun fetchData(n: Int): List<Data> {
    val data = mutableListOf<Data>()
    for (i in 0 until n) {
        when (val result = fetchPage(i)) {
            is Ok -> data.add(result.value)
            is Error -> break
        }
    }
    return data
}
Зарегистрируйтесь на Хабре, чтобы оставить комментарий