Тимур Чеберда

Тимур Чеберда 

iOS разработчик, веду roadmap iOS разработчика

1 075subscribers

513posts

Showcase

3
goals8
8 of 8 paid subscribers
Если на меня подпишется 8 человек, то я смогу заказывать картинки у дизайнера и делать материал еще более наглядным и лучше доносить до вас 🎉
1 of 4
$171.81 of $277 raised
Роадмап по архитектурным паттернам: визуальный роадмап + уроки к нему. Для примера берите роадмап по SwiftUI (который уже готов)
$92.2 of $7 685 raised
Получил оффер? Буду рад символическому «спасибо» - любая сумма уместна. Это поможет в улучшении и продвижении нашего сообщества!
$20.75 of $20.8 raised
Крус по GIT от А до Я
$276.64 of $277 raised
КММ проект: струячим серию выпусков, с нуля, среднего размера(10-12 экранов), стримы и видео(стрим без лишнего), донатерам код(после каждой серии).

KMP Урок 5: Коллекции, преобразования, агрегации и Sequence

Если ты прошёл первые четыре урока, у тебя уже есть база: типы, условия, null safety, функции, лямбды, extensions, классы, data class, sealed class, object и companion object. То есть ты уже можешь описывать данные, состояния и поведение.
Но приложение почти никогда не работает с одним объектом. Обычно у тебя список пользователей, словарь настроек, уникальные теги без повторов, заказы по статусам, экран с секциями, фильтрация, сортировка, поиск и т.д.
И как-раз пятый урок закрывает именно это - коллекции в Kotlin и то, как с ними работать
List, Set, Map и изменяемость. Разобрал, почему List в Kotlin - это не “вечный immutable список”. Почему MutableList можно передать как List, но это не создаёт snapshot.
Почему val фиксирует ссылку. И почему наши привычки с работой через let / var здесь напрямую не переносится.
List, Array и IntArray. В Swift мы очень часто берём обычный Array, а в Kotlin есть List, Array и примитивные массивы вроде IntArray.
Разобрал, что выбирать по умолчанию, где Array нужен для interop / vararg, почему IntArray важен в горячих численных циклах и почему arrayOf(1, 2, 3) == arrayOf(1, 2, 3) даст false, хех.
Set и Map. Разобрал уникальность, порядок, equals / hashCode, стабильность ключей и элементов. Почему изменяемый объект в Set может “потеряться”, почему ключи Map должны быть стабильными, чем опасны nullable значения в словаре и почему map[key] == null не всегда значит “ключа нет”.
Преобразования коллекций. map, filter, mapNotNull, filterNotNull, filterIsInstance, flatMap, flatten, zip, chunked, windowed, distinct. Всё с привязкой к Swift: где совпадает с map / filter / compactMap, где Kotlin даёт готовый оператор, а где в Swift пришлось бы писать руками или идти в swift-algorithms.
Агрегация, поиск и группировка. reduce vs fold, sumOf, average, maxByOrNull, maxOfOrNull, associateBy, groupBy, partition, find, any, all, none, singleOrNull.
Отдельно разобрал главный промежуточный вопрос: что происходит на пустой коллекции. Где будет 0, где null, где NaN, где исключение, а где внезапно true, как у all {}.
В конце, как обычно, домашка по нарастающей:
1. easy поработать со списками, фильтрацией и безопасным доступом
2. easy+ собрать индексы и группировки через associateBy / groupBy
3. medium обработать список заказов: фильтрация, сортировка, агрегация, группировка и Sequence там, где он реально нужен
По времени где-то на 180-200 минут. Т.к yрок большой, но и это одна из самых практичных тем: коллекции будут почти в каждом KMP файле, который ты откроешь.
Ну и само собой: вопросы, предложения, замечания - в лс или комменты всегда жду!
[ссылка на новый урок]
Subscription levels2

Базовый уровень

$6.3 per month
• Доступ во все разделы notion: роадмап iOS разработчика, подготовка к собеседованиям, изучение разных тем по iOS и другие. Получение обновлений каждые 2 недели.
• Домашние задания по SwiftUI, UIKit.
• Разбор в формате видео домашних заданий по UIKit.
• Интерактивный роадмап по SUI: карта, контент, материал, описание тем.
• Ежемесячные созвоны, воркшопы, стримы + uikit
Доступ к телеграмм приложению для подготовки и обучению
+ chat

Не базовый уровень

$13.5 per month
 • Все перечисленное из тира "базовый".
 • Приоритет для участия в меропритиях.
 • Разбор в формате видео домашних заданий по SwiftUI.
 • NFT диплом о прохождении роадмапа.
 • Подпись во всех чатах
 • КМP роадмап в ноушене.
 • Размещение в таблице менторов.
 • Ежемесячные созвоныворкшопыстримы, мк + sui. Глубже материал (да-да, не удивляйся)
Расширенный доступ к телеграмм приложению для подготовки и обучению
+ chat
Go up