14 лекций от экспертов из e-Legion, OK.RU, Tinkoff, JetBrains, Kaspersky Lab, Parallels, Aviasales, LinguaLeo, Mail.ru, ABBYY. Лекции подойдут как новичкам с базовыми знаниями Java, так и уже опытным разработчикам.
14 лекций от экспертов из e-Legion, OK.RU, Tinkoff, JetBrains, Kaspersky Lab, Parallels, Aviasales, LinguaLeo, Mail.ru, ABBYY. Лекции подойдут как новичкам с базовыми знаниями Java, так и уже опытным разработчикам.
01 SDK, Gradle, AndroidStudio
Общий рассказ о внутренностях SDK (adb, monitor, logcat, etc.), о системе сборки Gradle применительно к Android проектам (общий вид скрипта, назначение секций, flavors). Дмитрий сделал обзор основных функций AndroidStudio на примере простого HelloWorld приложения.
02 Основные компоненты приложения. Жизненный цикл приложения.
В лекции рассказывается об основных компонентах приложения: Application, Activity, ContentProvider, Service, BroadcastReceiver. Рассматривается жизненный цикл Activity, флаги launchMode и флаги configChanges. А также, уделено внимание смене ориентации девайса и сохранению/восстановлению состояния Activity.
03 Intent\’ы, IntentFilter\’ы и BackStack Activity
В лекции рассказано о философии интентов, рассмотрен запуск компонентов приложения и запуск внешних приложений и сервисов с передачей/без передачи параметров. Кроме того, лектор рассмотрел IntentFilter\’ы, понятие BackStack Activity и влияние флагов на него. И рассказал, как сделать так, чтобы приложение откликалось на определенный тип интента.
04 Ресурсы приложения, модификаторы
В лекции рассказывается о том, зачем нужны директории layout, values, drawable, xml, menu и о модификаторах ресурсов (-hdpi, xhdpi, -land, swXXXdp, -v21, -ru. Лектор объясняет, как система выполняет поиск необходимых ресурсов и затрагивает configChanges флаги и их влияние на резолвинг ресурсов.
05 Хранение данных
В лекции рассмотрены основные хранилища данных: SharedPreferences, SQLite, файловое хранилище. Лектор рассказывает про внутреннюю и внешнюю память и про внутреннюю структуру директорий приложения (cache, databases, lib, etc.)
Помимо теста Дмитрий подготовил для учеников следующую задачу:
Самостоятельно реализовать механизм кеширования изображений в Internal или External storage с использованием папки cache, без использования готовых библиотек или других решений. Должна быть возможность отключить кеш с помощью настройки хранящейся в SharedPreferences. В случае выбора External Storage не забывать проверять доступность внешнего хранилища для записи
06 ContentProvider + Loader
В лекции рассмотрено понятие ContentProvider, использование системных провайдеров (на примере контактов), создание собственного провайдера. Лектор затронул тему работы с Loader\’ами, объяснил их архитектуру и плюсы/минусы.
07 LayoutInflater, UI контролы, AdapterView
В лекции рассказано, что такое LayoutInflater, объяснить параметры метода inflate() и как происходит процесс преобразования xml в UI компоненты. Рассмотрены основные UI контролы, механика работы с ними, паттерн Listener. Лектор рассказывает об особой группе компонентов — AdapterVIew: как устроены, механизм view recycling, паттерн Adapter и о компоновщиках (FrameLayout, LinearLayout, RelativeLayout)
08 Service, BroadcastReceiver
В лекции рассмотрено понятие сервиса, его жизненного цикла, объяснено различие между Service и IntentService. Лектор рассказывает, зачем нужен onBind метод, объекты типа IBinder, про жизненный цикл binded сервиса и запуск сервисов по AlarmManager\’у, а также про BroadcastReceiver\’ы.
09 Уведомления
В лекции рассмотрены различные виды уведомлений. Затронуты темы DialogFragment, Toast и Notification и Notification.
10 Android Animation Framework
В лекции рассмотрено создание различного вида анимаций UI компонентов, переходов между Activity, Fragment\’ами.
11 GooglePlayServices
В лекции рассмотрены Play сервисы, Google Developer Console и создании токенов для использования сервисов, наиболее часто используемые компоненты: Maps API, PUSH уведомления и GoogleApiClient + FusedLocation API.
12 Android Support Library, Fragment Framework: декомпозиция приложения и практики навигации
Support Library уже встречалась по ходу курса, настало время ее рассмотреть подробнее. В этой лекции вас ждет рассказ о реализации различных механизмов навигации в приложении: ActionBar, NavigationDrawer (DrawerToggle из appcompat-v7), ViewPager, FragmentTabHost. Лектор расскажет про FragmentManager и почему не стоит передавать параметры через конструктор фрагмента.
13 Material Design
Лекция об основах Material Design и о том, как реализовать его в приложении, о добавлении различных эффектов, цветовой палитре, анимации и тенях.
14 Google Play
Наталия рассказала про то, что собой представляет Google Play, как сделать приложение успешным и отслеживать метрики, привела примеры разных стран.