Освой Android играючи

Сайт Александра Климова

Шкодим

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

Пятый курс

  1. Датчик силы тяжести. TYPE_GRAVITY
  2. Yandex SpeechKit Mobile SDK 2.2
  3. NFC (Near Field Communication)
  4. ACTION_OPEN_DOCUMENT_TREE
  5. Провайдер Browser
  6. Облачная викторина
  7. Класс GeoCoder
  8. Класс GsmCellLocation
  9. Создаём XML-документ
  10. Переходи на светлую сторону - динамическая смена темы
  11. Работаем с менеджером пакетов
  12. Информация об устройстве
  13. KeyboardView - создаём свою клавиатуру
  14. Барометр
  15. Датчик магнитных полей
  16. Гироскоп
  17. Виртуальный датчик поворота
  18. Датчик относительной влажности
  19. Трёхосевой датчик линейного ускорения
  20. Создаём свою галерею
  21. Журнал о входящих, исходящих и пропущенных звонках
  22. Drag-n-Drop
  23. Стек активностей и Задания (Stack and Task)
  24. Провайдер SMS
  25. Подключаем USB-устройства
  26. Список задач
  27. Живые обои
  28. ViewOverlay
  29. Покупаем кота в мешке
  30. Сохраняем объекты в настройках SharedPreferences
  31. Загружаем файл с помощью IntentService

Шестой курс

  1. Создаём интернет-магазин. Часть первая. PHP+MySQL
  2. Создаём интернет-магазин. Часть вторая. Android-приложение
  3. Библиотека Google Play services
  4. Google Play services. Location
  5. Google Play services. Geofence (Геозоны). Теория
  6. Google Play services. Google+
  7. Google Play services. ActivityRecognition (Распознавание активности)
  8. Google Play services. Analytics (Аналитика)
  9. Google Play services. Face Detection (Распознавание лиц)
  10. Google Play services. Code Scanner (Распознавание штрих-кодов)
  11. Google Play services. Barcode Detection (Распознавание штрих-кодов) (устаревшее)
  12. Google Play services. Mobile Vision API. TextRecognizer (Распознавание текста)
  13. Google Play services. Nearby Connections (Сетевой обмен данными)
  14. Внедряем рекламу AdMob в своё приложение
  15. Сокеты для веба
  16. Сокеты. Клиент-Сервер
  17. FTP
  18. Storage Access Framework
  19. Администраторы устройства
  20. Два фрагмента - список и детальная информация
  21. Слайдер при помощи GridView и ViewPager
  22. Добавить аккаунт
  23. Ищем книгу
  24. Система регистрации пользователей в облаке
  25. Оцени программу
  26. Семь способов создания Splash-экрана
  27. Контактируем с владельцами котиков
  28. Bluetooth LE (черновик)
  29. MediaMetadataRetriever
  30. Renderscript. Новая попытка (API 17)
  31. Профиль с ограниченным доступом (API 18)
  32. Firebase
  33. ViewBinding

Седьмой курс. Material Design.

Material Design Icons - значки в стиле Material

  1. Строка состояния
  2. RippleDrawable (Lollipop)
  3. Elevation (высота)
  4. JobScheduler - планировщик заданий
  5. Настройка карточки программы в списке недавно запущенных программ (Lollipop)
  6. А теперь банановый. Выбираем варианты сборок
  7. Tint. 50 оттенков серого (Lollipop)
  8. Palette (Палитра)
  9. VectorDrawable (Lollipop)
  10. AnimatedVectorDrawable (Lollipop)
  11. Шаблон Master/Detail Flow
  12. Класс ViewAnimationUtils (Android 5.0, API 21)
  13. Превращения между экранами активностей
  14. Переход общих элементов между экранами активностей
  15. Toolbar+RecyclerView+CardView+FAB
  16. Класс PdfRenderer (Lollipop)
  17. Android TV
  18. Пакет android.hardware.camera2
  19. Связывание данных (Data Binding)
  20. Блокировка в приложении (Screen pinning) (Lollipop)
  21. Собираем статистику (Lollipop)
  22. Material Design. Закрепление навыков
  23. Знакомство с приложением
  24. Шаблон Navigation Drawer Activity (Kotlin)

Компоненты Material Design

В Android 5.0 был представлен новый Material Design, который позже стал доступен и для старых устройств через библиотеку совместимости в немного усечённом виде.

Если говорить общими словами, то дизайн пытается быть похожим на реальный мир. Это значит, что элементы подчиняются физическим законам. Например, элементы можно разделить и соединить обратно, изменить их цвет и форму, они твёрдые. Элементы могут отбрасывать тень. Но нельзя делать некоторых вещей - не могут уместиться в одном месте, если не позволяет объём. Причём, все элементы имеют толщину 1dp. Представьте себе, что элементы в виде толстой бумаги внутри вашего телефона под стеклом. Вы не можете сделать оборот элемента вокруг своей оси, так как толщина вашего телефона слишком мала для этой операции. Может только чуть-чуть повернуть. Элементы не могут просачиваться через другие элементы (они же твёрдые). Вообще, многие свойства материального дизайна присущи котам, за исключением разве только толщины.


implementation 'com.google.android.material:material:1.7.0'

При использовании компонентов на панели действий не забывайте вызывать метод getSupportActionBar().getThemedContext() для получения правильного контекста.

У компонентов появился новый атрибут elevation (высота):


<ImageView …
    android:elevation="8dp" />

В соответствии с новым дизайном компоненты могут "парить" над экраном, отбрасывая тень. Система сама рассчитает нужную тень вокруг элемента, в том числе и вокруг круглой кнопки. Программным аналогом являются методы getElevation()/setElevation(). Подробнее о Elevation

  1. Тема в Material Design
  2. TabLayout
  3. Шаблон Scrolling Activity с RecyclerView и CardView
  4. FloatingActionButton
  5. Snackbar
  6. ExtendedFloatingActionButton
  7. CoordinatorLayout
  8. BottomNavigationView
  9. MaterialButton
  10. MaterialCheckBox, MaterialRadioButton
  11. SwitchMaterial/MaterialSwitch
  12. MaterialCardView
  13. MaterialDatePicker
  14. MaterialTimePicker
  15. BottomAppBar
  16. Chip и ChipGroup
  17. ShapeableImageView
  18. MaterialShapeDrawable
  19. MaterialAlertDialogBuilder
  20. Slider
  21. BottomSheetBehavior
  22. ProgressIndicator
  23. NavigationRailView
  24. MaterialToolbar

Дополнительные материалы

material-components/material-components-android-examples: Companion example apps and code for MDC-Android.

Восьмой курс

  1. Shortcut (Android 7.1 API 25)
  2. Каналы для уведомлений. NotificationChannel
  3. Мимиметр зашкаливает
  4. Chrome Custom Tabs
  5. Создаём библиотеку в Android Studio
  6. ShareCompat. Поделись улыбкою своей...
  7. Работаем с Arduino через USB
  8. Работаем с Arduino через Bluetooth
  9. Криминальное чтиво
  10. Firebase Authentication
  11. Firebase. Работаем с базой данных
  12. Firebase. Уведомления
  13. Firebase Firestore
  14. Снегопад (Custom View)
  15. CircleIndicator (Custom View)
  16. Переключатель для вентилятора (Custom View)
  17. Всегда поверх всех окон
  18. Посылаем пуш-уведомления
  19. DirectShare
  20. App Links
  21. Автоматический бэкап данных
  22. Список задач (Kotlin)
  23. Автоподгонка текста по размеру TextView
  24. Загружаемые шрифты
  25. Снимаем на камеру в Android 7.0+
  26. JetPack. Preference
  27. Jetpack. ViewModel

Девятый курс

  1. FileProvider
  2. Quick Settings (Android 7.0 API 24)
  3. Multi-Window в Android 7.0 Nougat
  4. Курс валют Центрального Банка России. Retrofit, XML
  5. Java 8. Лямбда-выражения
  6. Subscription и CompositeSubscription
  7. Android Architecture Components. LiveData
  8. Android Architecture Components. Lifecycle, LifecycleOwner и LifecycleObserver
  9. Android Architecture Components. Room
  10. Room. Работа с базами данных
  11. Fingerprint API
  12. Google Play services. Awareness API (Осведомлённость)
  13. Media Projection API
  14. Картинная галерея
  15. EmojiCompat
  16. Cutouts (Kotlin)
  17. Slices (Ломтики)
  18. ImageDecoder и AnimatedImageDrawable
  19. API 28. Magnifier (Kotlin)
  20. MotionLayout
  21. Капли дождя (Kotlin)
  22. ExoPlayer
  23. Picture in Picture
  24. Спидометр (Kotlin)
  25. Jetpack. Navigation (Kotlin)
  26. Jetpack. Fragment
  27. JetPack. SlidingPanelLayout
  28. JetPack. CameraX
  29. EncryptedSharedPreferences (Jetpack Security)
  30. PrecomputedText (Android 9)
  31. Biometric
  32. Погладь кота с уха. Жесты для View
  33. Settings.Panel (Android 10)
  34. Обработка результатов
  35. Сетевая поддержка (API 24+)
  36. Launcher (лаунчер, лончер)
  37. Получить код веб-страницы при помощи корутин
  38. Получить картинку из интернета при помощи корутин
  39. Preferences DataStore
  40. WorkManager
  41. SplashScreen API

Десятый курс

RenderEffect

Разрешение для уведомлений. Android 13 Tiramisu

Photo Picker: Выбираем картинки и видео на Android 13

Ktor Client

Раздел Compose

Черновики

Gesture Navigation
MapBox
ARCore

Реклама