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

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

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

1 101subscribers

537posts

Showcase and bundles

3
A bundle is a collection, compilation, playlist, or catalog of posts that saves you from searching through the blog and lets you buy the entire content series in a single click.
goals8
8 of 8 paid subscribers
Если на меня подпишется 8 человек, то я смогу заказывать картинки у дизайнера и делать материал еще более наглядным и лучше доносить до вас 🎉
1 of 4
$156.41 of $252 raised
Роадмап по архитектурным паттернам: визуальный роадмап + уроки к нему. Для примера берите роадмап по SwiftUI (который уже готов)
$83.94 of $6 996 raised
Получил оффер? Буду рад символическому «спасибо» - любая сумма уместна. Это поможет в улучшении и продвижении нашего сообщества!
$18.89 of $18.9 raised
Крус по GIT от А до Я
$251.84 of $252 raised
КММ проект: струячим серию выпусков, с нуля, среднего размера(10-12 экранов), стримы и видео(стрим без лишнего), донатерам код(после каждой серии).

KMP Урок 4: Классы, объекты, data class, sealed class

Если ты прошёл первые три урока, у тебя уже есть базовые типы, if / when, null safety, функции, лямбды и extensions. Код ты и читаешь, и пишешь. А вот описывать данные и состояния так, как принято в Kotlin - пока ещё нет.
Четвёртый урок закрывает как раз это. Считай, фундамент, на котором стоит модель данных любого приложения:
Классы и конструкторы. Свойства объявляются прямо в заголовке - class User(val name: String, var age: Int), без дублирования "параметр - присваивание - поле", к которому мы привыкли в Swift init. Логика инициализации уходит в init блок. И сюрприз для свифтовика: класс в Kotlin final по умолчанию, чтобы наследоваться - помечай open. А в Swift ровно наоборот, да-да не удивляйтесь.
Свойства, lateinit и by lazy. Кастомные get / set, backing field через field, private set - прямой аналог private(set) var. lateinit для DI и setup, by lazy для ленивых вычислений с кешированием. А ещё разобрал, почему аналог willSet / didSet в Kotlin - это делегат Delegates.observable и кастомный сеттер тут ни при чём.
data class. Рабочая лошадка: equals, hashCode, toString, copy() и componentN() компилятор пишет за тебя. Но есть очень интересный момент - data class в Kotlin это reference type, а не value, как Swift struct.
sealed class и sealed interface. Тот самый аналог Swift enum с associated values. Компилятор знает полный список наследников, поэтому when получается exhaustive без else: добавил новый вариант - и все when в коде сразу подсветятся ошибкой. Плюс data object для состояний без данных. И отдельно - как эта иерархия выглядит на стороне Swift через SKIE.
object и companion object. Синглтон в одну строку - object Logger {} вместо static let shared + private init() + shared. companion object - это "статика" класса. Разобрал, когда брать object, когда companion, а когда object expression.
Каждая тема - со сравнением Swift vs Kotlin. Чтобы было наглядно видно и понятно: вот так мы пишем в Swift и вот так мы пишем в Kotlin. В конце, как обычно, домашка по нарастающей:
• easy - карточка пользователя
• easy+ - результат сетевого запроса
• medium - целая система авторизации
По времени где-то на 120-150 минут. Ну и самособой вопросы? Предложения? В лс или комментах всегда жду!
[ссылка на новый урок]
Subscription levels2

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

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

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

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