#android #sourcecode
Что скрывается в исходниках Android?
Спасибо всем, кто ответил в опросе, ваша обратная свзяь очень полезна при разарботке контента для блога.
Вижу, что в тройке лидеров туториалы для новичков, Rx и архитектура. Значит не зря я активно дорабатываю курс по RxJava - вам точно пригодится!
А пока я дорабатываю статью по паттернам и пилю новый туториал по Android, хочу поделиться с вами забавной пасхалкой, которую нашёл во время отладки кода.
Во время поиска коварного бага, я нашёл новый тип layout - BlinkLayout, который появился в исходном коде Android в 2011 года!
Для чего он нужен и можно ли его использовать - читайте в статье. Если вы думали, что читать исходники Android
утомительно и скучно - то вот вам доказательство, что это ещё и весело!
https://bit.ly/2VOYN2J
@android_school_ru
Что скрывается в исходниках Android?
Спасибо всем, кто ответил в опросе, ваша обратная свзяь очень полезна при разарботке контента для блога.
Вижу, что в тройке лидеров туториалы для новичков, Rx и архитектура. Значит не зря я активно дорабатываю курс по RxJava - вам точно пригодится!
А пока я дорабатываю статью по паттернам и пилю новый туториал по Android, хочу поделиться с вами забавной пасхалкой, которую нашёл во время отладки кода.
Во время поиска коварного бага, я нашёл новый тип layout - BlinkLayout, который появился в исходном коде Android в 2011 года!
Для чего он нужен и можно ли его использовать - читайте в статье. Если вы думали, что читать исходники Android
утомительно и скучно - то вот вам доказательство, что это ещё и весело!
https://bit.ly/2VOYN2J
@android_school_ru
Medium
BlinkLayout в Android
В этой истории я расскажу о том, что дебажить и изучать исходный код не только полезно, но и весело. Исследуя работу LayoutInlater и…
#di #service_locator
Чем отличается Dependency injection от Service Locator ?
Всем привет! Пока я пишу новый мини-туториал по одному из самых популярных
DI - фреймворков для Kotlin Android-приложений под названием Koin, чтобы вы не скучали, написал статью - введение, которая наглядно (надеюсь) покажет отличия между двумя популярными подходами и вообще объяснить что такое Dependency Injection и зачем оно нужно вам, если вы хотите писать гибкие и масштабируемые, а самое главное тестируемые приложения. Кстати такие вопросы любят задавать и на собеседованиях в том числе, так что думаю статья будет актуальна.
https://bit.ly/2A18wue
@android_school_ru
Чем отличается Dependency injection от Service Locator ?
Всем привет! Пока я пишу новый мини-туториал по одному из самых популярных
DI - фреймворков для Kotlin Android-приложений под названием Koin, чтобы вы не скучали, написал статью - введение, которая наглядно (надеюсь) покажет отличия между двумя популярными подходами и вообще объяснить что такое Dependency Injection и зачем оно нужно вам, если вы хотите писать гибкие и масштабируемые, а самое главное тестируемые приложения. Кстати такие вопросы любят задавать и на собеседованиях в том числе, так что думаю статья будет актуальна.
https://bit.ly/2A18wue
@android_school_ru
Medium
Чем отличается Dependency injection от Service Locator ?
Продолжаю тему паттернов проектирования и в этом посте мы рассмотрим чем отличаются 2 озвученных в заголовке паттерна и для чего они нужны…
#новый_курс #alarm_manager #notifications
Всем привет! Выходные - отличная возможность научиться чему-то новому и полезному! Поэтому представляю вам новый бесплатный мини-курс по разработке Android-приложений.
Очень часто возникают задачи, в которых нужно выполнять какую-то логику по расписанию или в запланированное время.
Это могут быть сетевые запросы для обновления виджета, отправление аналитики, или уведомление пользователля. Для такого
рода задач вы можете использовать AlarmManager и именно о нём будет этот мини-курс.
Мы разработаем приложение Фитнес-календарь, который будет напоминать вам о ежедневных тренировках. В процессе выполнения проекта вы освоите работу с Android Notifications для отображения уведомлений, а также вы научитесь использовать Alarm Manager и Broadcast Receiver для запуска механизма напоминаний.
Вы освоите:
Android Notifications и Notification Channels
PendingIntent
Alarm Manager
BroadcastReceiver
Room для хранения информации в качестве локальной БД
Примерное время для выполнения: 1.5 -2 часа
В результате у вас будет полноценное приложение и понимание, как использовать перечисленные компоненты.
https://androidschool.ru/courses/fitness-android-notifications-alarm-manager/
@android_school_ru
Всем привет! Выходные - отличная возможность научиться чему-то новому и полезному! Поэтому представляю вам новый бесплатный мини-курс по разработке Android-приложений.
Очень часто возникают задачи, в которых нужно выполнять какую-то логику по расписанию или в запланированное время.
Это могут быть сетевые запросы для обновления виджета, отправление аналитики, или уведомление пользователля. Для такого
рода задач вы можете использовать AlarmManager и именно о нём будет этот мини-курс.
Мы разработаем приложение Фитнес-календарь, который будет напоминать вам о ежедневных тренировках. В процессе выполнения проекта вы освоите работу с Android Notifications для отображения уведомлений, а также вы научитесь использовать Alarm Manager и Broadcast Receiver для запуска механизма напоминаний.
Вы освоите:
Android Notifications и Notification Channels
PendingIntent
Alarm Manager
BroadcastReceiver
Room для хранения информации в качестве локальной БД
Примерное время для выполнения: 1.5 -2 часа
В результате у вас будет полноценное приложение и понимание, как использовать перечисленные компоненты.
https://androidschool.ru/courses/fitness-android-notifications-alarm-manager/
@android_school_ru
#отладка #flipper #lynx
3 Полезных инструмента и приёма для разработчиков для отладки и тестирования приложений
Cегодня мы поговорим именно об инструментах и лучших практиках, которые облегчат вам и вашим тестировщикам жизнь при отладке и проверке мобильных приложений. Бывало так, что нужно посмотреть логи прямо в приложении, а студии не было рядом?
Или быстро посмотреть запрос/ответ или значение базы данных? Поэтому тут поделюсь отличными инструментами, которые на мой взгляд, довольно сильно улучшают производительность разработчика и всей команды в целом, при этом не требуют много времени для интеграции.
https://bit.ly/3hbrsYn
@android_school_ru
3 Полезных инструмента и приёма для разработчиков для отладки и тестирования приложений
Cегодня мы поговорим именно об инструментах и лучших практиках, которые облегчат вам и вашим тестировщикам жизнь при отладке и проверке мобильных приложений. Бывало так, что нужно посмотреть логи прямо в приложении, а студии не было рядом?
Или быстро посмотреть запрос/ответ или значение базы данных? Поэтому тут поделюсь отличными инструментами, которые на мой взгляд, довольно сильно улучшают производительность разработчика и всей команды в целом, при этом не требуют много времени для интеграции.
https://bit.ly/3hbrsYn
@android_school_ru
Medium
3 Полезных инструмента и приёма для разработчиков для отладки и тестирования приложений
Всем привет! Работа разработчика не ограничивается написанием нового кода и фич. К сожалению, большая часть нашей работы состоит из…
#adb #приёмы_эффективности
5 полезных команд Android Debug Bridge, которые повысят вашу эффективность
Всем привет! Помимо того, что я веду курсы по Android-разработке, недавно начал вести курс для тестировщиков мобильных приложений. Ну там рассказать как тестировать производительность приложений, проверить overdraw, runtime-permisions и кучу ещё всего для проверки именно мобильных приложений. Одной из тем была работа с adb (Android Debug Bridge).
Если вы раньше использовали эту штуку только для установки/удаления apk, то спешу поделиться с вами удобнейшим набором команд на все случаи жизни. Рекомендую ознакомиться и использовать - повысите эффективность и заметно вырастите в глазах коллег.
Из интересного:
- Быстрая проверка UI приложения через смену конфигурации экрана
- Сброс прав/разрешений приложения (очень удобно для тех, кто не хочет тратить время на поиски в настройках)
- Изменение SharedPreference (Спорим вы не знали об этом?)
- Сохранение логов в файл
- Ввод текста в EditText (а если знаете python то можно написать скрипт и не вводить одно и тоже при авторизации)
Здесь я указал самые частые кейсы, которыми пользуюсь сам, но с полным списком команд можете ознакомиться по ссылке
https://gist.github.com/Pulimet/5013acf2cd5b28e55036c82c91bd56d8
Ну а ещё, совсем скоро вас ждёт новый курс по работе с одним из компонентов Android Jetpack - WorkManager
@android_school_ru
5 полезных команд Android Debug Bridge, которые повысят вашу эффективность
Всем привет! Помимо того, что я веду курсы по Android-разработке, недавно начал вести курс для тестировщиков мобильных приложений. Ну там рассказать как тестировать производительность приложений, проверить overdraw, runtime-permisions и кучу ещё всего для проверки именно мобильных приложений. Одной из тем была работа с adb (Android Debug Bridge).
Если вы раньше использовали эту штуку только для установки/удаления apk, то спешу поделиться с вами удобнейшим набором команд на все случаи жизни. Рекомендую ознакомиться и использовать - повысите эффективность и заметно вырастите в глазах коллег.
Из интересного:
- Быстрая проверка UI приложения через смену конфигурации экрана
- Сброс прав/разрешений приложения (очень удобно для тех, кто не хочет тратить время на поиски в настройках)
- Изменение SharedPreference (Спорим вы не знали об этом?)
- Сохранение логов в файл
- Ввод текста в EditText (а если знаете python то можно написать скрипт и не вводить одно и тоже при авторизации)
Здесь я указал самые частые кейсы, которыми пользуюсь сам, но с полным списком команд можете ознакомиться по ссылке
https://gist.github.com/Pulimet/5013acf2cd5b28e55036c82c91bd56d8
Ну а ещё, совсем скоро вас ждёт новый курс по работе с одним из компонентов Android Jetpack - WorkManager
@android_school_ru
Gist
Adb useful commands list
Adb useful commands list. GitHub Gist: instantly share code, notes, and snippets.
#новый_курс #work_manager #rxworker
Если вы ещё не работали с мощным и гибким инструментом из Android JetPack - WorkManager - то этот бесплатный практический курс для вас! В этом курсе вы научитесь управлять фоновыми задачами, используя рекомендованный Google компонент – WorkManager. Это современный способ для управления задачами, которые должны выполняться не в UI – потоке, даже когда пользователь уже активно не взаимодействует с приложением.
Задачи, эффективно решаемые с помощью WorkManager
- Выполнение сетевых запросов с заданной периодичностью
- Очищение кэша базы данных раз в сутки
- Обновление информации для виджетов
- Последовательное выполнение фоновых задач
- Скачивание тяжёлых файлов
- Трекинг геолокации пользователя в фоне
В этом курсе вы разработаете приложение-геотрекер. Приложение получает координаты устройства и сохраняет в локальную БД Room каждые 15 минут.
Вы освоите:
- Запуск фоновых задач без работы приложения через WorkManager
- Условия запуска фоновой задачи с использованием Constraints (наличие сети, состояние батареи и т.д.)
- Виды задач OneTimeWorkRequest и PeriodicWorkRequest
- Работа с RxWorker
- Способы получения геолокации через FusedLocationProviderClient
- Room для хранения информации в качестве локальной БД
- Flipper как инструмент для отладки Android-приложений
Курс бесплатный, но требуется регистрация. После регистрации вам доступны уроки и пошаговые примеры кода. Не забудьте оставить обратную связь и оценить курс
https://androidschool.ru/courses/background-tasks-with-workmanager/
@android_school_ru
Если вы ещё не работали с мощным и гибким инструментом из Android JetPack - WorkManager - то этот бесплатный практический курс для вас! В этом курсе вы научитесь управлять фоновыми задачами, используя рекомендованный Google компонент – WorkManager. Это современный способ для управления задачами, которые должны выполняться не в UI – потоке, даже когда пользователь уже активно не взаимодействует с приложением.
Задачи, эффективно решаемые с помощью WorkManager
- Выполнение сетевых запросов с заданной периодичностью
- Очищение кэша базы данных раз в сутки
- Обновление информации для виджетов
- Последовательное выполнение фоновых задач
- Скачивание тяжёлых файлов
- Трекинг геолокации пользователя в фоне
В этом курсе вы разработаете приложение-геотрекер. Приложение получает координаты устройства и сохраняет в локальную БД Room каждые 15 минут.
Вы освоите:
- Запуск фоновых задач без работы приложения через WorkManager
- Условия запуска фоновой задачи с использованием Constraints (наличие сети, состояние батареи и т.д.)
- Виды задач OneTimeWorkRequest и PeriodicWorkRequest
- Работа с RxWorker
- Способы получения геолокации через FusedLocationProviderClient
- Room для хранения информации в качестве локальной БД
- Flipper как инструмент для отладки Android-приложений
Курс бесплатный, но требуется регистрация. После регистрации вам доступны уроки и пошаговые примеры кода. Не забудьте оставить обратную связь и оценить курс
https://androidschool.ru/courses/background-tasks-with-workmanager/
@android_school_ru
#MLKit #CameraX #LandmarkApi #Firebase #WikipediaApi
Новый курс: Распознавание образов на базе ML Kit и CameraX в Android.
Машинное обучение и нейронные сети окружают нас повсюду и только глухой не слышал о ML, Deep Learning и других баззвордах. А как дела обстоят с мобильными приложениями? Насколько сложно использовать методы ML в современных мобильных приложениях?
Не обязательно быть кандидатом наук, чтобы использовать ML при разработке собственных приложений. В этом мини-курсе предлагается разработать приложение - сканер известных достопримечательностей. Вы наводите камеру на Эйфелеву Башню и узнаёте интересные факты о ней. С помощью ML Kit SDK - это делается в несколько строк кода.
В этом курсе вы научитесь:
- Использовать ML Kit для задач распознавания изображений, в частности landmark recognition API
- Применять новый компонент CameraX - рекомендуемый Google для разработки приложений использующих камеру
- Получать данные из Wikipedia API
- Использовать Retrofit для сетевых запросов
Курс бесплатный, но требуется регистрация. После регистрации вам доступны уроки и пошаговые примеры кода. Не забудьте оставить обратную связь и оценить курс!
https://androidschool.ru/courses/landmark-recognition-api-ml-kit/
@android_school_ru
Новый курс: Распознавание образов на базе ML Kit и CameraX в Android.
Машинное обучение и нейронные сети окружают нас повсюду и только глухой не слышал о ML, Deep Learning и других баззвордах. А как дела обстоят с мобильными приложениями? Насколько сложно использовать методы ML в современных мобильных приложениях?
Не обязательно быть кандидатом наук, чтобы использовать ML при разработке собственных приложений. В этом мини-курсе предлагается разработать приложение - сканер известных достопримечательностей. Вы наводите камеру на Эйфелеву Башню и узнаёте интересные факты о ней. С помощью ML Kit SDK - это делается в несколько строк кода.
В этом курсе вы научитесь:
- Использовать ML Kit для задач распознавания изображений, в частности landmark recognition API
- Применять новый компонент CameraX - рекомендуемый Google для разработки приложений использующих камеру
- Получать данные из Wikipedia API
- Использовать Retrofit для сетевых запросов
Курс бесплатный, но требуется регистрация. После регистрации вам доступны уроки и пошаговые примеры кода. Не забудьте оставить обратную связь и оценить курс!
https://androidschool.ru/courses/landmark-recognition-api-ml-kit/
@android_school_ru
#новый_курс #unit_tests #mockito #mvp
В этом мини-курсе на @android_school_ru мы разработаем приложение для поиска и сохранения любимых фильмов, а потом напишем Unit-тесты, используя Mockito.
Unit-тесты являются залогом здорового сна для разработчика. Если ваш код покрыт тестами, то количество багов будет стремительно уменьшаться - ваши пользователи перестанут писать негативные отзывы в Play Market, а вы наконец-то займётесь разработкой новых интересных фичей вместо постоянного исправления багов. К тому же тесты являются отличной документацией - по ним можно легко понять логику. А ещё они заставляют декомпозировать ваш код на мелкие тестируемые части.
Кроме unit-тестов, мы рассмотрим такую архитектуру как MVP и перепишем приложение так,
чтобы оно соответствовало принципам такой архитектуры для дальнейшего покрытия тестами.
После прохождения мини-курса вы сможете:
- Писать собственные Unit-тесты
- Использовать Mockito для написания unit-тестов
- Применять архитектурный паттерн MVP для разработки Android-приложений
В итоге вы научитесь писать unit-тесты на базе Mockito и разрабатывать Android-приложения в соответствии с паттерном MVP.
Курс бесплатный, но требуется регистрация. После регистрации вам доступны уроки и пошаговые примеры кода. Не забудьте оставить обратную связь и оценить курс!
https://androidschool.ru/courses/mockito-unit-tests-with-mvp/
@android_school_ru
В этом мини-курсе на @android_school_ru мы разработаем приложение для поиска и сохранения любимых фильмов, а потом напишем Unit-тесты, используя Mockito.
Unit-тесты являются залогом здорового сна для разработчика. Если ваш код покрыт тестами, то количество багов будет стремительно уменьшаться - ваши пользователи перестанут писать негативные отзывы в Play Market, а вы наконец-то займётесь разработкой новых интересных фичей вместо постоянного исправления багов. К тому же тесты являются отличной документацией - по ним можно легко понять логику. А ещё они заставляют декомпозировать ваш код на мелкие тестируемые части.
Кроме unit-тестов, мы рассмотрим такую архитектуру как MVP и перепишем приложение так,
чтобы оно соответствовало принципам такой архитектуры для дальнейшего покрытия тестами.
После прохождения мини-курса вы сможете:
- Писать собственные Unit-тесты
- Использовать Mockito для написания unit-тестов
- Применять архитектурный паттерн MVP для разработки Android-приложений
В итоге вы научитесь писать unit-тесты на базе Mockito и разрабатывать Android-приложения в соответствии с паттерном MVP.
Курс бесплатный, но требуется регистрация. После регистрации вам доступны уроки и пошаговые примеры кода. Не забудьте оставить обратную связь и оценить курс!
https://androidschool.ru/courses/mockito-unit-tests-with-mvp/
@android_school_ru
#kotlin_coroutines #новый_курс
Мини-курс "Введение в Kotlin Coroutines" - подойдёт для начинающих разработчиков, которые до этого не использовали Kotlin Coroutines. В нём мы разберём основы работы с корутинами. В результате вы сможете использовать Kotlin Coroutines в своих Android-приложениях для сетевых запросов, взаимодействия с UI и любых других асинхронных операций. Это всего лишь введение, призванное показать вам пример работы с корутинами, а более мощный продвинутый практический курс будет доступен осенью.
После прохождения туториала вы поймете:
- Как создать coroutines.
- Как запустить асинхронную операцию через корутины
- Обработка ошибок через coroutines.
Мы разработаем приложение - упрощенный клон Instagram. Пользователь сможет накладывать определённые фильтры на изображения. Загрузку изображений и применение фильтров мы будем реализовывать через Kotlin Coroutines.
Курс бесплатный, но требуется регистрация. После регистрации вам доступны уроки и пошаговые примеры кода. Не забудьте оставить обратную связь и оценить курс
https://androidschool.ru/courses/kotlin-coroutines-intro/
@android_school_ru
Мини-курс "Введение в Kotlin Coroutines" - подойдёт для начинающих разработчиков, которые до этого не использовали Kotlin Coroutines. В нём мы разберём основы работы с корутинами. В результате вы сможете использовать Kotlin Coroutines в своих Android-приложениях для сетевых запросов, взаимодействия с UI и любых других асинхронных операций. Это всего лишь введение, призванное показать вам пример работы с корутинами, а более мощный продвинутый практический курс будет доступен осенью.
После прохождения туториала вы поймете:
- Как создать coroutines.
- Как запустить асинхронную операцию через корутины
- Обработка ошибок через coroutines.
Мы разработаем приложение - упрощенный клон Instagram. Пользователь сможет накладывать определённые фильтры на изображения. Загрузку изображений и применение фильтров мы будем реализовывать через Kotlin Coroutines.
Курс бесплатный, но требуется регистрация. После регистрации вам доступны уроки и пошаговые примеры кода. Не забудьте оставить обратную связь и оценить курс
https://androidschool.ru/courses/kotlin-coroutines-intro/
@android_school_ru
#android_navigation #новый_курс
Всем привет! Новый мини курс, на этот раз для новичков в Android по навигации в приложении.
Мини-курс “Навигация в Android через Navigation Architecture Component” – подойдёт для начинающих разработчиков, которые хотят разобраться в реализации переходов между экранами в Android c помощью Navigation Architecture Component - библиотеки от Google являющейся частью Android Architecture Components. В результате вы сможете использовать Navigation Architecture Component в своих Android-приложениях для переходов между экранами, а также реализовать механизм deeplinks.
После прохождения туториала вы сможете:
📌 Реализовать переходы между экранами
📌 Обрабатывать deeplinks
📌 Передавать и читать данные между экранами
Мы разработаем простое приложение для демонстрации – список для чтения. Пользователь сможет просматривать список книг для чтения и хранить список прочитанных книг, просматривать детали
Курс бесплатный, но требуется регистрация. После регистрации вам доступны уроки и пошаговые примеры кода. Чтобы после регистрации начать курс - нажмите кнопку Enroll внизу или справа на детальном описании курса. Не забудьте оставить обратную связь и оценить курс
https://androidschool.ru/courses/navigation-architecture-component/
После регистрации проверьте письмо в спаме, иногда туда попадают письма.
Кроме того, задать вопрос или предложить идею для курса вы можете в нашем пока маленьком чате https://t.me/android_school_talk
@android_school_ru
Всем привет! Новый мини курс, на этот раз для новичков в Android по навигации в приложении.
Мини-курс “Навигация в Android через Navigation Architecture Component” – подойдёт для начинающих разработчиков, которые хотят разобраться в реализации переходов между экранами в Android c помощью Navigation Architecture Component - библиотеки от Google являющейся частью Android Architecture Components. В результате вы сможете использовать Navigation Architecture Component в своих Android-приложениях для переходов между экранами, а также реализовать механизм deeplinks.
После прохождения туториала вы сможете:
📌 Реализовать переходы между экранами
📌 Обрабатывать deeplinks
📌 Передавать и читать данные между экранами
Мы разработаем простое приложение для демонстрации – список для чтения. Пользователь сможет просматривать список книг для чтения и хранить список прочитанных книг, просматривать детали
Курс бесплатный, но требуется регистрация. После регистрации вам доступны уроки и пошаговые примеры кода. Чтобы после регистрации начать курс - нажмите кнопку Enroll внизу или справа на детальном описании курса. Не забудьте оставить обратную связь и оценить курс
https://androidschool.ru/courses/navigation-architecture-component/
После регистрации проверьте письмо в спаме, иногда туда попадают письма.
Кроме того, задать вопрос или предложить идею для курса вы можете в нашем пока маленьком чате https://t.me/android_school_talk
@android_school_ru
Спасибо всем, кто подписался и читает канал, я уверен, вы найдёте на канале, блоге и платформе AndroidSchool.ru множество полезного материла. Теперь, немного хочу познакомиться с вами и представлюсь. Меня зовут Михаил Валуйский, с 0 разработал и до сих пор работаю над приложением
"Мой Билайн"(10+ млн. инсталов) в компании Билайн в качестве лида и руководителя команды Android. До этого работал в Alibaba, Rambler и других компаниях. Кроме того, веду уроки в базовом и продвинутом курсе по Android-разработке в онлайн - школе Otus.
Проект AndroidSchool.ru и канал призваны помочь начинающим и мидл-разработчиком в получении и совершенствовании навыков, необходимых современному Android-разработчику. Здесь будут как обзоры и туториалы новых фишек, так и более фундаментальные вещи, как скажем паттерны, архитектуры и т.д.
Чтобы материалы и туториалы были максимально полезны, не поленитесь рассказать о себе, это займёт не больше 15 секунд https://forms.gle/RsfqXp6CNjqjJ6Xh9
"Мой Билайн"(10+ млн. инсталов) в компании Билайн в качестве лида и руководителя команды Android. До этого работал в Alibaba, Rambler и других компаниях. Кроме того, веду уроки в базовом и продвинутом курсе по Android-разработке в онлайн - школе Otus.
Проект AndroidSchool.ru и канал призваны помочь начинающим и мидл-разработчиком в получении и совершенствовании навыков, необходимых современному Android-разработчику. Здесь будут как обзоры и туториалы новых фишек, так и более фундаментальные вещи, как скажем паттерны, архитектуры и т.д.
Чтобы материалы и туториалы были максимально полезны, не поленитесь рассказать о себе, это займёт не больше 15 секунд https://forms.gle/RsfqXp6CNjqjJ6Xh9
Google Docs
Пожелания к контенту AndroidSchool.ru
ANDROID SCHOOL.RU - Android на практике pinned Deleted message
Применяем паттерны проектирования в Android. Flyweight (Легковес).
Тема паттернов традиционно считается чем-то очень сложным, однако многие из разработчиков могут даже не подозревать, что используют их каждый день.
В этой статье я описал один из популярных паттернов, который реализован под капотом в Java, вы узнаете зачем вам применять такой паттерн проектирования как Легковес, какие есть примеры реализации в реальной жизни, узнаете о преимуществах и недостатках паттерна. И самое главное, после прочтения этой статьи вы ответите на вопрос, который очень любят задавать на собеседованиях. @android_school_ru
Узнать про паттерн Flyweight (Легковес)
Тема паттернов традиционно считается чем-то очень сложным, однако многие из разработчиков могут даже не подозревать, что используют их каждый день.
В этой статье я описал один из популярных паттернов, который реализован под капотом в Java, вы узнаете зачем вам применять такой паттерн проектирования как Легковес, какие есть примеры реализации в реальной жизни, узнаете о преимуществах и недостатках паттерна. И самое главное, после прочтения этой статьи вы ответите на вопрос, который очень любят задавать на собеседованиях. @android_school_ru
Узнать про паттерн Flyweight (Легковес)
Medium
Применяем паттерны проектирования в Android. Flyweight
Тема паттернов проектирования будет актуальная всегда, потому что писать масштабируемый и читаемый код нужно всегда, независимо под какую…
🔐 Как сделать аутентификацию через отпечаток пальца или faceId? Изучаем AndroidX Biometric Library.
Возможно, вы неоднократно задавались вопросом, как реализовать вход в приложение через отпечаток пальца или faceId?
До Biometric Library, каждый реализовывал процесс входа по отпечатку пальца как мог. Какого-то стандартного способа не было, что приводило к большим неудобствам для разработчиков, учитывая высокую фрагментированность устройств на Android. К счастью, в Android 10 (API 29) была учтена обратная связь от разработчиков, и теперь появился единый интерфейс для использования биометрических датчиков (сканер отпечатка пальца и faceId) для аутентификации с помощью AndroidX Biometric Library API буквально в несколько строчек, при этом появился стандартный диалог, который избавит вас от ненужного кода и самостоятельного создания UI.
В этой статье мы поговорим как работать с AndroidX Biometric Library API и создадим небольшое приложение, которое предлагает пользователю пройти процесс аутентификации через отпечаток пальца.
Кроме того, напомню для тех, кто недавно присоединился к нам - на платформе androidschool.ru - много полезных современных туториалов, каждый снабжён кодом и примерами.
Возможно, вы неоднократно задавались вопросом, как реализовать вход в приложение через отпечаток пальца или faceId?
До Biometric Library, каждый реализовывал процесс входа по отпечатку пальца как мог. Какого-то стандартного способа не было, что приводило к большим неудобствам для разработчиков, учитывая высокую фрагментированность устройств на Android. К счастью, в Android 10 (API 29) была учтена обратная связь от разработчиков, и теперь появился единый интерфейс для использования биометрических датчиков (сканер отпечатка пальца и faceId) для аутентификации с помощью AndroidX Biometric Library API буквально в несколько строчек, при этом появился стандартный диалог, который избавит вас от ненужного кода и самостоятельного создания UI.
В этой статье мы поговорим как работать с AndroidX Biometric Library API и создадим небольшое приложение, которое предлагает пользователю пройти процесс аутентификации через отпечаток пальца.
Кроме того, напомню для тех, кто недавно присоединился к нам - на платформе androidschool.ru - много полезных современных туториалов, каждый снабжён кодом и примерами.
#jetpack #datastore
Jetpack DataStore - новый способ хранения данных
В этом мини-курсе вы познакомитесь с Jetpack Datastore – это новый и улучшенный способ хранения данных, призванный заменить SharedPreferences. DataStore предоставляет 2 имплементации: Proto DataStore, позволяющий хранить типизированные объекты typed objects (на базе protocol buffers) и Preferences DataStore, хранящий пары ключ-значение. Данные сохраняются асинхронно, консистентно и транзакционно, избавляя от недостатков подхода на SharedPreferences.
📌Вы узнаете:
- Что такое DataStore и почему стоит его использовать.
- Как добавить DataStore в ваш проект.
- Ключевые различия между Preferences и DataStore и плюсы/минусы использования
- Как использовать Preferences DataStore.
- Как мигрировать с SharedPreferences на новые Preferences DataStore.
📌Проект:
В качестве практического примера вы разработаете приложение-список дел, которое позволяет сортировать список созданных задач по приоритету или по дедлайну. Ссылка на мини-курс
По ссылке вам доступны уроки и пошаговые примеры кода. Не забудьте оставить обратную связь и оценить курс
Канал AndroidSchool.ru
Jetpack DataStore - новый способ хранения данных
В этом мини-курсе вы познакомитесь с Jetpack Datastore – это новый и улучшенный способ хранения данных, призванный заменить SharedPreferences. DataStore предоставляет 2 имплементации: Proto DataStore, позволяющий хранить типизированные объекты typed objects (на базе protocol buffers) и Preferences DataStore, хранящий пары ключ-значение. Данные сохраняются асинхронно, консистентно и транзакционно, избавляя от недостатков подхода на SharedPreferences.
📌Вы узнаете:
- Что такое DataStore и почему стоит его использовать.
- Как добавить DataStore в ваш проект.
- Ключевые различия между Preferences и DataStore и плюсы/минусы использования
- Как использовать Preferences DataStore.
- Как мигрировать с SharedPreferences на новые Preferences DataStore.
📌Проект:
В качестве практического примера вы разработаете приложение-список дел, которое позволяет сортировать список созданных задач по приоритету или по дедлайну. Ссылка на мини-курс
По ссылке вам доступны уроки и пошаговые примеры кода. Не забудьте оставить обратную связь и оценить курс
Канал AndroidSchool.ru
#новый_курс #viewmodel #livedata
Android LiveData и ViewModel
В этом курсе вы научитесь работать с компонентами, помогающими пережить жизненный цикл активити или фрагментов LiveData и ViewModel. Обычно, когда меняются данные, нужно обновить состояние и графического интерфейса, который отображал данные. Учитывая то, что Android-компоненты имеют свой жизненный цикл и могут быть недоступны на момент обновления интерфейса - до недавнего времени обработка таких ситуаций была настоящей головной болью для разработчиков. Однако теперь с помощью LiveData это стало проще простого. И в этом курсе мы разберёмся как это сделать.
Ключевые особенности курса:
📌 Научитесь работать с компонентами, помогающими пережить жизненный цикл активити или фрагментов
📌 Сможете применять LiveData для обновления UI
📌 Освоите работу с ViewModel
📌 Научитесь работать с Android Architecture Components
Курс бесплатный, но требуется регистрация. После регистрации вам доступны уроки и пошаговые примеры кода. Чтобы после регистрации начать курс - нажмите кнопку Enroll внизу или справа на детальном описании курса. Не забудьте оставить обратную связь и оценить курс
https://androidschool.ru/courses/livedata-start/
Задать вопрос или предложить идею для курса вы можете в чате https://t.me/android_school_talk
Android LiveData и ViewModel
В этом курсе вы научитесь работать с компонентами, помогающими пережить жизненный цикл активити или фрагментов LiveData и ViewModel. Обычно, когда меняются данные, нужно обновить состояние и графического интерфейса, который отображал данные. Учитывая то, что Android-компоненты имеют свой жизненный цикл и могут быть недоступны на момент обновления интерфейса - до недавнего времени обработка таких ситуаций была настоящей головной болью для разработчиков. Однако теперь с помощью LiveData это стало проще простого. И в этом курсе мы разберёмся как это сделать.
Ключевые особенности курса:
📌 Научитесь работать с компонентами, помогающими пережить жизненный цикл активити или фрагментов
📌 Сможете применять LiveData для обновления UI
📌 Освоите работу с ViewModel
📌 Научитесь работать с Android Architecture Components
Курс бесплатный, но требуется регистрация. После регистрации вам доступны уроки и пошаговые примеры кода. Чтобы после регистрации начать курс - нажмите кнопку Enroll внизу или справа на детальном описании курса. Не забудьте оставить обратную связь и оценить курс
https://androidschool.ru/courses/livedata-start/
Задать вопрос или предложить идею для курса вы можете в чате https://t.me/android_school_talk
Платформа AndroidSchool теперь обзавелась своим образовательным блогом на хабре! Первая статья о том, как создать сложный список за 20 минут! Сохраните себе, чтобы не забыть - точно пригодится! Комментарии и репосты приветствуются!
https://habr.com/ru/post/523768/
https://habr.com/ru/post/523768/
Хабр
Создание сложного списка элементов за 20 минут в Android на базе Groupie
Списки являются основным способом представления различного контента в мобильных приложениях. Будь то социальная сеть, приложение для чтения книг или интернет-маг...
#koin #внедрениезависимости #di #servicelocator
Koin. Основы внедрения зависимостей
🚀Арсенал современного Android-разработчика стремительно обновляется и, хотя Koin уже более 2-ух лет доступен для использования, очень много туториалов используют старые и неактуальные версии. Поэтому я решил посвятить новый туториал основам работы с Koin.
В Android-разработке для DI традиционно используют Dagger 2, очень мощный фреймворк с кодогенерацией. Но есть проблема: новичкам сложно его использовать. Сами принципы DI просты и понятны, но Dagger усложняет их. С появлением Kotlin появилась возможность писать удобные вещи, которые были бы практически невозможны с использованием Java. Одной из таких вещей стал Koin, имеющий очень лаконичный API, упрощающий написание и поддержку кода. Пройдя новый курс: "Koin. Основы внедрения зависимостей" вы поймёте разницу между Dependency Injection и Service Locator, а также научитесь работать с Koin.
Ключевые особенности курса:
📌 Поймёте разницу между паттернами Dependency Injection и Service Locator
📌 Научитесь работать с Koin и применять своих проектах
📌 Готовый проект с исходным кодом доступен на GitHub
Курс бесплатный, но требуется регистрация. После регистрации вам доступны уроки и пошаговые примеры кода. Чтобы после регистрации начать курс - нажмите кнопку Enroll внизу или справа на детальном описании курса. Не забудьте оставить обратную связь и оценить курс
📚Ссылка на курс
💬Чат канала
Koin. Основы внедрения зависимостей
🚀Арсенал современного Android-разработчика стремительно обновляется и, хотя Koin уже более 2-ух лет доступен для использования, очень много туториалов используют старые и неактуальные версии. Поэтому я решил посвятить новый туториал основам работы с Koin.
В Android-разработке для DI традиционно используют Dagger 2, очень мощный фреймворк с кодогенерацией. Но есть проблема: новичкам сложно его использовать. Сами принципы DI просты и понятны, но Dagger усложняет их. С появлением Kotlin появилась возможность писать удобные вещи, которые были бы практически невозможны с использованием Java. Одной из таких вещей стал Koin, имеющий очень лаконичный API, упрощающий написание и поддержку кода. Пройдя новый курс: "Koin. Основы внедрения зависимостей" вы поймёте разницу между Dependency Injection и Service Locator, а также научитесь работать с Koin.
Ключевые особенности курса:
📌 Поймёте разницу между паттернами Dependency Injection и Service Locator
📌 Научитесь работать с Koin и применять своих проектах
📌 Готовый проект с исходным кодом доступен на GitHub
Курс бесплатный, но требуется регистрация. После регистрации вам доступны уроки и пошаговые примеры кода. Чтобы после регистрации начать курс - нажмите кнопку Enroll внизу или справа на детальном описании курса. Не забудьте оставить обратную связь и оценить курс
📚Ссылка на курс
💬Чат канала
ANDROID SCHOOL.RU - Android на практике pinned Deleted message
Kotlin Android Extensions deprecated. Что делать? Инструкция по миграции
Возможно, вы уже слышали, что Kotlin Android Extensions — плагин для Kotlin теперь deprecated.
Безусловно, это было очень удобно, особенно если у вас проект полностью на Kotlin. Однако, мир меняется и теперь нужно искать альтернативы. Написал небольшую статью в блоге на medium по этому поводу. В статье мы кратко рассмотрим, что такое плагин Kotlin Android Extension, какие были проблемы с ним и что теперь нам, Android-разработчикам делать.
📚Читать полностью
Возможно, вы уже слышали, что Kotlin Android Extensions — плагин для Kotlin теперь deprecated.
Безусловно, это было очень удобно, особенно если у вас проект полностью на Kotlin. Однако, мир меняется и теперь нужно искать альтернативы. Написал небольшую статью в блоге на medium по этому поводу. В статье мы кратко рассмотрим, что такое плагин Kotlin Android Extension, какие были проблемы с ним и что теперь нам, Android-разработчикам делать.
📚Читать полностью
Medium
Kotlin Android Extensions deprecated. Что делать?Инструкция по миграции
Возможно, вы уже слышали, что Kotlin Android Extensions — плагин для Kotlin теперь deprecated.
#paging #flow #бесконечныйсписок
Реализуем бесконечный список на базе Android Paging Library 3.0
🚀Списки являются неотъемлемой частью любого мобильного приложения. У большинства списков нет фиксированного размера, поскольку информации слишком много для отображения сразу. Например, приложения соцсетей такие как Вконтакте, Instagram, Facebook. Вы можете бесконечно скролить вниз ленту новостей и никогда не дойдёте до конца - так как контента слишком много. Естественно, загружать сразу большой массив данных в мобильное приложение нельзя. Здесь есть множество причин: часто интернет в мобильных телефонах не такой быстрый как в WiFi, кроме того еще и платный. Очевидно, что данные нужно загружать порционно - такой паттерн называется paging (разбивка на страницы, подкачка страниц).
К счастью, Google анонсировал библиотеку, позволяющую реализовать процесс постраничной загрузки данных в Android c минимальными трудозатратами. Такой подход улучшит пользовательский опыт при работе с приложением - так как для пользователя список будет казаться бесконечным и получение новой порции данных будет незаметно.
Ключевые особенности курса:
📌 Рассмотрим Android Paging Library 3.0
📌 На примере рассмотрим работу с Kotlin Flow
📌 Научитесь реализовывать бесконечные списки с постраничной загрузкой
📌 Готовый проект с исходным кодом доступен на GitHub
Ну а я напоминаю, что у вас есть возможность присоединиться к практическому онлайн-интенсиву, где вы прокачаетесь в Android на практике за 12 занятий.
📚Ссылка на курс
💬Чат канала
🔥Онлайн-интенсив
Реализуем бесконечный список на базе Android Paging Library 3.0
🚀Списки являются неотъемлемой частью любого мобильного приложения. У большинства списков нет фиксированного размера, поскольку информации слишком много для отображения сразу. Например, приложения соцсетей такие как Вконтакте, Instagram, Facebook. Вы можете бесконечно скролить вниз ленту новостей и никогда не дойдёте до конца - так как контента слишком много. Естественно, загружать сразу большой массив данных в мобильное приложение нельзя. Здесь есть множество причин: часто интернет в мобильных телефонах не такой быстрый как в WiFi, кроме того еще и платный. Очевидно, что данные нужно загружать порционно - такой паттерн называется paging (разбивка на страницы, подкачка страниц).
К счастью, Google анонсировал библиотеку, позволяющую реализовать процесс постраничной загрузки данных в Android c минимальными трудозатратами. Такой подход улучшит пользовательский опыт при работе с приложением - так как для пользователя список будет казаться бесконечным и получение новой порции данных будет незаметно.
Ключевые особенности курса:
📌 Рассмотрим Android Paging Library 3.0
📌 На примере рассмотрим работу с Kotlin Flow
📌 Научитесь реализовывать бесконечные списки с постраничной загрузкой
📌 Готовый проект с исходным кодом доступен на GitHub
Ну а я напоминаю, что у вас есть возможность присоединиться к практическому онлайн-интенсиву, где вы прокачаетесь в Android на практике за 12 занятий.
📚Ссылка на курс
💬Чат канала
🔥Онлайн-интенсив