#Images
"Understanding Android Matrix transformations" Maria Neumayer
Хороший разбор о том как стандартными средствами Android с помощью Matrix можно выполнять преобразования изображений в Android.
В статье рассказывается о:
👉 Смещение
👉 Масштабирование
👉 Повороте
👉 Искажение
👉 Применение нескольких трансформаций одновременно
"Understanding Android Matrix transformations" Maria Neumayer
Хороший разбор о том как стандартными средствами Android с помощью Matrix можно выполнять преобразования изображений в Android.
В статье рассказывается о:
👉 Смещение
👉 Масштабирование
👉 Повороте
👉 Искажение
👉 Применение нескольких трансформаций одновременно
Medium
Understanding Android Matrix transformations
Many years ago in school I was learning about matrices. I don’t remember much of it, but what I do remember was thinking, “but… what do…
#Dagger #DependencyInjection #Performance
"Deep Dive into Dagger Lazy" Marcos Holgado (6 минут чтения)
Dagger 2 имеет возможность получать зависимости отложено (lazy). Это позволяет не загружать множество зависимостей при первом старте приложения/компонента. Но насколько эффективно это?
У автора статьи получилось это показать на примере, но также автор приводит почему не стоит использовать Lazy как панацею для ускорения старта.
"Deep Dive into Dagger Lazy" Marcos Holgado (6 минут чтения)
Dagger 2 имеет возможность получать зависимости отложено (lazy). Это позволяет не загружать множество зависимостей при первом старте приложения/компонента. Но насколько эффективно это?
У автора статьи получилось это показать на примере, но также автор приводит почему не стоит использовать Lazy как панацею для ускорения старта.
Medium
Deep Dive into Dagger Lazy
In our dev meeting we talked about Dagger Lazy. I never felt the need of using it so I decided to deep dive into it to understand it…
#Coroutines #BestPractices
"Kotlin Coroutines patterns" от Dmytro Danylyk
Coroutine наделали много шума в асинхронном программирование, особенно в Android. Я слышал о многоих проектах кто уже их использует в релизных версиях приложений либо тем что втягивает их. Но как и любая новомодная библиотека разработчики не всегда понимают до конца как стоит ее использовать.
В статье вы найдете советы как стоит использовать coroutine и что не стоит.
"Kotlin Coroutines patterns" от Dmytro Danylyk
Coroutine наделали много шума в асинхронном программирование, особенно в Android. Я слышал о многоих проектах кто уже их использует в релизных версиях приложений либо тем что втягивает их. Но как и любая новомодная библиотека разработчики не всегда понимают до конца как стоит ее использовать.
В статье вы найдете советы как стоит использовать coroutine и что не стоит.
ProAndroidDev
Kotlin Coroutines patterns & anti-patterns
Decided to write about several things which in my opinion you should and shouldn’t do (or at least try to avoid) when using Kotlin…
#VectorDrawable #Images #AndroidX
Part 3: "Using vector assets in Android apps"
Part 2: "Draw a Path: Rendering Android VectorDrawables"
Part 1: "Understanding Android’s vector image format: VectorDrawable"
Продолжение серии статей от Nick Butcher (https://twitter.com/crafty)/Google о том как работает векторная графика в Android. Из нового поста вы узнаете:
👉 Что дает поддержка VectorDrawable в AndroidX
👉 Почему стоит использовать VectorDrawableCompat
👉 Как включить VectorDrawable из AndroidX
👉 Как добавить поддержку VectorDrawableCompat для любого аттрибута в layout XML.
👉 Ограничения реализации VectorDrawableCompat в вложенных drawable (StateListDrawable, InsetDrawable, LayerDrawable)
Важно помнить
👉 если вы не включите поддержку supprt vector drwable у себя в проекте то для всех API ниже 25 у вас буду генерироваться растровые варианты векторных изображений для старых версий API.
👉 Используйте app:srcCompat вместо android:src атрибута для изобравжение в ImageView
Part 3: "Using vector assets in Android apps"
Part 2: "Draw a Path: Rendering Android VectorDrawables"
Part 1: "Understanding Android’s vector image format: VectorDrawable"
Продолжение серии статей от Nick Butcher (https://twitter.com/crafty)/Google о том как работает векторная графика в Android. Из нового поста вы узнаете:
👉 Что дает поддержка VectorDrawable в AndroidX
👉 Почему стоит использовать VectorDrawableCompat
👉 Как включить VectorDrawable из AndroidX
👉 Как добавить поддержку VectorDrawableCompat для любого аттрибута в layout XML.
👉 Ограничения реализации VectorDrawableCompat в вложенных drawable (StateListDrawable, InsetDrawable, LayerDrawable)
Важно помнить
👉 если вы не включите поддержку supprt vector drwable у себя в проекте то для всех API ниже 25 у вас буду генерироваться растровые варианты векторных изображений для старых версий API.
👉 Используйте app:srcCompat вместо android:src атрибута для изобравжение в ImageView
Medium
Using vector assets in Android apps
In previous posts we’ve looked at Android’s VectorDrawable image format and what it can do:
#Architecture #BestPractices
"10 things every Android app developer should know about Architecture" by Ashesh Bharadwaj
Статья о 10 вещах, которые помогут вам лучше понимать архитектуру:
1️⃣ Архитектура незхависима от языка или платформы
2️⃣ Недопонимание MV(Any) подходов
3️⃣ Архитектура важна, но не является необходимой
4️⃣ Архитекутра упрощает добавление нового функционала или модификации существующего
5️⃣ Архитектура не требует специальных знаний, как фреймворки или библиотеки
6️⃣ Архитекутра требует придерживания правил и терпения
7️⃣ Android Architecture Components упрощает реализацию архитектуры на Android
8️⃣ Каждому разработчику не надо быть Архитектором
9️⃣ Наличие архитектуры приносит ряд преимуществ для проекта
🔟 Что стоит изучить для построения хорошей архитектуры в проекте
"10 things every Android app developer should know about Architecture" by Ashesh Bharadwaj
Статья о 10 вещах, которые помогут вам лучше понимать архитектуру:
1️⃣ Архитектура незхависима от языка или платформы
2️⃣ Недопонимание MV(Any) подходов
3️⃣ Архитектура важна, но не является необходимой
4️⃣ Архитекутра упрощает добавление нового функционала или модификации существующего
5️⃣ Архитектура не требует специальных знаний, как фреймворки или библиотеки
6️⃣ Архитекутра требует придерживания правил и терпения
7️⃣ Android Architecture Components упрощает реализацию архитектуры на Android
8️⃣ Каждому разработчику не надо быть Архитектором
9️⃣ Наличие архитектуры приносит ряд преимуществ для проекта
🔟 Что стоит изучить для построения хорошей архитектуры в проекте
Medium
10 things every Android app developer should know about Architecture
Architecture in object-oriented words for a monolithic app can be simply described as the placement of classes in the system and how they…
#Library #Kotlin #AnnotationProcessing
KotlinPoet Github by Square
Вышла стабильная версия библиотеки KotlinPoet 1.0.0. Теперь стало проше генерировать исходники на Kotlin.
KotlinPoet Github by Square
Вышла стабильная версия библиотеки KotlinPoet 1.0.0. Теперь стало проше генерировать исходники на Kotlin.
GitHub
GitHub - square/kotlinpoet: A Kotlin API for generating .kt source files.
A Kotlin API for generating .kt source files. Contribute to square/kotlinpoet development by creating an account on GitHub.
#Library
"The Best Android SDK Tools of The Year" by AppSee
Сервис аналитики AppSee выбрали лучше Android SDK. В него попали:
1️⃣ Платежи – Braintree
2️⃣ Аналитика– Appsee (кто бы сомневался 😁)
3️⃣ Анализ производительности - Instabug
4️⃣ Attribution - Appsflyer
5️⃣ Аналитика крешей - Crashlytics
6️⃣ Анализ удовлетворенности пользователя - Apptentive
7️⃣ Реклама - Mopub
8️⃣ A/B тестирование - Apptimize
9️⃣ Геопозиционирование - Radar
"The Best Android SDK Tools of The Year" by AppSee
Сервис аналитики AppSee выбрали лучше Android SDK. В него попали:
1️⃣ Платежи – Braintree
2️⃣ Аналитика– Appsee (кто бы сомневался 😁)
3️⃣ Анализ производительности - Instabug
4️⃣ Attribution - Appsflyer
5️⃣ Аналитика крешей - Crashlytics
6️⃣ Анализ удовлетворенности пользователя - Apptentive
7️⃣ Реклама - Mopub
8️⃣ A/B тестирование - Apptimize
9️⃣ Геопозиционирование - Radar
#AOSP #Fuchsia
Google добавил Fuchsia в Android Open Source Project AppTracktor
Новые звоночки о Fuchsia - появились папки под Fuchsia:
👉 platform/prebuilts/fuchsia_sdk
👉 device/google/fuchsia
Пока папки пустые, ждем что в них появиться
Google добавил Fuchsia в Android Open Source Project AppTracktor
Новые звоночки о Fuchsia - появились папки под Fuchsia:
👉 platform/prebuilts/fuchsia_sdk
👉 device/google/fuchsia
Пока папки пустые, ждем что в них появиться
AppTractor
Google добавил Fuchsia в Android Open Source Project
Google добавил в Android Open Source Project новый Fuchsia SDK, а также в нем появилось упоминание «устройства» на основе новой операционной системы.
Главные тренды мобильной разработки в 2019 от AppTrackor
Знание будущего - легкий способ заработать денег. Однако предсказать его не так просто, но решили попробовать предсказать мобильные тренды:
👉 Машинное обучение и искусственный интеллект: позволяет улучшить любое приложение, вывести персонализацию работы приложения на новый уровень и множество других сфер применения AI.
👉 Android Instant App: более быстрый доступ к контенту и возможность попробовать приложение или игру без установки - это то что больше и больше хотят пользователи
👉 Персонализация vs GDPR: борьба знания сервисов о вас больше против защиты данных будет все острее и приложениям надо адаптироваться
👉 UX: От сложного к простому: более минималистичный дизайн, элементы управления внизу экрана из-за экранов 18:9+ и пр.
👉 Новые способы монетизации
👉 Усиленная защита мобильных приложений
Знание будущего - легкий способ заработать денег. Однако предсказать его не так просто, но решили попробовать предсказать мобильные тренды:
👉 Машинное обучение и искусственный интеллект: позволяет улучшить любое приложение, вывести персонализацию работы приложения на новый уровень и множество других сфер применения AI.
👉 Android Instant App: более быстрый доступ к контенту и возможность попробовать приложение или игру без установки - это то что больше и больше хотят пользователи
👉 Персонализация vs GDPR: борьба знания сервисов о вас больше против защиты данных будет все острее и приложениям надо адаптироваться
👉 UX: От сложного к простому: более минималистичный дизайн, элементы управления внизу экрана из-за экранов 18:9+ и пр.
👉 Новые способы монетизации
👉 Усиленная защита мобильных приложений
AppTractor
Главные тренды мобильной разработки в 2019
В 2019 мобильные приложения станут еще более персонализированными и ориентированными на пользователя, в них будет простой дизайн и много искусственного интеллекта. Об этих и других трендах мобильной разработки - в статье Epom.
#Library
"A Confusing Dependency"
Пиратсво дошло до новых верших - уже начали подделывать библиотеки ). История о том как важно подключать проверенные репозитории и их порядок объявления репозиториев в Gradle.
"A Confusing Dependency"
Пиратсво дошло до новых верших - уже начали подделывать библиотеки ). История о том как важно подключать проверенные репозитории и их порядок объявления репозиториев в Gradle.
Autsoft Zrt.
A Confusing Dependency
Earlier this year I've received the task to put together a demo application which involved recording and playing back audio. As usual in this situation, I scoured the internet, browsing for existing libraries to see if anyone has a solution that I could use…
#Services #MemoryManagement #WorkManager
"Effective foreground services on Android" by Keith Smyth
Статья немного о приоритетах процессов приложений при очистке памяти, немного о том когда стоит делать Foreground Service, о том когда не стоит этого делать и что использовать в этих случаях.
"Effective foreground services on Android" by Keith Smyth
Статья немного о приоритетах процессов приложений при очистке памяти, немного о том когда стоит делать Foreground Service, о том когда не стоит этого делать и что использовать в этих случаях.
Android Developers Blog
Effective foreground services on Android
This is the fourth in a series of blog posts in which outline strategies and guidance in Android with regard to power.
A process is not forever
Android is a mobile operating system designed to work with constrained memory and battery. For this reason,…
A process is not forever
Android is a mobile operating system designed to work with constrained memory and battery. For this reason,…
#BKUG #Kotlin #Meetup
Отчет о BKUG #11
11 декабря прошел митап сообщества Belarus Kotlin User Groupd (BKUG). Было рассказано о
👉 новинках в Kotlin 1.3
👉 опыт перехода на Kotlin в Android и о том как развивался язык, и о том как Kotlin упросщает Android разработку
👉 R2DBC - корутины для БД
Отчет о BKUG #11
11 декабря прошел митап сообщества Belarus Kotlin User Groupd (BKUG). Было рассказано о
👉 новинках в Kotlin 1.3
👉 опыт перехода на Kotlin в Android и о том как развивался язык, и о том как Kotlin упросщает Android разработку
👉 R2DBC - корутины для БД
#LibUpdates #AndroidX #Testing
Вышла новая версия библиотеки AndroidX Test 1.1.0
В рамках обновления новинки появились в:
👉 test-core
👉 Espresso
👉 JUnit4 Rules
👉 Runner
👉 Truth
Все библиотеки понемногу были улучшены, улучшена поддержка Robolectric, Android 9.0 и представлено ActivityScenario API. Оно позволяет запускать Activity во время тестов и проводить ее через весь жизненный цикл. Аналогичное API появилось для Fragment - FragmentScenario. Все это поддерживается Robolectric!
Примеры работы с новым API:
Вышла новая версия библиотеки AndroidX Test 1.1.0
В рамках обновления новинки появились в:
👉 test-core
👉 Espresso
👉 JUnit4 Rules
👉 Runner
👉 Truth
Все библиотеки понемногу были улучшены, улучшена поддержка Robolectric, Android 9.0 и представлено ActivityScenario API. Оно позволяет запускать Activity во время тестов и проводить ее через весь жизненный цикл. Аналогичное API появилось для Fragment - FragmentScenario. Все это поддерживается Robolectric!
Примеры работы с новым API:
@RunWith(AndroidJUnit4::class)
class MyTestSuite {
@Test fun testEvent() {
val scenario = ActivityScenario.launch(MyActivity::class.java)
scenario.moveToState(State.CREATED)
}
}
@RunWith(AndroidJUnit4::class)
class MyTestSuite {
@Test fun testEvent() {
val scenario = ActivityScenario.launch(MyActivity::class.java)
scenario.recreate()
}
}
GitHub
Release AndroidX Test 1.1.0 · android/android-test
AndroidX Test Espresso 3.1.1, Runner 1.1.1, Rules 1.1.1, Monitor 1.1.1 AndroidTestOrchestrator 1.1.1, Core 1.1.0 Truth 1.1.0, JUnit 1.1.0 (2018-12-13)
Core
New core-ktx kotlin extension artifact!...
Core
New core-ktx kotlin extension artifact!...
На последнем Android Dev Summit было рассказно об этом API. Ссылка прикреплена к таймингу начала расказа о ActivityScenario.
https://youtu.be/4m2yYSTdvIg?t=734
https://youtu.be/4m2yYSTdvIg?t=734
YouTube
Testing rebooted (with AndroidX Test) (Android Dev Summit '18)
The release of androidx.test v1.0 makes testing a first class citizen of Android developer tools. See how a new set of cross platform APIs enable you to write both unit and integration tests that run in any environment and learn of our upcoming plans for…
#Architecture #MVVM #MVP
Различия между MVVM и остальными MV*-паттернами
Хорошая статья в рамках которой автор показал историю развития MV(Any) паттернов, так и различия между ними и ошибки в понимание.
Вы найдете информацию о:
👉 MVC (Model-View-Controller)
👉 MVP (Model-View-Presenter) в 2 вариациях
👉 Passive View
👉 Supervising Controller
👉Presentation Model
👉MVVM (Model-View-ViewModel)
Presentation Model описывает подход, который использует Google для архитектуры на основе Architecture Components в Android.
Помните самое главное - нет правильной архитектуры, есть только та, которая эффективно решит задачу вашего приложения, и возможно она вполне будет за рамками этого списка. Напишите о ней в @android_broadcast_discussions и я расскажу о ней в канале.
Различия между MVVM и остальными MV*-паттернами
Хорошая статья в рамках которой автор показал историю развития MV(Any) паттернов, так и различия между ними и ошибки в понимание.
Вы найдете информацию о:
👉 MVC (Model-View-Controller)
👉 MVP (Model-View-Presenter) в 2 вариациях
👉 Passive View
👉 Supervising Controller
👉Presentation Model
👉MVVM (Model-View-ViewModel)
Presentation Model описывает подход, который использует Google для архитектуры на основе Architecture Components в Android.
Помните самое главное - нет правильной архитектуры, есть только та, которая эффективно решит задачу вашего приложения, и возможно она вполне будет за рамками этого списка. Напишите о ней в @android_broadcast_discussions и я расскажу о ней в канале.
Habr
Различия между MVVM и остальными MV*-паттернами
От переводчика : Уже опубликовано много материалов по MVC и его производным паттернам, но каждый понимает их по-своему. На этой почве возникают разногласия и холивары. Даже опытные разработчики...