ANDROID CAREER

Telegram-канал с новостями

Обзор контента

Привет! Это роадмап «Андоид Карьера» для подготовки к собесу на Senior Android Developer.

Включает 10 разделов. Каждый раздел - отдельная Notion-страница.

Некоторые разделы включают свои вложенные страницы, они размещаются в самом верху страницы.

Job Interview

Материалы для прохождения интервью на позицию Senior Android Developer: статьи, записи мок-собесов, что рассказывать о себе, ключевые навыки, вопросы мне, вопросы работодателю.

System Design

Материалы по системному дизайну и проектированию: статьи, записи мок-собесов, функциональные требования, нефункциональные требования, вопросы и ответы, примеры задач.

Live Coding

Материалы по лайв-кодингу: записи мок-собесов, примеры задач.

Screening

Список вопросов которые задаются на этапе скрининга с рекрутером.

Soft

Материалы по софтам: cultural fit, behavioral interview, записи мок-собесов, методологии разработки.

Algorithms

Материалы по алгоритмической секции: статьи, записи мок-собесов, временная и пространственная сложность алгоритмов, оптимизация, бинарный поиск, деревья, алгоритмы сортировки, разбор задач с литкода.

Java

Описание языка Java: Object Class. Basic types, Reference types, Strings, Arrays, Serialization, Modifiers, IO, Exceptions, Enums, Generics, Lambda.

Collections

Описание работы коллекций в Java: Iterator List ArrayList LinkedList Set HashSet TreeSet SortedSet Queue Map TreeMap Hashtable.

GC

Описание работы сборщика мусора в Java: GC. GS roots. finalize WeakReference SoftReference PhantomReference ReferenceQueue WeakHashMap. Утечки памяти.

Thread

Описание работы класса Thread в Java: Thread isDaemon isAlive interrupt sleep yield join Priority.

Concurrent

Работа с многопоточностью в Java: Heap, Stack, Process, Thread, Method Area, deadlock, mutex, Concurrent Collections, Runnable ThreadPool ThreadPoolExecutor ScheduledThreadPoolExecutor Executor ExecutorService ScheduledExecutorService Future synchronized volatile atomic.

HashMap

Работа с HashMap в Java: создание коллекции, добавление элемента, получение элемента, удаление элемента, Node synchronizedMap LinkedHashMap ConcurrentHashMap.

RxJava

Описание работы RxJava - фреймворка для реактивного программирования: Observable Single Completable Maybe Flowable PublishSubject ReplaySubject BehaviorSubject AsyncSubject UnicastSubject Schedulers Disposable CompositeDisposable subscribeOn observeOn map flatMap concatMap switchMap distinct merge zip.

Kotlin

Описание языка Kotlin: Any Unit Nothing. Basic types, Null safety, Properties, Lambdas, Enums, Special Identifiers, Access Modifiers, Exceptions, Smart casts, Operator overloading, Context Receivers, DSL, Functional Interfaces, Type Aliases, Annotations, Concurrent, Math, Preconditions.

Collection

Описание работы коллекций и последовательностей в Kotlin: Iterable Collection List MutableList Set MutableSet Map MutableMap Sequences.

Generics

Описание дженериков и вариативностей в Kotlin: out in where. Ковариантность, контравариантность, инвариантность, бивариантность.

Delegates

Описание работы делегатов в Kotlin: by lazy notNull. Properties.

Object

Описание работы объектов в Kotlin: object data object companion object. Анонимные объекты.

Data Class

Описание работы классов данных в Kotlin: data class. Методы: equals hashCode toString copy componentN.

Value Class

Описание работы классов значений в Kotlin: @JvmInline. Generic value class.

Sealed Class

Описание работы запечатанных классов в Kotlin: sealed class sealed interface.

Inner Class

Описание работы внутренних классов в Kotlin: модификатор inner.

Inline Functions

Описание встраиваемых функций в Kotlin: inline noinline crossinline reified. Inline properties.

Infix Functions

Описание работы инфиксных функций в Kotlin: оператор infix.

Extension Functions

Описание работы функций-расширений в Kotlin.

Scope Functions

Описание работы функций области видимости в Kotlin: let run with apply also takeIf.

Context Receivers

Описание работы приемников контекста в Kotlin.

Coroutines

Описание работы корутин в Kotlin: suspend runCatching runBlocking launch async await yield Job SupervisorJob CoroutineContext withContext CoroutineScope supervisorScope GlobalScope viewModelScope Dispatcher CoroutineExceptionHandler Channel. Backpressure. Structures cuncurrency.

Flow

Описание работы оператора Flow в Kotlin: callbackFlow StateFlow SharedFlow. Разбор более 50 операторов над потоками.

Channels

Описание работы каналов в Kotlin: send receive receiveAsFlow close producer consumeEach.

Coroutine Cases

Описание кейсов работы с корутинами.

Multiplatform

Описание работы с Kotlin Multiplatform: expect actual. Kotlin Native, Best practices, совместимость с Java, Ktor, список библиотек.

Multiplatform Cases

Описание кейсов работы с мультиплатформой: установить brew, ruby, cocoapods. Сгенерировать ресурсы.

Android Platform

Описание работы с платформой Android: документация, роадмап, блоги на Medium, YouTube-каналы.

SDK

Описание работы с Android SDK: Manifest, Permissions, Notifications, Reflection API, Context Application BroadcastReceiver ContentProvider Bundle Parcelable LruCache.

Service

Описание базового компонента Service: Lifecycle, Background, Foreground, Types, Bound IBinder IntentService JobIntentService JobScheduler AlarmManager DownloadManager WakeLock.

Concurrent

Работа с многопоточностью в Android: Main thread, Worker thread, Looper ThreadLocal Message MessageQueue Handler runOnUiThread.

Collection

Описание работы коллекций в Android: ArrayMap ArraySet ScatterMap ObjectFloatMap IntIntPair FloatFloatPair LongLongPair.

View

Описание работы класса View в Android: Lifecycle, invalidate requestLayout forceLayout ViewGroup ViewStub.

Activity

Описание базового компонента Activity: Lifecycle, Launch mode, OnBackPressedDispatcher taskAffinity ActivityManager.

Fragment

Описание работы фрагментов в Android.

Intent

Описание работы с Intent в Android: явный интент, неявный интент, PendingIntent.

Releases

Что нового в версиях Android: начиная с Android 5.0 Lollipop (API 21) и заканчивая Android 14 Upside Down Cake (API 34).

Network

Работа с сетью в Android: Protocol Buffers, gRPC, JSON, WebSockets, GraphQL, REST, OkHTTP.

UI

Работа с дизайном и пользовательским интерфейсом в Android: единицы измерения, слои, 9-Patch, HEX Colors Density Plurals RenderThread Bitmap.

UI Components

Описание работы с компонентами UI в Android: Анимации, RemoteViews FrameLayout LinearLayout RelativeLayout ConstraintLayout TextView RecyclerView ScrollView CoordinatorLayout ViewPager2.

Architecture

Описание архитектуры Android-приложений: Clean Architecture, Architecture patterns, OOP, Modularization, Development Principles, Сlasses and objects relationships, Design Patterns, class abstract class interface.

Build

Описание сборки Android-приложения: Product Flavors, BuildVariants. Gradle ProGuard R8 APK AAB NDK JNI ART ANR AIDL.

Gradle Scripts

Инструкции для сборки проекта, создания APK, запуска проверок кода, установки переменных среды, отображения подключенных зависимостей.

DI

Работа с внедрением зависимостей в Android: библиотека Koin, аннотация @Inject.

Test

Тестирование приложений Android: UnitTest, AndroidTest, MemoryLeak, JUnit, Robolectric, Roborazzi, Mockito, MockK, Expresso, Kaspresso.

ExoPlayer

Описание работы с видео в Android: Exoplayer, Советы по оптимизации.

SDK (Deprecated)

Устаревшие компоненты Android SDK: SharedPreferences AppWidget.

Android Jetpack

Описание набора библиотек Android Jetpack: Hilt ViewModel Room WorkManager LiveData ViewBinding.

Hilt

Описание Hilt - фреймворка для внедрения зависимостей: аннотации, component scopes, отложенная инициализация.

ViewModel

Описание ViewModel - класса для работы с бизнес-логикой экрана: ViewModel AndroidViewModel Assisted ViewModelStore ViewModelProvider Lifecycle SavedStateHandle.

Room

Описание Room - локальной базы данных: ForeignKey @Database @Entity @Dao.

WorkManager

Описание WorkManager - библиотеки для выполнения фоновых задач.

LiveData (Deprecated)

Описание LiveData - класса-держателя данных, который можно наблюдать в рамках заданного жизненного цикла: LiveData MediatorLiveData observe onserveForever viewLifecycleOwner setValue postValue.

ViewBinding (Deprecated)

Описание ViewBinding - библиотеки для генерации файла привязки для каждого макета XML: настройка в Gradle-модуле. Привязка внутри Activity, Fragment, View и ViewHolder. Библиотека ViewBindingPropertyDelegate.

Compose

Описание фреймворка для UI - Jetpack Compose. Жизненный цикл. Рекомпозиция. Аннотации: @Composable @Preview @ReadOnlyComposable @Stable @Immutable. Функции: remember rememberSaveable rememberUpdateState mutableStateOf derivedStateOf. ViewCompositionStrategy. CompositionLocal. nestedScrollConnection.

Side Effects

Описание работы побочных эффектов в Compose: SideEffect LaunchedEffect DisposableEffect.

UI Components

Описание компонентов UI в Compose: Snackbar Text TextField ConstraintLayout Slider Canvas.

Android Studio

Инструкции для настройки IDE Android Studio и эмуляторов.

Keyboard Shortcuts

Список всех необходимых хоткеев, без которых невозможно работать в Android Studio.

Git

Описание команд: fetch pull push merge rebase revert commit squash ament checkout cherry-pick stash reflog tag log.

Commands

Примеры выполнения команд Git: принудительно записать изменения в репозиторий, отменить слияние, создать релиз, порешать конфликты, откатить изменения, откатиться к предыдущему коммиту и др.

GitHub

Управление репозиторием на Github: настроить Dependabot, подключить Github Actions, добавить code_owners и pull_request_template.

Libraries & Samples

Список библиотек и фреймворков, без которых не сделать работающее приложение. Список open-source проектов для изучения Android и Kotlin Multiplatform.

Android

Список библиотек и приложений для Android.

Kotlin Multiplatform

Список библиотек и приложений для Kotlin Multiplatform.