Курс Разработка для Android Pro
Описание курса
Разработка мобильных приложений — неизменный тренд последнего десятилетия. Наши гаджеты уже давно стали личными помощниками: секретарями, тренерами, диетологами, ретушерами и т. д. Поэтому приложения остаются востребованными и ценными продуктами в секторе ІТ.
В ходе курса Android вы поймете принципы мобильной разработки и верстки экранов приложений, узнаете все о библиотеках и последних тенденциях сферы. Вы изучите полный цикл создания продукта, а затем на личномсвоем опыте увидите, как возможно писать быстрые и надежные клиент-серверные приложения. По окончанию курса вы создадите собственный проект.
После курса вы сможете:
- Понимать полный цикл разработки приложения
- Cоздавать клиент-серверные приложения
- Понимать, какая архитектура лучше и где именно
- Пользоваться БД в 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. Как составить резюме и пройти собеседование
- Структура резюме
- Часто задаваемые вопросы
- Как вести себя на собеседовании
- Основные ошибки на собеседовании
- Урок английского языка №1
- Урок английского языка №2
- Урок поиска работы
Минимальные требования:
- Вы изучили курс Основы программирования и выбрали направление мобильной разработки
- Вы работаете не в ІТ, но хотите понять сферу и найти в ней свое место
- Вы являетесь разработчиком, но хотите изучить что-то новое
- Вы учитесь самостоятельно, но желаете упорядочить свои знания и приобрести новый опыт
* Указанные скидки не суммируются с другими действующими акциями и специальными предложениями. Если у Вас возникли вопросы, обращайтесь за консультацией к нашим менеджерам!