#Kotlin
Kotlin Delegates in Android: Utilizing the power of Delegated Properties in Android development
Рассказ о возможностях Kotlin delegated properties для решения различных Android задач:
👉 Работы с аргументами в
👉 Работа с
👉 Работа с составными собственными View
Но помните, что делегаты имеет скрытую цену!
Kotlin Delegates in Android: Utilizing the power of Delegated Properties in Android development
Рассказ о возможностях Kotlin delegated properties для решения различных Android задач:
👉 Работы с аргументами в
Fragment
👉 Работа с
SharedPreference
👉 Работа с составными собственными View
Но помните, что делегаты имеет скрытую цену!
Medium
Kotlin Delegates in Android
Making use of Delegated Properties in Android development
#Security
How to enable logging on any released Android app
Убираете ли вы логирование кода из релизного билда? Именно убираете а не отключаете. Когда в вашем коде остается возможность включить логи - это потенциальная дыра в безопасности и она подробно разбирается в статье.
Чтобы удалить логирование с помощью Logcat вы можете воспользоваться R8/ProGuard для удаления кода:
How to enable logging on any released Android app
Убираете ли вы логирование кода из релизного билда? Именно убираете а не отключаете. Когда в вашем коде остается возможность включить логи - это потенциальная дыра в безопасности и она подробно разбирается в статье.
Чтобы удалить логирование с помощью Logcat вы можете воспользоваться R8/ProGuard для удаления кода:
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** v(...);
public static *** i(...);
public static *** w(...);
public static *** e(...);
}
Medium
How to enable logging on any Android app
Welcome to a series of Spy security articles where we’ll learn how to hack apk and …
#Room #SQLite
Database relations with Room
Статья о поддержки отношений между сущностями в SQLite с помощью аннотации @Relation в Room:
👉 1 - 1
👉 1 - N
👉 M - N
Плюс аннотации
Database relations with Room
Статья о поддержки отношений между сущностями в SQLite с помощью аннотации @Relation в Room:
👉 1 - 1
👉 1 - N
👉 M - N
Плюс аннотации
@Relation
над полем, в том, что связанные сущности из другой таблицы будут запрашиваться автоматически.Medium
Database relations with Room
An important part of designing a relational database is splitting the data into related tables and pulling the data together in meaningful…
#Gradle #AndroidGradlePlugin
Simple Guide to Android Product Flavors
Разбор в подробностях различных сборок приложения и как этот механизм реализован в Android Gradle Plugin c помощью
Simple Guide to Android Product Flavors
Разбор в подробностях различных сборок приложения и как этот механизм реализован в Android Gradle Plugin c помощью
Product Flavor
и Build Type
.Medium
A Simple Guide to Android Product Flavors
When i first heard of the term product flavors the first thing that came into mind had nothing to do with Android…
#JetpackWeekly #Benchmark #ViewPager2
Jetpack Weekly #12
🔥 Benchmark теперь стабильна. Начинайте измерять производительность вашего кода правильно!
🔥 ViewPager мертв. Да здравствует ViewPager2, который базируется на
👉 RecyclerView 1.1.0
👉 Exifinterface 1.1.0
🛠️ Room 2.2.2 с исправлениями багов
Jetpack Weekly #12
🔥 Benchmark теперь стабильна. Начинайте измерять производительность вашего кода правильно!
🔥 ViewPager мертв. Да здравствует ViewPager2, который базируется на
RecyclerView
!👉 RecyclerView 1.1.0
👉 Exifinterface 1.1.0
🛠️ Room 2.2.2 с исправлениями багов
Medium
2
Benchmark Stable, ViewPager2 Stable, and next RecyclerView
#Podcast
Android Dev Podcast перешел в английскую версию.Новый подкаст - это не дубляж уже существующего, а возможности приглашение новых гостей.
Например, совсем недавно появился выпуск в котором Денис Неклюдов взял интервью у основателя и CEO Gradle Hans Dockter. В рамках Android Dev Summit ребята сделали обзор новостей с Florina Muntenescu, Android Developer Advocate в Google.
Android Dev Podcast перешел в английскую версию.Новый подкаст - это не дубляж уже существующего, а возможности приглашение новых гостей.
Например, совсем недавно появился выпуск в котором Денис Неклюдов взял интервью у основателя и CEO Gradle Hans Dockter. В рамках Android Dev Summit ребята сделали обзор новостей с Florina Muntenescu, Android Developer Advocate в Google.
Answers for Your OS
OS Today
questions about operating systems About Contacts Privacy Policy Cookies Android Windows Linux Apple Photoshop guide Other Quick Answer How You Know What Operating System You Have Find operating system info Windows button, type Computer...
#AndroidBroadcastBreakfest #Minsk #Meetup
Всем привет! Общение - это то, что позволяет нам эффективнее делиться знаниями и понимать друг друга. Намного эффективнее что-то обсудить голосом, чтобы найти эффективное решение или вдохновиться мыслью.
В эту субботу (30 ноября) в 11.00 в Минске я предлагаю встретиться всем желающим в кофейне GrayHouse (пр. Дзержинского, 11, метро "Грушевка"). Формат проведения встречи - свободное общение.
Тема встречи - Dependency Injection:
👉 Настолько ли важная роль DI? Есть ли жизнь без?
👉 Как заставить Dagger стать удобным инструментом, а не причинять кучу боли
👉 Koin и Kodein - есть ли жизнь с ними в больших проектах
👉 Отказ от библиотек для DI и решение доставки зависимостей самостоятельно
Задавайте свои вопросы, слушайте разговоры, любое ваше участие важно и позволит вам улучшить свои знания!
Есть вопросы или другие вопросы для обсуждения - предлагайте их в @android_broadcast_discussions
Всем привет! Общение - это то, что позволяет нам эффективнее делиться знаниями и понимать друг друга. Намного эффективнее что-то обсудить голосом, чтобы найти эффективное решение или вдохновиться мыслью.
В эту субботу (30 ноября) в 11.00 в Минске я предлагаю встретиться всем желающим в кофейне GrayHouse (пр. Дзержинского, 11, метро "Грушевка"). Формат проведения встречи - свободное общение.
Тема встречи - Dependency Injection:
👉 Настолько ли важная роль DI? Есть ли жизнь без?
👉 Как заставить Dagger стать удобным инструментом, а не причинять кучу боли
👉 Koin и Kodein - есть ли жизнь с ними в больших проектах
👉 Отказ от библиотек для DI и решение доставки зависимостей самостоятельно
Задавайте свои вопросы, слушайте разговоры, любое ваше участие важно и позволит вам улучшить свои знания!
Есть вопросы или другие вопросы для обсуждения - предлагайте их в @android_broadcast_discussions
#CodeQuality #Kotlin
Вышел Detekt 1.2.0
В новой версии появились следующие улучшения:
👉 Улучшен HTML отчет
👉 Поддержка отключения правил по группам
👉 Поддержка параллельной фаз компиляции и анализа
👉 Исправление работы правил
👉 Улучшение определение текста во множестве правил
Вышел Detekt 1.2.0
В новой версии появились следующие улучшения:
👉 Улучшен HTML отчет
👉 Поддержка отключения правил по группам
👉 Поддержка параллельной фаз компиляции и анализа
👉 Исправление работы правил
👉 Улучшение определение текста во множестве правил
#Dagger
Dagger Party Tricks: Refactoring
Dagger не прост, совсем не прост. Поэтому постигать его дзен можно всю свою карьеру разработчика, если она не закончится раньше чем вы сможете освоить полностью все. В статье вы найдете немного Dagger дзена.
Dagger Party Tricks: Refactoring
Dagger не прост, совсем не прост. Поэтому постигать его дзен можно всю свою карьеру разработчика, если она не закончится раньше чем вы сможете освоить полностью все. В статье вы найдете немного Dagger дзена.
Zac Sweers
Dagger Party Tricks: Refactoring
Techniques for refactoring Dagger code with ease.
#Kotlin #Parcel
A study of the Parcelize feature from Kotlin Android Extensions
В Kotlin 1.3.40 Parcelize стало стабильным, но только с версии 1.3.60 Android Studio перестало жаловаться, на его нестабильный статус, поэтому как никогда стоит напомнить, что есть способ сохранять ваши данные с использованием Parcel.
В статье разбирается как использовать библиотеку и какой код генерируется под капотом.
A study of the Parcelize feature from Kotlin Android Extensions
В Kotlin 1.3.40 Parcelize стало стабильным, но только с версии 1.3.60 Android Studio перестало жаловаться, на его нестабильный статус, поэтому как никогда стоит напомнить, что есть способ сохранять ваши данные с использованием Parcel.
В статье разбирается как использовать библиотеку и какой код генерируется под капотом.
Medium
A study of the Parcelize feature from Kotlin Android Extensions
Life is too short to waste time on writing Parcelable code
#Kotlin #Coroutines #Arhitecture
Lessons learnt using Coroutines Flow in the Android Dev Summit 2019 app
"Kotlin First" - лозунг современной Android разработки. В этом случае нельзя не использовать Kotlin Coroutines, чтобы максимально стремиться к этому принципу и получить все преимущества языка.
Авторы приложения для Android Dev Summit 2019 о том, как изменился их взгляд с появлением Flow в разработки Domain (
Обновление подхода просто. Если раньше ваш слой модели мог возвращать
В статье также рассказывается как перейти со старых подходов на Flow и как применять его в новом API. Ну и как же без освещения тестирования!
Lessons learnt using Coroutines Flow in the Android Dev Summit 2019 app
"Kotlin First" - лозунг современной Android разработки. В этом случае нельзя не использовать Kotlin Coroutines, чтобы максимально стремиться к этому принципу и получить все преимущества языка.
Авторы приложения для Android Dev Summit 2019 о том, как изменился их взгляд с появлением Flow в разработки Domain (
UseCase
) и Model (Repository
, Data Source
) слоев.Обновление подхода просто. Если раньше ваш слой модели мог возвращать
LiveData
(например за наблюдением обновление обновление в Room), то теперь все это переходит во Flow и превращается в LiveData
только в ViewModel
. Если вам не нужно наблюдать за изменениями - используйте обычные suspend
функции.В статье также рассказывается как перейти со старых подходов на Flow и как применять его в новом API. Ну и как же без освещения тестирования!
Medium
Lessons learnt using Coroutines Flow
in the Android Dev Summit 2019 app
#Obfuscation #Resources #Optimization
AabResGuard - A tool used to obfuscate aab resources
Чтоба защитить свой код от злоумышленников и оптимизировать его исполнение в Android разработке применяют
Энтузиасты решили исправить это и сделать тулзу, которая сможет выполнять с ресурсами:
🔥 Убрать дублирующиеся значения
🔥 Удалять ненужные файлы из папок
🔥 Обфусцировать названия ресурсов
🔥 Удалять заданные строки из конечной билда
Проект пока находится в стадии разработке, но я с нетерпением жду стабильного релиза!
AabResGuard - A tool used to obfuscate aab resources
Чтоба защитить свой код от злоумышленников и оптимизировать его исполнение в Android разработке применяют
R8
/ProGuard
. Но эти утилиты оптимизируют только Java byte code. А что с остальными файлами в AAB/APK? Ответ - ничего. Google не предоставляет каких либо инструментов для оптимизации ресурсов.Энтузиасты решили исправить это и сделать тулзу, которая сможет выполнять с ресурсами:
🔥 Убрать дублирующиеся значения
🔥 Удалять ненужные файлы из папок
META-INFO/
и lib/
🔥 Обфусцировать названия ресурсов
🔥 Удалять заданные строки из конечной билда
Проект пока находится в стадии разработке, но я с нетерпением жду стабильного релиза!
GitHub
GitHub - bytedance/AabResGuard: The tool of obfuscated aab resources.(Android app bundle资源混淆工具)
The tool of obfuscated aab resources.(Android app bundle资源混淆工具) - bytedance/AabResGuard
#RecyclerView #Sticky
Для всех тех кто реализует секции и sticky header в списках на основе RecyclerView появился новый игрок среди библиотек - StickyDecorator.
Библиотека легковесна и некоторые из декораций делает на основе
Для всех тех кто реализует секции и sticky header в списках на основе RecyclerView появился новый игрок среди библиотек - StickyDecorator.
Библиотека легковесна и некоторые из декораций делает на основе
Drawable
, что позволяет достичь более высокой скорости работы по сравнению с View
.GitHub
GitHub - OsomePteLtd/StickyDecorator: Lightweight library for sticky header and simple sectioning in RecyclerView
Lightweight library for sticky header and simple sectioning in RecyclerView - OsomePteLtd/StickyDecorator
#AndroidStudio
Android Studio Design Tools UX Changes — Split View
До релиза Android Studio 3.6 осталось не так много времени.Одним из заметных нововведений для всех тех кто работает с UI станет изменение отображения
В статье рассказывается о преимуществах этого обновления (на мой взгляд очень спорных).
Android Studio Design Tools UX Changes — Split View
До релиза Android Studio 3.6 осталось не так много времени.Одним из заметных нововведений для всех тех кто работает с UI станет изменение отображения
Design Tool
. Новый режим, который назван Design Tools Split View
, заменивший старый Layout Preview, теперь позволяет на одном экране совмещать редактор UI в XML и визуальный редактор.В статье рассказывается о преимуществах этого обновления (на мой взгляд очень спорных).
Medium
Android Studio Design Tools UX changes — split view
In this article, we would like to introduce the new behavior of the Design Editor in Android Studio 3.6, dive into some of the details of…
Рады ли вы обнволению Design Tools?
Anonymous Poll
12%
Раньше было лучше (Layout Preview)
43%
Рад 😁
31%
Не использую Android Studio 3.6
2%
Не пишу UI
12%
Другой вариант
#MemoryLeak
Вышел Leak Canary 2.0
Вышла новая мажорная версия популярного инструмента для отслеживания утечек памяти во время работы приложения. В новой версии произошла уйма изменений:
👉 Библиотека полностью переписана на Kotlin
👉 Улучшен механизм сборки дампов памяти, что будет меньше блокировать работу с приложением
👉 Новый UI для просмотра информации о утечках памяти
👉 Новая библиотека LeakSentry, которая позволяет определить когда происходит утечка и вызывает LeakCanary для сбора информации. Это поможет понять какие объекты приводят к
👉 Новый парсер heap, который работает эффективнее и быстрее
👉 Упрощена настройка библиотеки - 0 строк кода для включения, только добавление зависимости
👉 Новая утилита Heap Explorer, которая позволяет делать анализ heap в LeakCanary прямо на устройства
👉 Из коробки поддерживает отслеживание за утечками
👉 Новая библиотека Shark, которая используется
В обновление произошли значительные изменения API, поэтому если вы активно его использовали (а не просто подключали библиотеку), то вам надо будет выполнить миграцию. Больше информации на официальном сайте.
Вышел Leak Canary 2.0
Вышла новая мажорная версия популярного инструмента для отслеживания утечек памяти во время работы приложения. В новой версии произошла уйма изменений:
👉 Библиотека полностью переписана на Kotlin
👉 Улучшен механизм сборки дампов памяти, что будет меньше блокировать работу с приложением
👉 Новый UI для просмотра информации о утечках памяти
👉 Новая библиотека LeakSentry, которая позволяет определить когда происходит утечка и вызывает LeakCanary для сбора информации. Это поможет понять какие объекты приводят к
OutOfMemoryError
👉 Новый парсер heap, который работает эффективнее и быстрее
👉 Упрощена настройка библиотеки - 0 строк кода для включения, только добавление зависимости
👉 Новая утилита Heap Explorer, которая позволяет делать анализ heap в LeakCanary прямо на устройства
👉 Из коробки поддерживает отслеживание за утечками
Fragment
👉 Новая библиотека Shark, которая используется
LeakCanary
для анализа и может запускать в любой Java VM. Также доступен CLI, который вы можете использовать с компьютера для сбора информации о расходе памяти с устройстваВ обновление произошли значительные изменения API, поэтому если вы активно его использовали (а не просто подключали библиотеку), то вам надо будет выполнить миграцию. Больше информации на официальном сайте.
square.github.io
Change Log - LeakCanary
A memory leak detection library for Android
#Java #Java14
Пробуем улучшенный оператор instanceof в Java 14
Пока Android разработчики сконцентрировались на Kotlin (да и Google не собирается никого разворачивать от этого пути), разработчик Java нагоняют по наличию фичей современные языки-хипстеров. В Java 14 нас ждет аналог Smart Cast из Kotlin - Pattern Matching.
Пробуем улучшенный оператор instanceof в Java 14
Пока Android разработчики сконцентрировались на Kotlin (да и Google не собирается никого разворачивать от этого пути), разработчик Java нагоняют по наличию фичей современные языки-хипстеров. В Java 14 нас ждет аналог Smart Cast из Kotlin - Pattern Matching.
Хабр
Пробуем улучшенный оператор instanceof в Java 14
Не за горами новая, 14-я версия Java, а значит самое время посмотреть, какие новые синтаксические возможности будет содержать эта версия Java. Одной из таких син...
#Conference #Quiz
Организаторы крупнейшей мобильной конференции Mobius проводят опрос с целью улучшения контента и формата проведения конференции. У вас есть шанс выиграть призы за прохождение опроса!
Купить билет на декабрьский Mobius в Москве со скидкой по промокоду mobius19mskAndroidBpc
Организаторы крупнейшей мобильной конференции Mobius проводят опрос с целью улучшения контента и формата проведения конференции. У вас есть шанс выиграть призы за прохождение опроса!
Купить билет на декабрьский Mobius в Москве со скидкой по промокоду mobius19mskAndroidBpc
#IDEA
IntelliJ IDEA 2019.3: Better Performance and Quality
Разработчики из JetBrains дали свой ответ Project Marble из Android Studio 3.5 и выпустили релиз своей IDE, направленный на улучшение производительности и фиксу багов. Улучшены различные аспекты: индексация проектов, анализ кода, скорость запуска IDE, улучшение работы многих функций IDE и др.
К сожалению, даже будущая Android Studio 4.0 базируется на IDEA 2019.2, поэтому высока вероятность что все эту стабильность мы сможем почувствовать только в Android Studio 4.1. Главное, чтобы код Google не сломал там все!
IntelliJ IDEA 2019.3: Better Performance and Quality
Разработчики из JetBrains дали свой ответ Project Marble из Android Studio 3.5 и выпустили релиз своей IDE, направленный на улучшение производительности и фиксу багов. Улучшены различные аспекты: индексация проектов, анализ кода, скорость запуска IDE, улучшение работы многих функций IDE и др.
К сожалению, даже будущая Android Studio 4.0 базируется на IDEA 2019.2, поэтому высока вероятность что все эту стабильность мы сможем почувствовать только в Android Studio 4.1. Главное, чтобы код Google не сломал там все!
#Intro
What to consider when starting a new app development
На что стоит обратить внимание когда стартуете разработку нового Android приложения? Конечно же архитектуре, но также важно не забывать про особенности платформы и ее возможности. Автор статьи предлагает уделить внимание:
👉 Работа с местоположением
👉 Push уведомления
👉 Сбор аналитики
👉 Сбор информации о трекинга
👉 Авторизация
👉 Стиль приложения (Тема)
👉 Фоновые сервисы
👉 Локализация (не только переводы но и адаптация под другие регионы)
👉 Возможность работы с приложением без сети
👉 Анимации
What to consider when starting a new app development
На что стоит обратить внимание когда стартуете разработку нового Android приложения? Конечно же архитектуре, но также важно не забывать про особенности платформы и ее возможности. Автор статьи предлагает уделить внимание:
👉 Работа с местоположением
👉 Push уведомления
👉 Сбор аналитики
👉 Сбор информации о трекинга
👉 Авторизация
👉 Стиль приложения (Тема)
👉 Фоновые сервисы
👉 Локализация (не только переводы но и адаптация под другие регионы)
👉 Возможность работы с приложением без сети
👉 Анимации
Medium
What to consider when starting a new app development
What to consider when starting a new app development