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.