Курс преподает:
Калашник Денис

Разработчик мобильных приложений под Android. Работает с языками Java и Kotlin. Более 4-х лет в коммерческой разработке. Опыт в преподавании более 3-х лет. Охотно поделится знаниями и опытом.

Программа курса:

  • 1
    Введение
    • Обзор современных средств программирования
  • 2
    Типы данных Java
    • Типы данных языка Java, необходимость использования типизации при разработке ПО
    • Литералы
    • Операции
    • Ссылочные и значимые типы, упаковка и распаковка данных
    • Объявление переменных, область видимости переменных (локальных)
    • Представление данных в памяти компьютера, системы счисления, представление отрицательного числа
    • Методы ввода данных Hard code, Console scanner, Dialog, Window, File, Network, DB
  • 3
    Работа JVM
    • JVM и принципы работы
    • Загрузчики классов
  • 4
    Основные конструкции языка
    • Конструкция выбора if-else, switch
    • Циклы while, do-while, for
    • Массивы
    • Использование foreach
    • Использование отладчика
  • 5
    Понятие о тестировании
  • 6
    Структуры данных
    • Поиск, сортировка. Виды, способы эффективность
  • 7
    Математические вычисления
    • Случайные числа
    • Библиотека Math
  • 8
    Системы контроля версий
    • Необходимость применения, централизованные и распределенные системы
    • Создание Git репозитория, инструменты для работы с Git
  • 9
    Строки
    • Интерполяция строк (см. комментарий)
    • Особенности использования сравнения строк при поддержке локализаций
    • Форматирование строк
    • Использование StringBuilder
    • Регулярные выражения
  • 10
    Пользовательские типы данных
    • Понятие пользовательского типа данных, их виды
    • enum - простой пользовательский тип
    • Kotlin типы данных, циклы
  • 11
    Классы и интерфейсы
    • Синтаксис объявления класса, понятие методов, конструкторов
    • Методы классов
    • Использование this
    • Основные принципы ООП
    • Понятие и использование интерфейсов
    • Передача параметров в метод
    • Передача произвольного количества аргументов
    • Перегрузка и переопределение
    • Статические поля, свойства и методы классов
    • Статические классы
    • Внутренние, вложенные и анонимные
    • Модификаторы доступа
  • 12
    Наследование классов, Динамический и статический полиморфизм
    • Kotlin синтаксис, методы, классы
    • Наследование классов, отличие наследования классов и интерфейсов
    • Работа конструктора класса при наследовании
    • Виртуальные функции, раннее и позднее связывание
    • Абстрактные классы и методы
  • 13
    Принципы разработки
    • SOLID, GRASP, TDD
  • 14
    Исключения в Java
    • Типы исключений, иерархия
  • 15
    Коллекции и обобщения
    • Стандартные типы коллекций
  • 16
    Многопоточность
    • Kotlin исключения
    • Class Thread, interface Runnable, фун-ии run(), start()
  • 17
    Работа с файлами
    • Понятие файла, потока(Stream, FileStream) Классы для работы с файловой системой
    • Сериализация
  • 18
    Форматы для передачи данных
    • XML, CSV, Yaml, Json
  • 19
    Swing
  • 20
    Деревья
    • Kotlin коллекции
  • 21
    Работа с базами данных
    • Понятие баз данных. Основные типы СУБД(иерархические, сеточные, реляционные, ООП). Приемущества и недостатки реляционных СУБД, ОРМ системы
    • Основы языка SQL, Взаимодействие с БД в присоединенном режиме
    • Kotlin корутины
  • 22
    Hashtable
    • Принципы работы хештаблицы, обзор методов hashcode и equals
  • 23
    Работа с коллекциями
    • Stream API
  • 24
    Graphs
  • 25
    Reflection API
    • Обзор и работа с Reflection API
  • 26
    Ключевые слова Java
  • 27
    Типы ссылок
    • Strong, Soft, Weak, Fantom
  • 28
    Паттерны проектирования
    • Обзор Обзор паттернов проектирования
  • 29
    Знакомство со средой разработки, структура проекта Gradle, AndroidManifest
  • 30
    Основы верстки:
    • виды Layouts
    • класс View, родитель всех визуальных представлений
    • знакомство с правилами Material Design
  • 31
    Главные компоненты приложения. Понятие носитель контекста
    • Activity
    • Service
    • Receiver
    • Provider
  • 32
    Понятие жизненного цикла
    • Fragment
    • DialogFragment
    • Native Dialogs, Toast, BottomSheet, SnackBar
  • 33
    Списки в приложение
    • RecyclerView, DiffUtil, пагинация
  • 34
    Понятие операции. Создание приложения с -
    • авторизацией
    • главный экран со списком
    • детализация списка
  • 35
    Дизайн паттерны
    • Listener, Callback (Observers)
    • Singleton
    • State
    • Builder
    • Fabric
  • 36
    Архитектурные паттерны, ознакомление особенностей стека технологий
    • MVC
    • MVP
    • MVVM
    • отличия между ними
  • 37
    Принципы SOLID
  • 38
    Создание приложения с применением всего ранее изученного
  • 39
    Обзор Базы данных Realm
  • 40
    Обзор библиотеки Retrofit 2
  • 41
    Обзор RxJava
  • 42
    Обзор библиотеки Dagger 2, DI в Android
  • 43
    Продвинутое использование паттернов MVP/MVVM
    • DataBinding с использования обоих паттернов(MVP/MVVM)
    • Обзор Android Architecture Components
  • 44
    Создание приложений с использованием базовых конструкций стеков для MVP и MVVM
    • создание простого приложения с логином, списком и детализацией, используя Java и применяя паттерн MVP
    • создание простого приложения с логином, списком и детализацией, используя Kotlin и применяя паттерн MVVM. Также используя Android Architecture Components
  • 45
    Продвинутое использование Google Services/Firebase
  • 46
    Обзор WorkManager
  • 47
    Обзор PagingList
  • 48
    Создание простого приложения с логином, списком, детализацией списка, картой и возможностью загрузки данных с приложения
  • 49
    Обзор Тестирования проекта, написание Unit Tests
  • 50
    Продвинутая работа с Android Studio
  • 51
    Release и Deploy приложения
  • Подведение итогов
  • Вручение сертификата
Требования курса:
  • Курс рассчитан на новичков. Для прохождения курса достаточно базовой компьютерной грамотности
Записаться на курс