Manifest Android Interview (Українське Видання)
Manifest Android Interview (Українське Видання)
Вичерпний посібник з успішного проходження технічних інтерв'ю з Android
Про книгу
Manifest Android Interview - це вичерпний посібник, створений для вдосконалення ваших навичок розробки під Android через 108 питань для співбесіди з детальними відповідями, 162 додаткових практичних завдань та 50+ розділів "Професійні поради для майстерності". Питання для співбесіди в основному зосереджені на розробці під Android — включаючи Фреймворк, UI, бібліотеки Jetpack та Бізнес-логіку — а також Jetpack Compose, охоплюючи Основи, Середовище виконання та UI.
Кожне питання містить глибокі пояснення, проводячи вас структурованим шляхом навчання Android та Jetpack Compose, одночасно зміцнюючи ваше розуміння ключових концепцій. Наприкінці кожного питання ви знайдете практичні завдання, розроблені для симуляції реальних ситуацій на співбесіді, що дозволяє вдосконалити ваші навички розв'язання задач та ефективно підготуватися до технічних обговорень.
Ця книга містить відповідні ресурси та додаткові посилання для тих, хто прагне вивчити більше поза її змістом. Було докладено зусиль, щоб забезпечити якомога більше виносок для ключових термінів, які можуть бути незнайомими або складними, гарантуючи, що початківці зможуть легко зрозуміти складні концепції, поглиблюючи своє розуміння.
Розділ "Професійні поради для майстерності" глибше занурюється в просунуті теми, розкриваючи внутрішні структури API та пропонуючи експертні погляди, щоб утримувати інтерес досвідчених розробників. Для розробників середнього рівня цей розділ служить цінним ресурсом для зміцнення експертизи в Android та формування більш аналітичного підходу до технічних викликів.
Я сподіваюся, що ця книга допоможе вам отримати нові перспективи, відточити навички розв'язання проблем та побудувати всебічне розуміння розробки під Android та його екосистем. Незалежно від того, чи готуєтесь ви до наступної важливої співбесіди, чи просто прагнете опанувати розробку під Android, я заохочую вас мислити за межами реалізації — зрозуміти чому, експериментувати з різними підходами та продовжувати навчання з цікавістю та пристрастю.
Щоб дізнатися цікаві факти, для кого це призначено, що охоплює, а що ні, перегляньте блог-пост Manifest Android Interview: The Ultimate Guide to Cracking Android Technical Interviews.
Зміст
- Передмова
- Відгуки
- Manuel Vivo (Staff Android Engineer at Bumble, Ex Android DevRel at Google)
- Matt McKenna (Senior Android Engineer at Block, Android GDE)
- Alejandra Stamato (Lead Android Engineer at HubSpot, Ex Android DevRel at Google)
- Simona Milanovic (Senior Android Developer Relations Engineer)
- Про цю книгу
- Для кандидатів на співбесіду
- Для інтерв’юерів
- Спонсори
- Stream
- Звіти про проблеми та обговорення
- 0. Питання для співбесіди з Android
- Категорія 0: Фреймворк Android
- П) 0. Що таке Android?
- П) 1. Що таке Intent?
- П) 2. Яке призначення PendingIntent?
- П) 3. Які відмінності між Serializable та Parcelable
- П) 4. Що таке Context і які типи Context існують?
- З) 5. Що таке клас Application?
- П) 6. Яке призначення файлу AndroidManifest?
- З) 7. Опишіть життєвий цикл Activity
- П) 8. Опишіть життєвий цикл фрагмента
- П) 9. Що таке Service?
- З) 10. Що таке BroadcastReceiver?
- П) 11. Яка мета ContentProvider, і як він забезпечує безпечний обмін даними між додатками?
- Q) 12. Як обробляти зміни конфігурації?
- Q) 13. Як Android керує пам’яттю, і як уникнути витоків пам’яті?
- П) 14. Які основні причини помилок ANR і як можна запобігти їх виникненню?
- П) 15. Як ви обробляєте глибокі посилання?
- П) 16. Що таке tasks та back stack?
- П) 17. Яке призначення Bundle?
- П) 18. Як передавати дані між Activities або Fragments
- П) 19. Що відбувається з Activity під час змін конфігурації?
- З) 20. Що таке ActivityManager?
- П) 21. Які переваги використання SparseArray
- П) 22. Як обробляти дозволи під час виконання?
- П) 23. Які ролі виконують Looper, Handler та HandlerThread?
- Q) 24. Як відстежувати винятки?
- П) 25. Що таке варіанти збірки та продуктові варіації?
- П) 26. Як забезпечити доступність?
- З) 27. Що таке файлова система Android?
- З) 28. Що таке Android Runtime (ART), Dalvik та Dex Compiler?
- П) 29. Які відмінності між файлом APK та файлом AAB?
- П) 30. Що таке оптимізація R8?
- П) 31. Як зменшити розміри додатку?
- П) 32. Що таке процес в Android-додатках і як операційна система Android керує ним?
- Категорія 1: Android UI - Views
- П) 33. Опишіть життєвий цикл View
- З) 34. У чому різниця між View та ViewGroup?
- Q) 35. Чи використовували ви колись ViewStub і як ви оптимізуєте продуктивність інтерфейсу користувача за його допомогою?
- П) 36. Як реалізувати користувацькі відображення?
- П) 37. Що таке Canvas і як його використовувати?
- П) 38. Що таке інвалідація в системі View?
- П) 39. Що таке ConstraintLayout?
- П) 40. Коли слід використовувати SurfaceView замість TextureView?
- П) 41. Як працює RecyclerView внутрішньо?
- П) 42. Яка різниця між Dp та Sp?
- П) 43. Яке призначення зображення nine-patch?
- П) 44. Що таке Drawable і як він використовується в розробці UI?
- П) 45. Що таке Bitmap в Android і як ефективно працювати з великими растровими зображеннями?
- П) 46. Як реалізувати анімації?
- П) 47. Що таке Window?
- П) 48. Як відобразити веб-сторінку?
- Категорія 2: Бібліотека Jetpack
- П) 49. Що таке бібліотека AppCompat?
- П) 50. Що таке Material Design Components (MDC)?
- П) 51. Які переваги використання ViewBinding?
- П) 52. Як працює DataBinding?
- П) 53. Що таке LiveData?
- З) 54. Що таке Jetpack ViewModel?
- П) 55. Що таке бібліотека Jetpack Navigation?
- П) 56: Що таке Dagger 2 та Hilt?
- З) 57. Що таке бібліотека Jetpack Paging?
- П) 58. Що таке Базовий профіль?
- Категорія 3: Бізнес-логіка
- П) 59. Як би ви керували фоновими завданнями тривалого виконання?
- П) 60. Як серіалізувати формат Json в об’єкт
- Q) 61. Як ви обробляєте мережеві запити для отримання даних, і які бібліотеки чи методи ви використовуєте для забезпечення ефективності та надійності?
- П) 62. Чому система посторінкового завантаження важлива для завантаження великих наборів даних і як її можна реалізувати з RecyclerView?
- П) 63. Як завантажувати та відображати зображення з мережі?
- П) 64. Як зберігати та підтримувати дані локально?
- П) 65. Як ви реалізуєте функції офлайн-першого підходу?
- П) 66. Де запускати завдання для завантаження початкових даних? LaunchedEffect проти ViewModel.init()
- Категорія 0: Фреймворк Android
- 1. Питання для співбесіди з Jetpack Compose
- Категорія 0: Основи Compose
- П) 0. Яка структура Jetpack Compose?
- П) 1. Які фази має Compose?
- П) 2. Чому Jetpack Compose є декларативним UI-фреймворком?
- П) 3. Що таке рекомпозиція і коли вона відбувається? Також, як вона пов’язана з продуктивністю додатка?
- П) 4. Як внутрішньо працює функція, що компонується?
- П) 5. Що таке стабільність у Jetpack Compose і як вона пов’язана з продуктивністю?
- П) 6. Чи маєте ви досвід оптимізації продуктивності Compose шляхом покращення стабільності?
- П) 7. Що таке композиція і як її створити?
- П) 8. Які стратегії доступні для міграції проєкту на базі XML до Jetpack Compose?
- П) 9. Чому завжди слід тестувати продуктивність Compose у режимі релізу?
- П) 10. Які ідіоми Kotlin часто використовуються в Jetpack Compose?
- Категорія 1: Середовище виконання Compose
- П) 11. Що таке Стан і які API використовуються для керування ним?
- П) 12. Які переваги ви можете отримати від підняття стану?
- П) 13. Які відмінності між remember та rememberSaveable?
- П) 14. Як безпечно створити область корутини у функціях для компонування?
- З) 15. Як обробляти побічні ефекти всередині компонувальних функцій?
- Q) 16. Яке призначення rememberUpdatedState і як він працює?
- П) 17. Яке призначення produceState і як він працює?
- Q) 18. Що таке snapshotFlow і як воно працює?
- П) 19. Яке призначення derivedStateOf і як він допомагає оптимізувати перекомпозицію?
- П) 20. Який життєвий цикл функцій, що компонуються, або Композиції?
- П) 21. Що таке SaveableStateHolder?
- П) 22. Яке призначення системи знімків?
- З) 23. Що таке mutableStateListOf та mutableStateMapOf
- П) 24. Як безпечно збирати Flow Kotlin у функціях, що компонуються, запобігаючи витокам пам’яті?
- З) 25. Яка роль CompositionLocals?
- Категорія 2: Compose UI
- П) 26. Що таке Modifier?
- З) 27. Що таке Layout?
- З) 28. Що таке Box?
- П) 29. Які відмінності між Arrangement та Alignment?
- П) 30. Що таке Painter?
- З) 31. Як завантажувати зображення з мережі?
- П) 32. Як можна ефективно відображати сотні елементів у списку, уникаючи UI зависань?
- П) 33. Як реалізувати пагінацію з лінивими списками?
- П) 34. Що таке Canvas?
- П) 35. Чи використовували ви коли-небудь модифікатор graphicsLayer?
- П) 36. Як реалізувати візуальні анімації в Jetpack Compose?
- П) 37. Як здійснювати навігацію між екранами?
- П) 38. Як працює попередній перегляд і як ви з ним працюєте?
- П) 39. Як писати модульні тести для компонентів та екранів Compose UI?
- П) 40. Що таке тестування знімків екрану і як воно допомагає забезпечити узгодженість інтерфейсу користувача під час розробки?
- П) 41. Як забезпечити доступність у Jetpack Compose?
- Категорія 0: Основи Compose
60-денна гарантія 100% задоволення від Leanpub
Протягом 60 днів після покупки ви можете отримати 100% відшкодування за будь-яку покупку на Leanpub у два кліки.
Технічно це ризиковано для нас, оскільки файли книги чи курсу залишаться у вас в будь-якому випадку. Але ми настільки впевнені в наших продуктах і послугах, а також в наших авторах і читачах, що раді запропонувати повну гарантію повернення грошей за все, що ми продаємо.
Дізнатися, наскільки щось хороше, можна лише спробувавши, і завдяки нашій 100% гарантії повернення грошей, це абсолютно безризиково!
Отже, немає причин не натиснути кнопку "Додати в кошик", чи не так?
Переглянути повні умови...
Отримуйте $8 з покупки за $10 та $16 з покупки за $20
Ми виплачуємо 80% роялті за покупки вартістю $7.99 або більше та 80% роялті мінус 50 центів фіксованої комісії за покупки між $0.99 та $7.98. Ви заробляєте $8 з продажу за $10 та $16 з продажу за $20. Тож, якщо ми продамо 5000 неповернутих примірників вашої книги за $20, ви заробите $80,000.
(Так, деякі автори вже заробили набагато більше на Leanpub.)
Фактично, автори заробилипонад $14 мільйонів пишучи, публікуючи та продаючи на Leanpub.
Дізнайтеся більше про написання на Leanpub
Безкоштовні оновлення. Без DRM.
Якщо ви купуєте книгу на Leanpub, ви отримуєте безкоштовні оновлення, поки автор оновлює книгу! Багато авторів використовують Leanpub для публікації своїх книг у процесі написання. Усі читачі отримують безкоштовні оновлення, незалежно від того, коли вони придбали книгу чи скільки заплатили (включно з безкоштовними).
Більшість книг Leanpub доступні у форматі PDF (для комп'ютерів) та EPUB (для телефонів, планшетів та Kindle). Формати, в яких доступна книга, показані у верхньому правому куті цієї сторінки.
Нарешті, книги Leanpub не мають безглуздого DRM-захисту, тому ви можете легко читати їх на будь-якому підтримуваному пристрої.
Дізнайтеся більше про формати електронних книг Leanpub та де їх читати