Иконка

Разработчик мобильных приложений для ОС Android

Повышение квалификации, 50 ак. часов/1.5 месяца

Записаться на курс

Треугольник
Треугольник
Треугольник

Аннотация курса

Мобильная разработка — одна из самых динамично развивающихся отраслей IT индустрии. Android-разработчик — сегодня это престижная и высокооплачиваемая профессия. В данном курсе Вы получите практические навыки создания мобильных приложений, а также узнаете, как эффективно использовать возможности платформы и ресурсов Android. Мы поэтапно будем создавать различные мобильные приложения, постепенно повышая их сложность. Вы научитесь создавать «правильные» интерфейсы, использовать современные библиотеки и технологии.

Предварительные требования

  • cпециалисты со средним профессиональным, высшим образованием и студенты старших курсов вузов
  • знания основ алгоритмизации и программирования

Тестовый доступ к курсу

Система дистанционного обучения - http://design.ifmo.ru/moodle

  • Имя пользователя: mobile
  • Пароль: itmo1

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

  • Тема 1. Первые шаги в Android DevelopmentСтрелка вниз
    • Знакомство с системой Android. Почему Java, а не Kotlin? История версий платформы. Установка программного обеспечения (Java, AndroidStudio). Создание первого проекта и запуск его на виртуальном/физическом устройстве. Настройка интерфейса в среде разработки.

      Практика: Установка Android Studio и подключение виртуального эмулятора или реального устройства. Создание первого проекта. Запуск проекта на устройстве.

  • Тема 2.Работа с проектомСтрелка вниз
    • Создание и запуск проекта. Работа с Activity иLayouts.Работа с разметкой. Родительские и дочерние элементы View.Кнопки, картинки и текст.Ресурсы проекта, иерархия и местоположение. Симбиоз Java и XML. Проблемы фрагментации на устройствах с ОС Android. Что такое Intentи как им управлять. Введение в жизненный цикл Activity.Как делать всплывающие уведомления.

      Практика: Создание проекта «Собери макеты».

  • Тема 3. Тонкости в построении интерфейсовСтрелка вниз
    • Использование XMLдля построения пользовательского интерфейса. Свод правил для построения интерфейсов. Для чего нужны density-independentpixels? Размеры и разрешения экранов устройств. Обязательные атрибуты для элементов. Внутренние и внешние отступы. Видимость объектов. ЭлементыViewGroup.КакнастраиватьLinearLayout, RelativeLayout, GridLayoutиConstraintLayout. Scale-independentpixels, нотолькодлятекста. Основные элементы из библиотеки View. Значение идентификатора ресурсов. Взаимодействие с пользователем.

      Практика: Создание проекта «Передача данных на новое окно». Создание проекта «Передача данных в Gmail».

  • Тема 4. Списки и адаптерыСтрелка вниз
    • Почему ListViewбольше не используется? Значение адаптера в создании списков. Учимся правильно работать со списками. Работа с данными. Динамическая реализация списков с помощью RecyclerView. Как работает RecyclerView? Что делает ViewHolder? Классы, поддерживающие работу RecyclerView.

      Практика: Создание проекта «Список на основе RecyclerView»

  • Тема 5. Процессы и потокиСтрелка вниз
    • Суть работы процессов и потоков. «Главный поток». Отдельные процессы и дополнительные потоки для любых процессов. Контроль над процессами. Жизненный цикл процесса. Удаление старых процессов. Освобождение памяти для новых процессов. Иерархия запущенных процессов. Потоки выполнения для приложения. Как избежать проблемы «приложение не отвечает»? Правила работы с потоками. Рабочий поток. Использование AsyncTask. Потокобезопасные методы. Взаимодействие процессов.

      Практика: Создание проекта «Асинхронные операции»

  • Тема 6. Сетевое соединениеСтрелка вниз
    • Сетевой запрос. Как прописать разрешение в AndroidManifest.xml? Стандарты разрешений. Запрос-ответ. Исключение NetworkOnMainThreadException. Библиотека Retrofit. Добавление и инициализация библиотеки Retrofit. Хранение и передача данных с помощью JSON. JSONFormatter. Выполнение сетевого запроса.Библиотека Picassoи Glide.

      Практика: Создание проекта «Поиск картинок и вывод в виде списка с помощью RecyclerView»

  • Тема 7. База данныхСтрелка вниз
    • Жизненный цикл Activity. Работа методов жизненного цикла. «Смерть» Activity. Сохранение состояния Activity.БазаданныхSQLite.ПлюсыиминусыSQLite. ДействияSELECT, CREATE, UPDATE, INSERT, DELETE.Восстановление и хранение данных. Библиотека Room– удобная обертка для работы с базой данных SQLite.Entity, DaoиDatabase. Аннотация Entity. Восстановление и хранение данных в Room.

      Практика: Создание проекта «Записная книжка».

  • Тема 8.FragmentsСтрелка вниз
    • Зависимость Fragmentот Activity. Скрытая сила Fragments. Повторное использование компонентов. Пример использования Fragment. Жизненный цикл Fragment.Рецепт создания Fragment. Интерфейс взаимодействия с Activity – FragmentManager. Алгоритм создания Fragment.

      Практика: Создание проекта «Приложение галерея на основе Fragments».

  • Тема 9.ServicesСтрелка вниз
    • Значение работы Services. Фоновая работа. Жизненный цикл Services. Алгоритм создания Services.Принцип работы BoundedService. Создание BoundedService.Как избежать «падение» приложения при работе с Services?Создание и использование IntentService. Обёртка PendingIntent. Оптимизация работы батареи устройства. Настройка WorkManager.

      Практика: Создание проекта «Авторизация в приложении».

  • Тема 10.АрхитектураСтрелка вниз
    • Заблуждения в CleanArchitecture.Бизнес-объекты. Сценарии взаимодействия. Слой представления. Фреймворки. Слой данных. Слой бизнес-логики. Слой представления. Пример приложения.Паттерны MVC, MVP, MVI, MVVM.

      Самостоятельная работа «Создание приложение «Конвертер валют».

  • Дистанционный курс «Java. Основы программирования» в подарокСтрелка вниз
    • 1. Базовые концепции

      Введение в Java. Программа "Hello world!". Комментарии в Java. Переменные. Примитивные операторы. Инкремент и декремент. Строки. Считывание пользовательского ввода.

    • 2. Условные операторы и циклы.

      Условные операторы. Вложенные операторы if. Оператор else if. Оператор switch. Цикл while. Цикл for. Цикл do while.

    • 3. Массивы.

      Введение в массивы. Сложение элементов в массивах. Улучшенный цикл for. Многомерные массивы.

    • 4. Классы и объекты.

      Объектно-ориентированное программирование. Методы. Возвращаемый тип методов. Создание классов и объектов. Атрибуты класса. Модификаторы доступа. Getter & Setter. Конструкторы. Числовые и ссылочные типы. Класс Math. Static. Final. Packages.

    • 5. ООП

      Инкапсуляция. Наследование. Полиморфизм. Переопределение и перегрузка. Абстрактные классы. Интерфейсы. Приведение. Нисходящее приведение. Анонимные классы. Внутренние классы. Метод equals(). Перечисления. Использование Java API.

    • 6. Исключения и списки.

      Обработка исключений. Множество исключений. Runtime против Checked исключений. ArrayList. LinkedList. HashMap. Sets. Сортировка списка. Итераторы.

    • 7. Потоки и файлы.

      Потоки. Работа с файлами. Чтение файла. Создание и запись файлов.

Преподаватели курса

Романова Асель

Романова Асель

преподаватель, автор курсов на платформе "Открытое образование"