Курс Розробка для Android Pro
Після курсу Ви зможете:
- Розуміти повний цикл розробки програми
- Створювати клієнт-серверні додатки
- Розуміти, яка архітектура краща й де саме
- Користуватися БД в Android з мінімальними витратами
- Розуміти актуальні тенденції у світі Android
Програма курсу:
1. Загальна характеристика мови Java
- Історія мови Java
- Байт-код
- Віртуальна машина Java (JVM)
- Трансляція, інтерпретація та компіляція
- Вихід з програми та завершення її роботи
2. Типи даних та основні операції з ними
- Алфавіт мови
- Коментарі
- Ключові слова
- Типи даних: прості (примітивні) та за посиланням
- Ідентифікатори, вибір імен ідентифікаторів
- Змінні та константи
- Оголошення та ініціалізація змінних
- Ділянка видимості та час життя змінних
- Оператори
- Операції: арифметичні, привласнення, відносин та логічні
- Перетворення та приведення числових типів
- Пріоритет операцій
- Використання круглих дужок
3. Потік управління
- Складений оператор (блок)
- Умовний оператор та його види
- Оператор switch
- Цикли: for, while, do while
- Нескінченні цикли
- Переривання потоку управління, мітки
- Оператор goto та причини не застосовувати його
4. Масиви
- Оголошення та ініціалізація масивів, зокрема анонімних
- Лінійні масиви
- Ітерація за елементами масиву
- Масиви та присвоєння
- Передача та повернення масивів в / з методів
- Копіювання масивів
- Клас Arrays: заповнення, порівняння елементів та їхнє сортування
- Пошук у масивах
- Багатовимірні масиви, «нерівні» масиви
- Методи: аргументи змінної довжини
5. Рядки
- Клас String. Постійні об'єкти
- Зберігання рядків у пам'яті
- Основні операції класу String (створення, конкатенація, порівняння, пошук символів та підрядків у рядках та ін.). Перетворення простих типів даних
- Розбивка рядків: клас StringTokenizer. Змінні об'єкти: класи StringBuffer та StringBuilder
- Основні методи. StringBuffer vs StringBuilder
6. Вступ до ООП. Об'єкти та класи
- Поля та методи (визначення, синтаксис оголошення)
- Специфікатори доступу public та private
- Поля класів: ініціалізація явна та за замовчуванням, специфікатор final та константи
- Доступ до полів та методів
- Методи: параметри (посилання й прості типи) та ті, що повертаються, використання set- та get-методів, перевантаження методів, правила перевантаження
- Об'єктна модель. Основні положення: абстрагування, інкапсуляція, модульність, ієрархія
- Об'єкти та класи. Об'єкти. Визначення (з прикладами). Стан. Поведінка
- Конструктори: конструктори за замовчуванням, виклик одного конструктора з іншого
- Блоки ініціалізації
- Статичні поля та методи: ініціалізація константи, статичні блоки ініціалізації. Використання this для доступу до членів класу
- Збір сміття та видалення об'єктів
7. Відношення між об'єктами
- Залежності, їхні різновиди
- Узагальнення
- Асоціації
- Реалізації
- Зв'язки, їхня множинність
8. Спадкування та поліморфізм
- Спадкування та поліморфізм як інструмент створення ПЗ. Суперклас та підкласи, відношення узагальнення, спадкування в Java. Виклик конструкторів суперкласів, порядок дзвінків. Ключове слово super()
- Перевизначення методів, правила перевизначення. Спадкування та статичні поля й методи класів. Абстрактні класи та методи — поняття, виклик конструкторів, реалізація методів у субкласи
- Інтерфейси. «Множинне» успадкування. Визначення та реалізація інтерфейсів. Розширення інтерфейсів. Композиція як альтернатива множинному спадкуванню
- Поліморфізм. Ієрархія наслідування
- Перетворення та приведення типів. Використання instanceof. Відмова від спадкування: термінальні (final) методи та класи. Включення як альтернатива множинному спадкуванню
- Пакети. Вкладеність пакетів. Повторне використання коду та пакети. Захист доступу.
- Імпорт: класів, статичних методів та полів
9. Клас Object
- Глобальний суперклас Object
- Методи equals(), hashCode(), toString(), finalize(), clone() та ін.
- Правила реалізації equals() та hashCode()
- Інтерфейс Cloneable та його реалізація
- Клонування: поверхневе та глибоке
10. Внутрішні класи
- Синтаксис оголошення
- Створення об'єктів внутрішніх класів
- Поля та методи внутрішніх класів
- Вкладення внутрішніх класів та доступ до членів зовнішніх класів
- Посилання this у внутрішньому класі
- Доступ до полів та методів зовнішнього класу з внутрішнього
- Внутрішні класи та специфікатори доступу
- Вкладені інтерфейси
- Застосування внутрішніх класів
- Внутрішні локальні класи (Method-LocalInnerClasses)
- Анонімні внутрішні класи
- Вкладені (внутрішні статичні) класи (static nested classes)
- Створення екземплярів
- Доступ до екземпляра зовнішнього класу
- Компіляція програм з внутрішніми класами
11. Перерахування
- Перерахування як класи. Методи values(), valueof(), name(), ordinal()
- Константи, конструктори, методи та поля
- Перерахування та конструкція switch. Імпорт членів перерахувань
12. Робота з базами даних
- Основи побудови реляційних баз даних
- SQL
- Нормальні форми. Запити SELECT, INSERT, UPDATE, DELETE
- JDBC
- Driver, Connection, Statement, ResultSet, PrepareStatement
13. Обробка помилок та виключення
- Підходи до обробки помилок часу виконання
- Поняття виключення
- Ієрархія класів винятків у Java
- Checked та unchecked винятки
- Генерація виняткової ситуації та оператор throws
- Оголошення контрольованих винятків, ключове слово throws
- Throws та перезавантаження методів
- Перехоплення винятків
- Перехоплення «всіх» винятків
- Обробка винятків
- Повторна генерація винятків
- Блок finally: звільнення ресурсів
- Створення власної ієрархії винятків
- Реєстрація помилок, логування: логери, рівень логер, рівень повідомлень, обробники (об'єкти підкласу java.util.logging.Handler)
- Приклад
14. Система введення-виведення
- Ієрархія класів потокового введення / виведення:
- Потоки введення / виведення, механізм роботи з потоками, ієрархія потокового введення / виведення
- Субкласи FilterOutputStream та FilterInputStream
- Байтові потоки
- Символьні потоки
- Клас File. Клас RandomAccessFile
- Серіалізація та десеріалізація об'єктів: поняття, призначення, реалізація
- Приклад
15. Класи колекцій
- Поняття абстрактного типу даних (АТД)
- Структури даних: списки, стеки, множини, дерева, карти
- Обхід колекцій: інтерфейси Iterator та ListIterator, цикл «foreach»
- Компаратори
- Клас Collections: пошук та сортування елементів, заповнення, синхронізація уявлення, незмінні уявлення та ін.
16. Багатопотоковість
- Поняття потоку. Особливості паралельного виконання
- Потоки-демони
- Пріоритети потоків. Метод yield()
- Стан потоку: створення потоків, -runnable та -running - потоки
17. Універсальні типи
- Параметризовані типи: класи та інтерфейси. Параметри типу
- Обмеження, накладені на параметризовані типи: прості типи, інстанціювання, суперклас, виняток.
- Параметризовані типи та JVM
18. Рефлексія
19. Вступ до Android
- Компоненти Android
- Встановлення Android SDK
- Встановлення Android Studio
20. Розбір Manifest
21. Контейнери
- LinearLayot
- FrameLayout
- СonstraintLayout
22. Основні View
- Button, ImageView, TextView
23. RecyclerView
- Adapter, ViewHolder
- Що з ним ще можна робити
- Короткий огляд сторонніх бібліотек
24. ViewPager + TabLayout
25. Основи динамічного компонування
26. Кастомні View
27. Бібліотеки завантаження картинок
28. Життєвий цикл Activity
- Обробка переворотів
- Передача інформації між екранами
- Запуск деяких сторонніх додатків
29. Робота з камерою
- Знімки
- Відео
30. Найпопулярніші витоки пам'яті та як їх уникнути
31. Фрагменти. Яке місце в Android вони посідають і як їх використовувати для побудови правильної логіки додатка
- Життєвий цикл
- Робота зі стеком фрагментів
- Діалоги
32. Робота з багатопотоковістю в Android / AsyncTask
- Legacy підходи: Handler, Loader, AsyncTask
- LiveData
- Kotlin coroutines
33. Розбір основних бібліотек та фреймворків
- Dagger 2
- RxJava/RxAndroid
34. Архітектура додатка (MVP, MVVM)
35. Збірка проєкту
- Gradle
- Огляд згенерованих класів
36. Інструменти
- Робота з Git
- Debugging
- Діаграми класів UML
37. Як скласти резюме і пройти співбесіду
- Структура резюме
- FAQ
- Як вести себе на співбесіді
- Основні помилки на співбесіді
- Урок англійської мови №1
- Урок англійської мови №2
- Урок пошуку роботи
* Примітка: зазначені знижки не сумуються з іншими діючими акціями та спеціальними пропозиціями. Знижка застосовується тільки до нових заявок та при умові повної оплати курсу. Якщо у Вас виникли питання, звертайтеся за консультацією до наших менеджерів!