#GooglePlay
Policies & Publishing on Google Play
Как правильно разрабатывать ваше приложение чтобы оно прошло одобрение в Google Play или не было забанено в будущем? В Google сделали небольшое видео с раскрытием основных политик:
👉 Используйте аудио, видео и картинки, которые не нарушают авторских прав
👉 Безопасность данных пользователя - важный аспект
👉 Используйте только необходимые разрешения, которые нужны вашему приложению
👉 Соответствие Family Policy, в особенности если ваше приложение позиционируется для детей или дети могут использовать его
👉 Правильное описание вашего приложения в Google Play
Соблюдение этих правил - шаг на пути к успешной публикации в Google Play
Policies & Publishing on Google Play
Как правильно разрабатывать ваше приложение чтобы оно прошло одобрение в Google Play или не было забанено в будущем? В Google сделали небольшое видео с раскрытием основных политик:
👉 Используйте аудио, видео и картинки, которые не нарушают авторских прав
👉 Безопасность данных пользователя - важный аспект
👉 Используйте только необходимые разрешения, которые нужны вашему приложению
👉 Соответствие Family Policy, в особенности если ваше приложение позиционируется для детей или дети могут использовать его
👉 Правильное описание вашего приложения в Google Play
Соблюдение этих правил - шаг на пути к успешной публикации в Google Play
YouTube
Policies & publishing on Google Play
To ensure long term success on Google Play, it is our collective responsibility to create a safe experience for consumers. We want users to trust the apps and games they download from Google Play, which is why user privacy is at the forefront of our policies.…
#Image #Animation
Animate image rotation like a PRO
Рассказ о том как красиво повернуть картинку (конечно же с анимацией), используя для этого изменение матрицы картинки.
Animate image rotation like a PRO
Рассказ о том как красиво повернуть картинку (конечно же с анимацией), используя для этого изменение матрицы картинки.
Medium
Animate image rotation like a PRO
So you wrote your very cool Android app, and inside you want to capture an image from Camera / Gallery.
#SDK #Video
Выпущено TikTok SDK
Стало доступно публичное SDK для популярного сервиса TikTok. С помощью него вы можете встроить видео из сервиса в своё приложение или загрузить его туда.
Выпущено TikTok SDK
Стало доступно публичное SDK для популярного сервиса TikTok. С помощью него вы можете встроить видео из сервиса в своё приложение или загрузить его туда.
#Performance
The battle for jank*-less UI on Android
Разбор базовых способов как найти проблемы почему ваше приложение пропускает кадры и не отображает UI с частотой 60 кадров в секунду:
👉 StrictMode
👉 GPU Overdraw
👉 HWUI rendering
The battle for jank*-less UI on Android
Разбор базовых способов как найти проблемы почему ваше приложение пропускает кадры и не отображает UI с частотой 60 кадров в секунду:
👉 StrictMode
👉 GPU Overdraw
👉 HWUI rendering
Medium
The battle for jank*-less UI on Android
Recently I was playing with one of the apps I’ve been working on and I’ve noticed something interesting — there was a noticeable…
#JSON #Performance
Beyond Gson — Evaluating JSON Parsers for Android & Kotlin
Какой JSON парсер самый быстрый? Задумывались ли вы об этом? Я думаю что значительная часть подписчиков канала используют GSON в качестве парсера, возможно даже и не зная этого.
Что не так с GSON? Он не поддерживает Kotlin из коробки (например nullability), который является основным языком для Android разработки.
В статье сравниваются различные парсеры и как можно мигрировать на них. Результаты сравнения по тестам производительности следующий:
1️⃣ Moshi 🏆
2️⃣ kotlinx.serialization (в процессе разработке, но уже стабильна)
3️⃣ GSON
4️⃣ Jackson
Первые два парсера смогли оторваться за счет того что не используют рефлексию
Beyond Gson — Evaluating JSON Parsers for Android & Kotlin
Какой JSON парсер самый быстрый? Задумывались ли вы об этом? Я думаю что значительная часть подписчиков канала используют GSON в качестве парсера, возможно даже и не зная этого.
Что не так с GSON? Он не поддерживает Kotlin из коробки (например nullability), который является основным языком для Android разработки.
В статье сравниваются различные парсеры и как можно мигрировать на них. Результаты сравнения по тестам производительности следующий:
1️⃣ Moshi 🏆
2️⃣ kotlinx.serialization (в процессе разработке, но уже стабильна)
3️⃣ GSON
4️⃣ Jackson
Первые два парсера смогли оторваться за счет того что не используют рефлексию
Medium
Beyond Gson — Evaluating JSON Parsers for Android & Kotlin
Background
#JSON #Multiplatform
Хотите узнать подробнее о kotlinx.serialization - рекомендую посмотреть доклад разработчика этой библиотеки Леонида Старцева из JetBrains "Дизайн kotlinx.serialization"
Хотите узнать подробнее о kotlinx.serialization - рекомендую посмотреть доклад разработчика этой библиотеки Леонида Старцева из JetBrains "Дизайн kotlinx.serialization"
YouTube
"Дизайн kotlinx.serialization" - Леонид Старцев@JetBrains
Леонид рассказал о библиотеке kotlinx.serialization: зачем она была создана, какие архитектурные решения были приняты в процессе её написания. О том, как она работает изнутри и как программисты могут ей пользоваться и расширять её.
Github - https://gith…
Github - https://gith…
Android Broadcast
Какой парсер JSON используете вы?
Явным лидером оказалось творение Google - GSON. Я считаю что он не соответсвует духу современной разработки под Android - это Kotlin и отказ от рефлексии в пользу кодогенерации (kapt или с помощью Gradle плагина).
Лично я выбираю Moshi - оптимизируемый код, модели, которые можно обфусцировать и поддержка Kotlin
Также жду стабильного релиза kotlinx.serialization и оценить всю его финальную мощь.
Делитесь своим мнение в - @android_broadcast_discussions
Лично я выбираю Moshi - оптимизируемый код, модели, которые можно обфусцировать и поддержка Kotlin
Также жду стабильного релиза kotlinx.serialization и оценить всю его финальную мощь.
Делитесь своим мнение в - @android_broadcast_discussions
GitHub
GitHub - Kotlin/kotlinx.serialization: Kotlin multiplatform / multi-format serialization
Kotlin multiplatform / multi-format serialization - GitHub - Kotlin/kotlinx.serialization: Kotlin multiplatform / multi-format serialization
#Gradle
Вышел Gradle 6.0
Вышла новая мажорная версия основной системы сборки для Android проектов Gradle. Давайте смотреть что же нового!
👉 Множество улучшений в управление зависимостями
👉
👉 Улучшение инкрементальной компиляции Java
👉 Новое API для разработчиков Gradle плагинов: ConfigurableFileTree, FileCollection, FileSystemOperations, ExecOperations
👉 Улучшения Worker API
👉 Улучшения в безопасности: запрет работы по HTTP для репозиториев
👉 Отображение проблем с Task во время их выполнения. Теперь легче понять какие проблемы с объявлением
👉 Часть экспериментальных фичей стали стабильными: поддержка C++ and Swift support
👉 Удаление Deprecated кода
ВАЖНО: Будьте внимательны при обновление все те кто использует Android Gradle Plugin < 4.0 т.к.проект может перестать собираться или может отвалиться некоторые плагины
Вышел Gradle 6.0
Вышла новая мажорная версия основной системы сборки для Android проектов Gradle. Давайте смотреть что же нового!
👉 Множество улучшений в управление зависимостями
👉
maven-publish
плагин теперь публикует Gradle Module Metadata👉 Улучшение инкрементальной компиляции Java
👉 Новое API для разработчиков Gradle плагинов: ConfigurableFileTree, FileCollection, FileSystemOperations, ExecOperations
👉 Улучшения Worker API
👉 Улучшения в безопасности: запрет работы по HTTP для репозиториев
👉 Отображение проблем с Task во время их выполнения. Теперь легче понять какие проблемы с объявлением
Task
что не позволяет ему кэшировать результат👉 Часть экспериментальных фичей стали стабильными: поддержка C++ and Swift support
👉 Удаление Deprecated кода
ВАЖНО: Будьте внимательны при обновление все те кто использует Android Gradle Plugin < 4.0 т.к.проект может перестать собираться или может отвалиться некоторые плагины
#Gradle #CodeGeneration
Generating Java/Kotlin source files during Android Gradle build
Популярный способ генерации кода в Android/Java проектах - использование annotation processing. Есть ограничения этого механизма - он способен обрабатывать аннотации только в Java/Kotlin коде.
Но что делать если вы хотите генерировать код на основе других исходников, например XML файлов, или вовсе без исходников Например, так делает Android Data Binding. Реализуется это с помощью генерации кода на основе Android Gradle плагина. В статье разбирается пример как вы можете сгенерировать код самостоятельно.
Generating Java/Kotlin source files during Android Gradle build
Популярный способ генерации кода в Android/Java проектах - использование annotation processing. Есть ограничения этого механизма - он способен обрабатывать аннотации только в Java/Kotlin коде.
Но что делать если вы хотите генерировать код на основе других исходников, например XML файлов, или вовсе без исходников Например, так делает Android Data Binding. Реализуется это с помощью генерации кода на основе Android Gradle плагина. В статье разбирается пример как вы можете сгенерировать код самостоятельно.
Medium
Generating Java/Kotlin source files during Android Gradle build.
Android Gradle Plugin generates a number of java source files like BuildConfig.java, binding classes for layout and views. But until the…
#Jetpack #JetpackWeekly #Webkit #Biometric #Security
Jetpack Weekly #11
🎁 Biometric 1.0.0 - backport Biometric API из Android 10
🎁 Annotation-Experimental 1.0.0 - перенос Kotlin
👍 Webkit 1.1.0 - больше безопасности, больше дебага, больше поддержки Kotlin и возможность задавать прокси
Jetpack Weekly #11
🎁 Biometric 1.0.0 - backport Biometric API из Android 10
🎁 Annotation-Experimental 1.0.0 - перенос Kotlin
@Experimental
аннотации в Java при помощи Android Lint👍 Webkit 1.1.0 - больше безопасности, больше дебага, больше поддержки Kotlin и возможность задавать прокси
Medium
Android Jetpack Weekly #11
Experimental annotation, Biometric & Webkit are stable
#View #Lifecycler
The Life Cycle of a View in Android
Всем кто создаёт собственные View обязательно к прочтению!
Жизненный цикл - это не самая простая штука в Android. Не даром сделали целую библиотеку (Lifecycle Arch Component), которая упрощает работу с жизненным циклом. Но жизненный цикл также есть и еще у одного популярного компонента Android - View. В статье подробно разбираются все стадии работы View.
The Life Cycle of a View in Android
Всем кто создаёт собственные View обязательно к прочтению!
Жизненный цикл - это не самая простая штука в Android. Не даром сделали целую библиотеку (Lifecycle Arch Component), которая упрощает работу с жизненным циклом. Но жизненный цикл также есть и еще у одного популярного компонента Android - View. В статье подробно разбираются все стадии работы View.
Medium
The Life Cycle of a View in Android
Explore & get familiarity with the lifecycle of View to create best performance Custom Views
#RecyclerView
The best Android Recycler Adapter you’ve ever seen. Probably
RecyclerView - это замечательно решение, которое сделало большой шаг вперед по сравнению с ListView. Но создание адаптеров никуда не ушло и из коробки не является хорошо масштабируемым решением для поддержки множества типов элементов и повторным использованием их между разными адаптерами.
Поэтому можно найти множество различных библиотек решающих эту проблему. В статье рассматривается решение, довольное простое и изящное, хотя к нему есть пара вопрос и моментов для улучшения.
The best Android Recycler Adapter you’ve ever seen. Probably
RecyclerView - это замечательно решение, которое сделало большой шаг вперед по сравнению с ListView. Но создание адаптеров никуда не ушло и из коробки не является хорошо масштабируемым решением для поддержки множества типов элементов и повторным использованием их между разными адаптерами.
Поэтому можно найти множество различных библиотек решающих эту проблему. В статье рассматривается решение, довольное простое и изящное, хотя к нему есть пара вопрос и моментов для улучшения.
Medium
The best Android Recycler Adapter you’ve ever seen. Probably
Composable, and also the shortest Android Recycler Adapter you could dream of. And I assure you, since you made it only once, you would…
#Meetup #Minsk
Mobile People Open Meetup в Минске
В этот четверг 14 ноября состоится открытый митап сообщества Mobile People в рамках которого я (Кирилл Розов) расскажу о Kotlin Coroutines, а именно Flow и их применение в Android.
Также в программе вас ждет доклад "Android MVVM: как быть с диалогами?"
Буду рад встретиться с вами, обсудить ваши вопросы и услышать отзывы о канале.
Mobile People Open Meetup в Минске
В этот четверг 14 ноября состоится открытый митап сообщества Mobile People в рамках которого я (Кирилл Розов) расскажу о Kotlin Coroutines, а именно Flow и их применение в Android.
Также в программе вас ждет доклад "Android MVVM: как быть с диалогами?"
Буду рад встретиться с вами, обсудить ваши вопросы и услышать отзывы о канале.
wearecommunity.io
Mobile People Open Android meetup | Community platform
Mobile People Open Android meetup. "14 ноября 2019 года" | Community platform | Зарегистрируйся на мероприятие, узнай о программе и спикерах на платформе главных сообществ страны.
#Kotlin #CheatSheet
Для тех кто погружается в Kotlin или не уверен в своих знаниях - вам в помощь будет Cheat Sheet с основными конструкциями языка:
👉 Переменные
👉 Система типов
👉 Control Flow
👉 Коллекции
👉 Функции
👉 Классы
Для тех кто погружается в Kotlin или не уверен в своих знаниях - вам в помощь будет Cheat Sheet с основными конструкциями языка:
👉 Переменные
👉 Система типов
👉 Control Flow
👉 Коллекции
👉 Функции
👉 Классы
#Security #GooglePlayServices #SafetyNet
Security in Android — Cheatsheet
Небольшая статья о безопасности Android приложений, ведь она важна! Статья покрывает базовые вещи как обфускация кода, шифрование данных, проверка устройства на Root. Тем кто кто в этом новичок - рекомендую ознакомиться.
Security in Android — Cheatsheet
Небольшая статья о безопасности Android приложений, ведь она важна! Статья покрывает базовые вещи как обфускация кода, шифрование данных, проверка устройства на Root. Тем кто кто в этом новичок - рекомендую ознакомиться.
Medium
Security in Android — Cheatsheet
Read about security areas like reverse engineering, rooted devices, authentication protocols, lost phones, and encryption.
#Dagger #Factory #Kotlin
Injection into Android Component’s Constructors is real
Что вас огорчает в Kotlin? Меня огорчает костыль в виде
В статье я написал руководство как при помощи Dagger можно реализовать это, а также увеличить производительность вашего кода.
Injection into Android Component’s Constructors is real
Что вас огорчает в Kotlin? Меня огорчает костыль в виде
lateinit
для inject зависимостей. Я считаю, что стоит это сделать по нормальному и доставлять все зависимости при создании в конструктор. Но как это сделать для Activity
или Fragment
, так как все знают правило - "Все компоненты Android должны иметь конструкторы по умолчанию"? В статье я написал руководство как при помощи Dagger можно реализовать это, а также увеличить производительность вашего кода.
Medium
Injection into Android Component’s Constructors is real
How to inject dependencies into Android Components constructors with Dagger 2
#ConstraintLayout #UI
ConstraintLayout Flow: Simple Grid Building Without Nested Layouts
ConstraintLayout 2.0 предоставил возможность virtual helper object, который по сути являются правилами для размещения группы View. Пример такого объекта - Flow. Он позволяет размещать View по сетке, наподобие того как делает Google FlexboxLayout.
В статье разбираются возможности ConstraintLayout Flow и как их реализовать.
ConstraintLayout Flow: Simple Grid Building Without Nested Layouts
ConstraintLayout
- это layout, который предназначен для реализации сложных иерархий View и предоставляет обширные возможности, которые позволяют вам избегать многоуровневой иерархии.ConstraintLayout 2.0 предоставил возможность virtual helper object, который по сути являются правилами для размещения группы View. Пример такого объекта - Flow. Он позволяет размещать View по сетке, наподобие того как делает Google FlexboxLayout.
В статье разбираются возможности ConstraintLayout Flow и как их реализовать.
#Coroutines #Testing
Unit Testing Coroutine Suspend Functions using TestCoroutineDispatcher
Разбор возможностей TestCoroutineDispatcher, который позволяет эффективно выполнять тесты. В его возможности входит:
👉 Вызов функции delay() не приводит к паузе
👉 Возможность приостанавливать выполнение всех Coroutine в этом
👉 Останавливать все Coroutine в рамках
Unit Testing Coroutine Suspend Functions using TestCoroutineDispatcher
Разбор возможностей TestCoroutineDispatcher, который позволяет эффективно выполнять тесты. В его возможности входит:
👉 Вызов функции delay() не приводит к паузе
👉 Возможность приостанавливать выполнение всех Coroutine в этом
CoroutineDispatcher
👉 Останавливать все Coroutine в рамках
CoroutineDispatcher
craigrussell
Unit Testing Coroutine Suspend Functions using TestCoroutineDispatcher
Kotlin coroutines provide an elegant way to write asynchronous code, but sometimes coroutines make it difficult to write unit tests. This post describes how to use TestCoroutineDispatcher to write efficient and stable unit tests for code written with coroutines.