ANDROID DEVELOPER
Навчіться кодити на Kotlin і створюйте мобільні застосунки для системи Android з нуля.
Олександр Мазуренко
Senior Android Developer у GlobalLogic

30 занять
[щопонеділка та щочетверга]Після курсу ви зможете кодити на Kotlin, проєктувати застосунки з нуля, писати під них бекенд і фронтенд, інтегрувати зовнішні сервіси та тестувати функціонал.
щоби вивчити першу мову програмування Kotlin, навчитися писати бекенд & фронтенд для мобільних застосунків і розпочати карʼєру в ІТ
щоби вивчити сучасні підходи до розробки мобільних застосунків, навчитися працювати з Android Studio та змінити напрямок діяльності
щоби навчитися розробляти застосунки для системи Android з нуля, створити власний пет-проєкт для портфоліо та здобути професію, актуальну наступні 15–20 років

• 8/10 смартфонів працюють на операційній системі Android. Це означає, що ринок потребує фахівців, які підтримуватимуть наявні застосунки та розроблятимуть нові.
• Систему Android широко використовують не тільки на смартфонах, але і в smart-речах (IoT): від автомобілів до «розумних» прасок та пральних машин.
• Приємні фінансові перспективи: Junior-розробник отримує в середньому $ 900, Middle — $ 2700, Senior — $ 5000. Після цього курсу ви здобудете кваліфікацію Junior Android Developer.
• Результат завжди можна показати, скинути друзям чи батькам і сказати «дивись, це моя робота!»
• Є ймовірність, що вашим застосунком користуватимуться сотні тисяч користувачів.
Вивчите базовий синтаксис мови Kotlin, опануєте принципи обʼєктно-орієнтованого та реактивного програмування.
Навчитеся проєктувати Android-застосунки, тестувати власний код, інтегрувати різні сервіси та завантажувати медіафайли в застосунок.
З нуля створите застосунок для пошуку визначних місць у заданому радіусі й формування оптимального маршруту та налаштуєте інтеграцію з Google Maps.
Отримаєте розбір поширених запитань на співбесідах від лектора, а також 4 відеоуроки від нашого HR-відділу з рекомендаціями щодо оформлення CV, портфоліо, профілю на LinkedIn і спілкування з рекрутерами.

- Розглянете інструменти, які вивчатимете на курсі.
- Ознайомитеся з бінарним кодом і основними принципами роботи обчислювальних машин.
- Дізнаєтеся, що таке компілятор і в чому полягає головна задача розробника.
- Зрозумієте переваги мов програмування, які використовують Java Virtual Machine.
- Ознайомитеся з особливостями мови Kotlin.
- Навчитеся запускати простий код на Kotlin.
- Вивчите основні типи даних на Kotlin.
- Розберете різницю між var, val та const.
- Зрозумієте значення функції main().
- Ознайомитеся з основними типами операцій на Kotlin.
- Вивчите конструкції if-else і when та розберете особливості їхнього використання.
- Створите програми додавання та віднімання простих чисел із використанням операторів вводу-виводу.
- Дізнаєтесь, в яких випадках потрібно використовувати циклічні конструкції.
- Навчитеся розрізняти forEach, forEachIndexed, while та їхні задачі.
- Навчитеся користуватися Ranges ― простішим і зрозумілішим механізмом для реалізації циклічних задач.
- Вивчите особливості масиву та розглянете приклади його використання.
- Дізнаєтеся, що таке індексація елементів масиву.
- Зрозумієте, як працює оперативна памʼять під час створення змінних різних типів і масивів та як відбувається доступ до окремих елементів масиву на апаратному рівні.
- Навчитеся створювати масиви, додавати, звертатися та видаляти елементи масиву.
- Дізнаєтесь, як користуватися рядковим типом даних String, і вивчите основні оператори для роботи з ним.
- Дізнаєтеся, що таке клас і обʼєкт.
- Розберете принципи обʼєктно-орієнтованого програмування (ООП): наслідування, інкапсуляція, поліморфізм.
- Навчитеся писати extended function для готових класів.
- Дізнаєтесь, як використовувати інтерфейси, коли необхідно додати окремі методи, які не входять у базовий клас.
- Розглянете патерн dependency injection і зрозумієте, як він допомагає реалізовувати прозору композицію.
- Навчитеся розрізняти залежності is-a і has-a та зрозумієте переваги композиції над наслідуванням.
- Навчитеся писати extended-функції для подальшого спрощення процесу розробки.
- Розберете основні структури даних та дізнаєтесь, які переваги має кожна в залежності від задачі.
- Навчитеся використовувати готові функції для обробки колекції: ітерування, мапінг, фільтрацію і трансформацію.
- Навчитеся реалізувати виключення.
- Дізнаєтесь, як і чому виникла система Android.
- Розберете переваги та недоліки системи Android.
- Встановите Android Studio та розберете основні компоненти Android-застосунку: Activity, Service, BroadcastReceiver, ContentProvider, Android Manifest.
- Дізнаєтесь, як працює і який життєвий цикл має компонент Activity.
- Навчитеся додавати UI-елементи до Activity та відслідковувати натискання.
- Дізнаєтеся, навіщо використовувати систему контролю версій під час розробки.
- Встановите та налаштуєте Git.
- Навчитеся розрізняти стани файлів у репозиторії, перемикатися між комітами та відкочувати зміни до заданого коміту.
- Дізнаєтесь, як створювати нові гілки та віддалені репозиторії, як завантажувати й вивантажувати дані тощо.
- Вивчите основні лейаути та розберете кейси їхнього використання.
- Навчитеся змінювати параметри UI-елементів залежно від вимог, аналізувати дерево UI-елементів і додавати залежності в build.gradle-файл.
- Дізнаєтесь, як використовувати основні параметри ConstraintLayout.
- Дізнаєтесь, як запустити одну Activity в іншій через Intent.
- Розберете різницю між Explicit та Implicit Intent.
- Вивчите особливості використання Bundle під час передачі інформації через Intent.
- Навчитеся користуватися ADB (Android Device Bridge) та відправляти через нього Intent й інші базові команди.
- Усвідомите значення багатопотоковість для застосунків із користувацькими інтерфейсами.
- Розглянете основні способи запобігання race condition та синхронізації змінних.
- Розберете переваги Executors над прямим запуском threads.
- Дізнаєтесь, як взаємодіє UI-потік з Event Loop.
- Навчитеся запускати задачу в окремому потоці та передавати її результат у головний потік.
- Вивчите основи обміну даними через http/https-протокол.
- Навчитеся виконувати вебзапит в окремому потоці та виводити його результат.
- Навчитеся виконувати запит на отримання зображення, перетворювати його на Bitmap та відображати в UI-елементі.
- Опануєте бібліотеки для відображення та трансформації зображень Glide та Picasso.
- Опануєте бібліотеки Retrofit та OkHttp для вебзапитів.
- Навчитеся розрізняти основні види інтернет-відповідей.
- Дізнаєтесь, як трансформувати JSON-обʼєкти.
- Навчитеся додавати GsonFactory в ланцюжок обробки Retrofit, запускати асинхронний запит через Retrofit, застосовувати та писати власні інтерсептори для OkHttp.
- Опануєте фреймворк RxJava для оптимізації роботи з багатопотоковістю.
- Дізнаєтесь, як відобразити список даних за допомогою ListView.
- Ознайомитеся з патерном Adapter.
- Навчитеся використовувати RecyclerView.
- Здобудете скіли роботи з вбудованими анімаціями.
- Зрозумієте, навіщо потрібен юзер-флоу.
- Навчитеся передавати інформацію між декількома фрагментами, додавати фрагменти як статично, так і через контейнер.
- Дізнаєтесь, як робити альтернативну розмітку для планшетів і інших девайсів із великим екраном.
- Зрозумієте, чому під час зміни конфігурації втрачаються дані.
- Розглянете основні способи збереження даних у разі зміни конфігурації.
- Навчитеся використовувати ViewModel як елемент MVVM-архітектури.
- Дізнаєтесь, як зберігати дані під час закриття застосунку та відновлювати стан застосунку в разі повторного відкриття.
- Розберетесь у видах і типах баз даних.
- Дізнаєтесь, як побудувати SQL-запит до бази, та вивчите основні оператори.
- Навчитеся здійснювати огляд баз даних за допомогою вбудованих плагінів або інших програм.
- Навчитеся доцільно використовувати сервіс або окремий потік відносно поставленої задачі.
- Ознайомитеся з можливими обмеженнями в роботі сервісу.
- Розглянете WorkManager як альтернативу Service.
- Навчитесь імплементувати нотифікації та виводити в них результати роботи.
- Дізнаєтеся, що таке корутини, та зрозумієте, в чому їхня перевага над іншими способами виконання асинхронних задач.
- Навчитеся запускати корутини та паралельне виконання декількох задач у корутині з виводом кінцевого результату.
- Здобудете скіли рефакторингу коду.
- Дізнаєтеся, що таке Dependency Injection.
- Опануєте бібліотеку Koin для Dependency Injection на Kotlin.
- Навчитеся рефакторити застосунок за допомогою бібліотеки Koin.
- Опануєте бібліотеки Dagger 2 та Hilt.
- Розглянете різновиди тестування.
- Навчитеся користуватися бібліотеками JUnit та Mockito для unit-тестування.
- Опануєте бібліотеки Espresso та UI Automator для тестування користувацького інтерфейсу.
- Навчитеся користуватися бібліотекою Room для тестування бази даних.
- Ознайомитеся з методологією Test Driven Development, коли спочатку пишуть тести, а потім код, який відповідає тестам.
- Дізнаєтесь, як анімувати параметри UI-елементів за допомогою ObjectAnimator.
- Навчитесь організовувати хореографію анімації за допомогою AnimatorSet та реалізувати перехідні анімації між фрагментами.
- Опануєте бібліотеки Dynamic Animation та Motion Layout для створення анімацій.
- Дізнаєтесь, як додавати сервіси в застосунок.
- Зареєструєте акаунт у Firebase.
- Навчитеся використовувати вбудовану систему реєстрації та логіну у власному застосунку.
- Навчитеся реалізовувати простий бекенд за допомогою Firebase Realtime Database.
- Дізнаєтесь, як додати Google-мапи у власний застосунок.
- Дізнаєтесь, як відтворювати аудіо- та відеофайли в застосунку.
- Опануєте бібліотеку ExoPlayer для відтворення медіаконтенту.
- Навчитесь інтегрувати media session для подальшого розширення функціональності застосунку.
- Ознайомитесь із сучасним декларативним способом розробки користувацьких інтерфейсів.
- Ознайомитесь із сучасним декларативним способом розробки користувацьких інтерфейсів.
- Розробите застосунок для визначення цікавих місць у заданому радіусі та формування оптимального маршруту з інтеграцією з Google-мапами.
- Презентуєте застосунок лектору і колегам.
- Дізнаєтеся, про що запитують Junior/Trainee Android Developers на співбесідах.
- Отримаєте рекомендації від лектора щодо самопрезентації.