Освой 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

Шестой курс

  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. Barcode Detection (Распознавание штрих-кодов)
  11. Google Play services. Mobile Vision API. TextRecognizer (Распознавание текста)
  12. Google Play services. Nearby Connections (Сетевой обмен данными)
  13. Внедряем рекламу AdMob в своё приложение
  14. Сокеты для веба
  15. Сокеты. Клиент-Сервер
  16. FTP
  17. Storage Access Framework
  18. Загружаем файл с помощью IntentService
  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. Уведомления для Android 5.0

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

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

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

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

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

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


implementation 'com.google.android.material:material:1.3.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
  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

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

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

Восьмой курс

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

Девятый курс

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

Десятый курс (не доступен)

RenderEffect
MapBox
ARCore
Gesture Navigation

Реклама