#Gradle
Android Environments build Gradle plugin
С приходом билд системы на основе Gradle в Android появилась возможность использования BuildConfig - специального класса, в котором содержится ряд стандартных констант (версия, buildVariant и пр.) так и имеется возможность добавлять свои собственные из Gradle скриптов.
Проблема в том, что описывать множество таких констант для разных
Android Environments build Gradle plugin
С приходом билд системы на основе Gradle в Android появилась возможность использования BuildConfig - специального класса, в котором содержится ряд стандартных констант (версия, buildVariant и пр.) так и имеется возможность добавлять свои собственные из Gradle скриптов.
Проблема в том, что описывать множество таких констант для разных
buildType
и productFlavor
не является удобным. Для решение этой проблемы я нашел удобный Gradle плагин, который позволяет описывать константы в property файлах, расположенных в соответствующей buildType
и productFlavor
папке в исходниках.GitHub
GitHub - IlyaPavlovskii/Android-Environments: Android environments builder
Android environments builder. Contribute to IlyaPavlovskii/Android-Environments development by creating an account on GitHub.
Используете ли вы Robolectric?
Final Results
5%
Да, много тестов на нем
19%
Да, немного тестов на нем
60%
Нет
16%
Что это?
#AndroidAcademy #Moscow
Android Academy в Москве: Advanced Course
Android Academy возвращается в Москву с новым курсом Advanced 🎉. В рамках него вы сможете познакомиться с различными темами из Android разработки на более глубоком уровне.
Курс будет полезен тем кто уже успел окончить курс Fundamentals, так и практикующим инженерам, которые хотят улучшить свои знания в Android разработке.
Вас ждет 6 лекций по 1.5 часа каждые 2-3 недели:
1️⃣ Advanced Multithreading
2️⃣ Optimizations
3️⃣ Advanced & Secure Networking
4️⃣ Advanced Architecture
5️⃣ DI: How to and why
6️⃣ Android Internals
Когда: 25 июля 19:00
Где: офис "Авито", БЦ «Белые Сады», ул. Лесная, 7
Участие бесплатное по предварительной регистрации
Android Academy в Москве: Advanced Course
Android Academy возвращается в Москву с новым курсом Advanced 🎉. В рамках него вы сможете познакомиться с различными темами из Android разработки на более глубоком уровне.
Курс будет полезен тем кто уже успел окончить курс Fundamentals, так и практикующим инженерам, которые хотят улучшить свои знания в Android разработке.
Вас ждет 6 лекций по 1.5 часа каждые 2-3 недели:
1️⃣ Advanced Multithreading
2️⃣ Optimizations
3️⃣ Advanced & Secure Networking
4️⃣ Advanced Architecture
5️⃣ DI: How to and why
6️⃣ Android Internals
Когда: 25 июля 19:00
Где: офис "Авито", БЦ «Белые Сады», ул. Лесная, 7
Участие бесплатное по предварительной регистрации
Хабр
Android Academy в Москве: Advanced Course
Всем привет! Лето — это отличное время года. Подошли к концу Google I/O, Mobius и AppsConf, а многие студенты уже закрыли или вот-вот уже закончат сдавать сессии...
#Yandex
Yandex Droid Mission
Разработчики Яндекса запустила онлайн-квест с задачами, которые часто приходится решать Android‑специалистам.
Конкурс проходит с 25 июня по 25 июля. Участвовать в онлайн-квесте могут граждане России и других стран СНГ, достигшие возраста 18 лет.
Yandex Droid Mission
Разработчики Яндекса запустила онлайн-квест с задачами, которые часто приходится решать Android‑специалистам.
Конкурс проходит с 25 июня по 25 июля. Участвовать в онлайн-квесте могут граждане России и других стран СНГ, достигшие возраста 18 лет.
#Security #Storage #Keystore
Storing data securely on Android. Part 1 - Introduction
Современные смартфоны хранят множество нашей личной информации, имеют доступ к рабочим документам и почтам, личной жизни, которую не один пользователь не хотел раскрывать кому угодно. В современном мире разработчику приложений нужно понимать как обеспечивать должный уровень безопасности данных.
Каким образом в Android можно защитить данные от злоумышленников? Стандартные подходы это:
👉 Повышение сложности доступа к данным: хранение их во внутренней памяти устройства, шифрование и пр.
👉Использовать Android keystore system для хранения ключей
Storing data securely on Android. Part 1 - Introduction
Современные смартфоны хранят множество нашей личной информации, имеют доступ к рабочим документам и почтам, личной жизни, которую не один пользователь не хотел раскрывать кому угодно. В современном мире разработчику приложений нужно понимать как обеспечивать должный уровень безопасности данных.
Каким образом в Android можно защитить данные от злоумышленников? Стандартные подходы это:
👉 Повышение сложности доступа к данным: хранение их во внутренней памяти устройства, шифрование и пр.
👉Использовать Android keystore system для хранения ключей
#Security #Storage #Keystore
Storing data securely on Android. Part 2 - KeyStore Symmetric
Как использовать Android keystore system с симметричным ключом (доступно на Android API Level 23+)
Storing data securely on Android. Part 2 - KeyStore Symmetric
Как использовать Android keystore system с симметричным ключом (доступно на Android API Level 23+)
#GarbageCollector #MemoryLeak
Everything you need to know about Memory Leaks in Android
Android имеет хорошую систему очистку памяти, которая улучшается с выходом каждой новой версией ОС. Но допустить утечку памяти все также остается возможным. В статье довольно простым языком и наглядными иллюстрациями показывается:
👉 Что такое Stack и Heap
👉 Как очищается память Garbage Collector-ом
👉 Как возникают утечки памяти и как не допускать их
👉 Последствия утечек памяти
👉 Поиск утечек памяти
Everything you need to know about Memory Leaks in Android
Android имеет хорошую систему очистку памяти, которая улучшается с выходом каждой новой версией ОС. Но допустить утечку памяти все также остается возможным. В статье довольно простым языком и наглядными иллюстрациями показывается:
👉 Что такое Stack и Heap
👉 Как очищается память Garbage Collector-ом
👉 Как возникают утечки памяти и как не допускать их
👉 Последствия утечек памяти
👉 Поиск утечек памяти
Medium
Everything you need to know about Memory Leaks in android.
One of the core benefits of Java that they are garbage collected language. Essentially, we can create objects and the garbage collector…
#AndroidQ
Capturing Audio in Android Q
В Android 10 Q появилась возможность захватывать аудио других приложений с помощью AudioPlaybackCapture API.
Например, с помощью этого работает функция Live Caption, которая позволяет отображать субтитры для аудио любого приложения. Также можно стримить игры с устройства со звуком.
Чтобы осуществлять захват аудио, пользователь должен предоставить разрешение, а также вы можете запретить захватить аудио вашего приложения полностью или частично.
Capturing Audio in Android Q
В Android 10 Q появилась возможность захватывать аудио других приложений с помощью AudioPlaybackCapture API.
Например, с помощью этого работает функция Live Caption, которая позволяет отображать субтитры для аудио любого приложения. Также можно стримить игры с устройства со звуком.
Чтобы осуществлять захват аудио, пользователь должен предоставить разрешение, а также вы можете запретить захватить аудио вашего приложения полностью или частично.
Android Developers Blog
Capturing Audio in Android Q
Posted by Don Turner , Developer Advocate for Android Media In Android Q there's a new API which allows applications to capture the ...
#RxJava #Networking
RxJava 2: Parallel Multiple Network Calls Made Easy
Как вы выполняете 2 и более
RxJava 2: Parallel Multiple Network Calls Made Easy
Как вы выполняете 2 и более
Observable
из RxJava параллельно? Все немного более хитро чем использовать операторы merge и zip. Больше подробностей в статье или смотрите код в следующем посте 👇👇👇Medium
RxJava 2: Parallel Multiple Network Calls Made Easy
When doing multiple network calls in RxJava, do we know if they are run in parallel? How could we make them run in parallel?
#WorkManager #AndroidX
Workout your tasks with WorkManager — Basics
Продолжение серии статей о WorkManager. В этой части вы можете узнать о:
👉 Основные компоненты
👉 Что происходит под капотом
👉 Типы запросов:
👉 Типы ограничений, которые можно применить для запросов: состояние сети, уровень батареи и пр.
👉 Передача данных в запрос
👉 Добавление запроса на обработку
Часть 1: Intro
Workout your tasks with WorkManager — Basics
Продолжение серии статей о WorkManager. В этой части вы можете узнать о:
👉 Основные компоненты
WorkManager
👉 Что происходит под капотом
WorkManager
👉 Типы запросов:
OneTimeWorkRequest
и PeriodicWorkRequest
👉 Типы ограничений, которые можно применить для запросов: состояние сети, уровень батареи и пр.
👉 Передача данных в запрос
👉 Добавление запроса на обработку
Часть 1: Intro
Medium
Workout your tasks with WorkManager — Main Components
Examples and details about the main components of the WorkManager library: Worker, WorkRequest and WorkManager
#BuildConfig #Gradle
Android Version Code Tricks
В
Хитрость заключается в том, что вызов этого метода влияет только на значение
Android Version Code Tricks
В
Android Gradle Build
системе у вас есть возможность переопределить versionCode
для любого из BuildVarian
, с помощью метода setVersionCodeOverride
. Хитрость заключается в том, что вызов этого метода влияет только на значение
versionCode
в AndroidManifest в конечном APK, но не меняет его в BuildConfig
файле. Баг или фича? Больше подробностей смотрите в статье.Medium
Android Version Code Tricks
Dive deep into Android Version code
Forwarded from Mobile People Talks (Александр Денисов)
Асинхронность - знаешь что об этом ты? Vol.2
А вот и вторая часть дебатов за асинхронность. Здесь ведущие продолжают разговор с того места, где остановились в прошлый раз. Александр рассказывает про ситуацию с Flutter, а Владимир с ReactNative. Кирилл с Данисом не дремлют и задают каверзные вопросы, благодаря которым какие-то вещи приходится копать прямо в процессе записи подкаста!
🎧 SoundCloud
🎧 Apple Podcasts
А вот и вторая часть дебатов за асинхронность. Здесь ведущие продолжают разговор с того места, где остановились в прошлый раз. Александр рассказывает про ситуацию с Flutter, а Владимир с ReactNative. Кирилл с Данисом не дремлют и задают каверзные вопросы, благодаря которым какие-то вещи приходится копать прямо в процессе записи подкаста!
🎧 SoundCloud
🎧 Apple Podcasts
SoundCloud
знаешь что об этом ты? Vol. 2
А вот и вторая часть дебатов за асинхронность. Здесь ведущие продолжают разговор с того места, где остановились в прошлый раз.
Александр рассказывает про ситуацию с Flutter, а Владимир с ReactNative.
Александр рассказывает про ситуацию с Flutter, а Владимир с ReactNative.
#Kotlin #Collections
The Mystery of Mutable Kotlin Collections
По сравнению с Java в Kotlin присутствует одна примечательная особенность API - разделение на изменяемые (mutable) и неизменяемые (immutable) коллекции. Например, MutableList<E> и List<E>, MutableSet<E> и Set<E>.
Реализации этих интерфейсов в языке не существует - Kotlin не стал идти по пути создания собственных коллекций, а сделал только обертки над стандартными коллекциями из платформенного API.
В статье можно найти больше об особенностях работы коллекций в Kotlin:
👉 Реальность модификации
👉 Какие коллекции создаются при вызове listOf() и mutableListOf()
👉 Во что транслируются в байткоде использования
The Mystery of Mutable Kotlin Collections
По сравнению с Java в Kotlin присутствует одна примечательная особенность API - разделение на изменяемые (mutable) и неизменяемые (immutable) коллекции. Например, MutableList<E> и List<E>, MutableSet<E> и Set<E>.
Реализации этих интерфейсов в языке не существует - Kotlin не стал идти по пути создания собственных коллекций, а сделал только обертки над стандартными коллекциями из платформенного API.
В статье можно найти больше об особенностях работы коллекций в Kotlin:
👉 Реальность модификации
List<E>
👉 Какие коллекции создаются при вызове listOf() и mutableListOf()
👉 Во что транслируются в байткоде использования
MutableList<E>
и List<E>
Medium
The Mystery of Mutable Kotlin Collections
An investigation inside how Kotlin let you use Java collections as if they were implementing Kotlin interfaces
Forwarded from ❗️NEWS Android Dev Подкаст (Denis Nek (Slow responses))
https://androiddev.apptractor.ru/android-dev-podcast-97/
Выпуск #97. Репортаж с Droidcon Berlin
На этой неделе, в Берлине, прошла крупная конференция по Android разработке - Droidcon! 3 дня, 1200 участников, 5 треков, более 100 докладов! Наши внештатные корреспонденты - Михаил Емельянов и Александр Крылов из компании ЦФТ побывали там и записали свои впечатления и полученную информацию.
- Droidcon в этом году и прошлом, различия;
- Какие были компании, стенды, общение со спикерами, неожиданные встречи;
- Обзоры докладов, сессий по каждому дню. На что стоит взглянуть, чего ожидать;
- Общее впечатление, пожелания;
https://www.de.droidcon.com/schedule - расписание конференции
Ведущие: Михаил Емельянов, Александр Крылов
Выпуск #97. Репортаж с Droidcon Berlin
На этой неделе, в Берлине, прошла крупная конференция по Android разработке - Droidcon! 3 дня, 1200 участников, 5 треков, более 100 докладов! Наши внештатные корреспонденты - Михаил Емельянов и Александр Крылов из компании ЦФТ побывали там и записали свои впечатления и полученную информацию.
- Droidcon в этом году и прошлом, различия;
- Какие были компании, стенды, общение со спикерами, неожиданные встречи;
- Обзоры докладов, сессий по каждому дню. На что стоит взглянуть, чего ожидать;
- Общее впечатление, пожелания;
https://www.de.droidcon.com/schedule - расписание конференции
Ведущие: Михаил Емельянов, Александр Крылов
#News
Подвел итоги опроса. Участие в нем приняло 82 человека из 480 т.е. каждый шестой. Результаты следующие:
👉 Большая часть аудитории (96%) Android разработчики
👉 Расположение по странам: чуть больше половины это Беларусь, оставшиеся - половина в России и Украине
👉 Самые популярные используемые языки - Kotlin (96%) и Java (75%)
👉 Чуть больше половины опрошенных не пишут тесты 😞
👉 Полезность контента на канале - 89%
👉 80% нравятся опросы
👉 Значительная часть аудитории заинтересована в аудиозаписях с моим мнением
Взял себе на заметку что стоит улучшить:
👉 Следить за грамотностью
Буду искать инструмент, которые позволит мне проверять посты более тщательно. Рад вашим советам
👉 Нет доступа к платным статьям на Medium
Предлагаю несколько вариантов:
💲оплатите подписку
📖используйте "Instant View" в Telegram
🕶️открывайте статьи в режиме "Инкогнито"
👉 Слишком большое количество информации и читатели не успевают все посмотреть
Ранее я ввел правила по ограничению количества постов (не более 4 в день и воскресенье выходной). Буду стараться также и в будущем не спамить
Подвел итоги опроса. Участие в нем приняло 82 человека из 480 т.е. каждый шестой. Результаты следующие:
👉 Большая часть аудитории (96%) Android разработчики
👉 Расположение по странам: чуть больше половины это Беларусь, оставшиеся - половина в России и Украине
👉 Самые популярные используемые языки - Kotlin (96%) и Java (75%)
👉 Чуть больше половины опрошенных не пишут тесты 😞
👉 Полезность контента на канале - 89%
👉 80% нравятся опросы
👉 Значительная часть аудитории заинтересована в аудиозаписях с моим мнением
Взял себе на заметку что стоит улучшить:
👉 Следить за грамотностью
Буду искать инструмент, которые позволит мне проверять посты более тщательно. Рад вашим советам
👉 Нет доступа к платным статьям на Medium
Предлагаю несколько вариантов:
💲оплатите подписку
📖используйте "Instant View" в Telegram
🕶️открывайте статьи в режиме "Инкогнито"
👉 Слишком большое количество информации и читатели не успевают все посмотреть
Ранее я ввел правила по ограничению количества постов (не более 4 в день и воскресенье выходной). Буду стараться также и в будущем не спамить
#BestPractices
The technical choices I make to build great Android apps
Важным началом разработки любого приложения это есть принятия подходов, которые будут использоваться при создание вашего единорога! Разработчики приложения "A-Z" делятся своим опытом:
1️⃣ UI
2️⃣ Качество кода
3️⃣ Архитектура приложения
The technical choices I make to build great Android apps
Важным началом разработки любого приложения это есть принятия подходов, которые будут использоваться при создание вашего единорога! Разработчики приложения "A-Z" делятся своим опытом:
1️⃣ UI
2️⃣ Качество кода
3️⃣ Архитектура приложения
#Course
raywenderlich.com
Хороший ресурс с огромным количеством онлайн курсов по различным тематикам по Android:
👉 MVVM on Android
👉 Android KTX
👉 MotionLayout
👉 Обширный курс по анимациями
и много много других курсов.
Ресурс будет более интересен начинающим Android разработчикам и тех кто хочет быстро получить вводные по новым библиотекам.
Материалы доступны онлайн и оффлайн по подписке 20$/месяц
raywenderlich.com
Хороший ресурс с огромным количеством онлайн курсов по различным тематикам по Android:
👉 MVVM on Android
👉 Android KTX
👉 MotionLayout
👉 Обширный курс по анимациями
и много много других курсов.
Ресурс будет более интересен начинающим Android разработчикам и тех кто хочет быстро получить вводные по новым библиотекам.
Материалы доступны онлайн и оффлайн по подписке 20$/месяц
Kodeco
Videos
Learn Android development in Kotlin
#Meetup #Moscow
FunCorp Summer Droid Meetup
Компания FunCorp организовывает большой летний Android митап в рамках которого я буду рассказывать о новинке из Kotlin Coroutines - Flow.
В программе вас ждет:
👉 «Сбор и анализ неординарных данных Android-приложения», Дмитрий Васильев@FunCorp
Рассказ о сборе различных технический показателей приложения, зачем это делать и как их анализировать.
👉 «Coroutines Flow», Кирилл Розов@Epam
Kotlin Coroutines Flow - новинка из корутин, которая предоставляет холодные сhannel и открывает новые возможности. В рамках доклада вас ждет разбор Flow.
👉 «Сборка Android приложения. Задачка со звёздочкой», Антон Потапов@FunCorp
Не Gradle едина сборка Android приложений! В докладе будут рассмотрены альтернативные системы сборки (Buck, Bazel, Jeka) и сравнение их с Gradle.
👉 «Кодогенерация без kapt», Михаил Розумянский@Joom
Процессинг аннотаций - это бич скорости сборки приложений. Можно ли избавиться от kapt и улучшить свою жизнь?
👉 «Model Driven-конфигурация приложения на Kotlin DSL», Андрей Говоровский@Mail.ru
Рассказ об опыте использования Kotlin DSL для описания модели конфигурации приложения и генерация кода на основе этих моделей
Когда: 12.00, 3 августа 2019, Суббота
Где: Сад Эрмитаж, Каретный ряд, д 3, стр 6, «Веранда 32.05»
На YouTube канале FunCorp будет вестись прямая трансляция мероприятия, а также там вы можете найти записи предыдущих митапов.
P.S. Для всех тех кто хочет гарантированно попасть на мероприятие - пишите мне в личку. У меня есть 2 билета.
FunCorp Summer Droid Meetup
Компания FunCorp организовывает большой летний Android митап в рамках которого я буду рассказывать о новинке из Kotlin Coroutines - Flow.
В программе вас ждет:
👉 «Сбор и анализ неординарных данных Android-приложения», Дмитрий Васильев@FunCorp
Рассказ о сборе различных технический показателей приложения, зачем это делать и как их анализировать.
👉 «Coroutines Flow», Кирилл Розов@Epam
Kotlin Coroutines Flow - новинка из корутин, которая предоставляет холодные сhannel и открывает новые возможности. В рамках доклада вас ждет разбор Flow.
👉 «Сборка Android приложения. Задачка со звёздочкой», Антон Потапов@FunCorp
Не Gradle едина сборка Android приложений! В докладе будут рассмотрены альтернативные системы сборки (Buck, Bazel, Jeka) и сравнение их с Gradle.
👉 «Кодогенерация без kapt», Михаил Розумянский@Joom
Процессинг аннотаций - это бич скорости сборки приложений. Можно ли избавиться от kapt и улучшить свою жизнь?
👉 «Model Driven-конфигурация приложения на Kotlin DSL», Андрей Говоровский@Mail.ru
Рассказ об опыте использования Kotlin DSL для описания модели конфигурации приложения и генерация кода на основе этих моделей
Когда: 12.00, 3 августа 2019, Суббота
Где: Сад Эрмитаж, Каретный ряд, д 3, стр 6, «Веранда 32.05»
На YouTube канале FunCorp будет вестись прямая трансляция мероприятия, а также там вы можете найти записи предыдущих митапов.
P.S. Для всех тех кто хочет гарантированно попасть на мероприятие - пишите мне в личку. У меня есть 2 билета.
Хабр
Summer Droid Meetup
Привет! Приглашаем android-разработчиков на наш Summer Droid Meetup. 3-е августа, Сад Эрмитаж, Каретный ряд, д 3, стр 6, «Веранда 32.05». Начало в 12:00. Программа митапа «Сбор и анализ...