#DependencyInjection #Koin #Performance
"News from the trenches — What’s next for Koin?" by Arnaud Giuliani
Я большой фанат Dependency Injection (DI) решения на Kotlin - Koin. Почему он мне нравится? Как много расширенного функционала из Dagger 2 вы используете? Из личного опыта я видел много проектов где это не было нужно. Так зачем использовать ракету чтобы перейти улицу 🤔? Поэтому я и предпочитаю Koin для простых проектов.
Я делал доклад по Koin, запись которого вы можете найти здесь.
В статье описывается, что нас ждет в Koin 2.0 🔥. Основные изменения будут:
👉Улучшение производительности на Android 🚀
👉Более удобное API для инициализации
👉Движение в сторону поддержки работы Kotlin Multiplatform Project (финальная поддержка ожидается в Kotlin 2.1)
👉Будет убрана часть функционала в объявление модулей для упрощения работы с ними: вложенные модули, имена модулей и др.
👉Разделение на глобальный (приложение) и локальный (модули/библиотеки) контексты для работы с Koin в многомодульных приложения и SDK.
"News from the trenches — What’s next for Koin?" by Arnaud Giuliani
Я большой фанат Dependency Injection (DI) решения на Kotlin - Koin. Почему он мне нравится? Как много расширенного функционала из Dagger 2 вы используете? Из личного опыта я видел много проектов где это не было нужно. Так зачем использовать ракету чтобы перейти улицу 🤔? Поэтому я и предпочитаю Koin для простых проектов.
Я делал доклад по Koin, запись которого вы можете найти здесь.
В статье описывается, что нас ждет в Koin 2.0 🔥. Основные изменения будут:
👉Улучшение производительности на Android 🚀
👉Более удобное API для инициализации
👉Движение в сторону поддержки работы Kotlin Multiplatform Project (финальная поддержка ожидается в Kotlin 2.1)
👉Будет убрана часть функционала в объявление модулей для упрощения работы с ними: вложенные модули, имена модулей и др.
👉Разделение на глобальный (приложение) и локальный (модули/библиотеки) контексты для работы с Koin в многомодульных приложения и SDK.
Medium
News from the trenches — What’s next for Koin?
This is now 3 months that Koin 1.0 has been launched, the first version tagged as production-ready. This has been also a great period for…
Какую Dependency Injection/Service Locator библиотеку используете вы?
anonymous poll
Dagger 2 – 28
👍👍👍👍👍👍👍 54%
Koin – 17
👍👍👍👍 33%
Другое – 5
👍 10%
Kodein – 2
👍 4%
Dagger 1 by Square
▫️ 0%
Custom
▫️ 0%
👥 52 people voted so far. Poll closed.
anonymous poll
Dagger 2 – 28
👍👍👍👍👍👍👍 54%
Koin – 17
👍👍👍👍 33%
Другое – 5
👍 10%
Kodein – 2
👍 4%
Dagger 1 by Square
▫️ 0%
Custom
▫️ 0%
👥 52 people voted so far. Poll closed.
#Flutter #Dart #Android
MythBuster : 10 Rumors about Flutter, why it’s not worse than Android+Kotlin?
Flutter набирает все большую популярность, формируется сообщество, любители ну и без хейтеров не обходится. В статье автор разрушает самые популярные мифы о Flutter, а именно:
1️⃣ Пользователь заметит, что приложение нативное либо нет
2️⃣ Dart странный язык
3️⃣ Иерархия виджетов во Flutter трудночитаемая
4️⃣ На Flutter вы не можете использовать Gson или Moshi
5️⃣ На Flutter нет корутин 😢
6️⃣ На Android мы реализуем MVVM с LiveData-ами
7️⃣ На выходе у Flutter получается APK большого размера
8️⃣ На Flutter у вас не будет популярных библиотек
9️⃣ Мое SDK не работает на Flutter
🔟 Crashlytics недоступна на Flutter
На мой взгляд автор расписал все хорошо. Flutter - молодая технология. Она использует диковинный язык, имеет свой взгляд на архитектуру приложения, и требования, которые накладываются устройствами, где работают приложения.
Рекомендую всем взглянуть на Flutter, так как чутье мне подсказывает, что кроссплатформенная разработка будет становится все популярнее у бизнеса, особенно аутсорс.
Но после прочтения статьи у меня все также остаются вопросы:
❓Читабельны ли будут стектрейсы крешей в Crashlytics?
❓Можно ли сейчас сделать Instant App с Flutter?
❓Что с взаимодействием с железным API: камера, датчики, модули связи и пр. ?
❓Как решаются проблемы с разным видом стандартного UI в ОС? Например, уведомления в системной панели.
❓Насколько быстро добавляется поддержка свежих версий ОС (Android Q и iOS 13)?
MythBuster : 10 Rumors about Flutter, why it’s not worse than Android+Kotlin?
Flutter набирает все большую популярность, формируется сообщество, любители ну и без хейтеров не обходится. В статье автор разрушает самые популярные мифы о Flutter, а именно:
1️⃣ Пользователь заметит, что приложение нативное либо нет
2️⃣ Dart странный язык
3️⃣ Иерархия виджетов во Flutter трудночитаемая
4️⃣ На Flutter вы не можете использовать Gson или Moshi
5️⃣ На Flutter нет корутин 😢
6️⃣ На Android мы реализуем MVVM с LiveData-ами
7️⃣ На выходе у Flutter получается APK большого размера
8️⃣ На Flutter у вас не будет популярных библиотек
9️⃣ Мое SDK не работает на Flutter
🔟 Crashlytics недоступна на Flutter
На мой взгляд автор расписал все хорошо. Flutter - молодая технология. Она использует диковинный язык, имеет свой взгляд на архитектуру приложения, и требования, которые накладываются устройствами, где работают приложения.
Рекомендую всем взглянуть на Flutter, так как чутье мне подсказывает, что кроссплатформенная разработка будет становится все популярнее у бизнеса, особенно аутсорс.
Но после прочтения статьи у меня все также остаются вопросы:
❓Читабельны ли будут стектрейсы крешей в Crashlytics?
❓Можно ли сейчас сделать Instant App с Flutter?
❓Что с взаимодействием с железным API: камера, датчики, модули связи и пр. ?
❓Как решаются проблемы с разным видом стандартного UI в ОС? Например, уведомления в системной панели.
❓Насколько быстро добавляется поддержка свежих версий ОС (Android Q и iOS 13)?
ProAndroidDev
MythBuster : 10 Rumors about Flutter, why it’s not worse than Android+Kotlin ?
The problem with Flutter ? Every developer has myth about it, “I don’t want to develop on Flutter because #%&ç*”, let’s bust those myths !
#Library
Valigator
Полезная библиотека, позволяющая удобно писать валидаторы, для EditText на Kotlin.
Valigator
Полезная библиотека, позволяющая удобно писать валидаторы, для EditText на Kotlin.
GitHub
GitHub - radoyankov/valigator: Validation tools for EditText fields
Validation tools for EditText fields. Contribute to radoyankov/valigator development by creating an account on GitHub.
#Library #Span
Rialto by Mark Allison
В Android есть поддержка парсинга HTML текста с форматированием, например:
```<string name=”noscript”>Best practices for <b>text</b> on Android</string>```
с помощью android.text.Annotation вы можете кастомизировать существующие стили или вовсе добавлять новые. Например:
```<string name=”noscript”>Best practices for <annotation font=”noscript_emphasis”>text</annotation> on Android</string>```
Также важным является то, что таким образом любой ваш кастомный Span может быть сериализован и передан в другое приложение и восстановлен.
Но не все так сладко, так как чтобы все это заработало необходимо добавить много кода вокруг для обработки Annotation. Mark Allison решил упростить эту задачу и сделал библиотеку Rialto для этого. Подробности найдете в документации на Github и из серии статей:
AnnotationSpans – Part 1
AnnotationSpans – Part 2
Rialto – Getting Started
Rialto – Advanced Usage
Rialto: V1.1.0
Rialto by Mark Allison
В Android есть поддержка парсинга HTML текста с форматированием, например:
```<string name=”noscript”>Best practices for <b>text</b> on Android</string>```
с помощью android.text.Annotation вы можете кастомизировать существующие стили или вовсе добавлять новые. Например:
```<string name=”noscript”>Best practices for <annotation font=”noscript_emphasis”>text</annotation> on Android</string>```
Также важным является то, что таким образом любой ваш кастомный Span может быть сериализован и передан в другое приложение и восстановлен.
Но не все так сладко, так как чтобы все это заработало необходимо добавить много кода вокруг для обработки Annotation. Mark Allison решил упростить эту задачу и сделал библиотеку Rialto для этого. Подробности найдете в документации на Github и из серии статей:
AnnotationSpans – Part 1
AnnotationSpans – Part 2
Rialto – Getting Started
Rialto – Advanced Usage
Rialto: V1.1.0
GitHub
GitHub - StylingAndroid/Rialto
Contribute to StylingAndroid/Rialto development by creating an account on GitHub.
#R8 #Optimization #Kotlin
"R8 Optimization: Staticization" by Jake Wharton|Google
Новая часть статей о компиляции Java кода в Android. В новой статье рассматривается R8 - замена ProGuard от Google. R8 - это не отдельная утилита, а расширение D8, либо более простая формула R8 = D8 + оптимизации.
В статье рассматривается первая оптимизация, которую выполняет R8 - конвертация обычных методов в статические. Вы можете узнать о том, как это выполняется для Companion Object классов в Kotlin.
"R8 Optimization: Staticization" by Jake Wharton|Google
Новая часть статей о компиляции Java кода в Android. В новой статье рассматривается R8 - замена ProGuard от Google. R8 - это не отдельная утилита, а расширение D8, либо более простая формула R8 = D8 + оптимизации.
В статье рассматривается первая оптимизация, которую выполняет R8 - конвертация обычных методов в статические. Вы можете узнать о том, как это выполняется для Companion Object классов в Kotlin.
Jake Wharton
R8 Optimization: Staticization – Jake Wharton
#Dagger #Modularization #Architecture
"Using Dagger in a multi-module project" by Marcos Holgado
Последний тренд в архитектуре Android приложений - это модуляризация (разбиение на Gradle модули). Ее преимущества:
👉 изоляцию функционала друг от друга
👉 более высокая скорость инкрементальной сборки проекта
👉 возможность поддержки Instant Apps и Dynamic Features
👉 меньше конфликтов при работе нескольких разработчиков над проектом.
Преимущества этого подхода прекрасны, но проблема в том, что интеграция подхода в проект непроста, особенно если в уже существующий.
Одна из трудных задач при миграции в многомодульный проект - это разделение графа зависимостей Dagger. В статье вы найдете путеводитель, как пройти путь от одного модуля в множество и нигде не заплутать.
Хорошее видео о модуляризация вашего приложения от Денис Неклюдов — "Как не состариться во время сборки: Kapt и другие приключения"
"Using Dagger in a multi-module project" by Marcos Holgado
Последний тренд в архитектуре Android приложений - это модуляризация (разбиение на Gradle модули). Ее преимущества:
👉 изоляцию функционала друг от друга
👉 более высокая скорость инкрементальной сборки проекта
👉 возможность поддержки Instant Apps и Dynamic Features
👉 меньше конфликтов при работе нескольких разработчиков над проектом.
Преимущества этого подхода прекрасны, но проблема в том, что интеграция подхода в проект непроста, особенно если в уже существующий.
Одна из трудных задач при миграции в многомодульный проект - это разделение графа зависимостей Dagger. В статье вы найдете путеводитель, как пройти путь от одного модуля в множество и нигде не заплутать.
Хорошее видео о модуляризация вашего приложения от Денис Неклюдов — "Как не состариться во время сборки: Kapt и другие приключения"
Medium
Using Dagger in a multi-module project
Struggling to use dagger in a multi-module project? This article should help you a lot so you don’t waste the time I wasted a year ago.
#Google Play
In reviews we trust — Making Google Play ratings and reviews more trustworthy
В Google Play провели тотальную чистку отзывов и рейтингов, которые посчитали неприемлемыми: фейковые, нарушающие политику Google Play или специально предназначенные для занижения или завышения рейтинга приложения.
In reviews we trust — Making Google Play ratings and reviews more trustworthy
В Google Play провели тотальную чистку отзывов и рейтингов, которые посчитали неприемлемыми: фейковые, нарушающие политику Google Play или специально предназначенные для занижения или завышения рейтинга приложения.
Android Developers Blog
In reviews we trust — Making Google Play ratings and reviews more trustworthy
Posted by Fei Ye, Software Engineer and Kazushi Nagayama, Ninja Spamologist Google Play ratings and reviews are extremely importa...
#Gradle #Kotlin
Gradle Site plugin was updated to 5.0
Не так давно вышел Gradle 5.0 и вот только сейчас Gradle полностью обновила пример по написанию своих собственных плагинов, добавив все новые функции. и теперь пример полностью на Kotlin 🎉.
Gradle Site plugin was updated to 5.0
Не так давно вышел Gradle 5.0 и вот только сейчас Gradle полностью обновила пример по написанию своих собственных плагинов, добавив все новые функции. и теперь пример полностью на Kotlin 🎉.
#Kotlin #Performance #Benchmark
"Kotlin performance on Android" от Александра Смирнова
Kotlin - прекрасный язык, предоставивший нам много синтаксиса и возможностей, позволяющих упростить реализацию задач. Но какова цена этого сахара? В статье вы можете найти сравнение производительности основных фичей Kotlin и того как они могут влиять на скорость работы приложения на устройствах.
Спойлер результатов - все примерно одинаково, но если вы еще включите R8/Proguard то результаты будут лучше, так что используйте их для релизных сборок вашего приложения.
"Kotlin performance on Android" от Александра Смирнова
Kotlin - прекрасный язык, предоставивший нам много синтаксиса и возможностей, позволяющих упростить реализацию задач. Но какова цена этого сахара? В статье вы можете найти сравнение производительности основных фичей Kotlin и того как они могут влиять на скорость работы приложения на устройствах.
Спойлер результатов - все примерно одинаково, но если вы еще включите R8/Proguard то результаты будут лучше, так что используйте их для релизных сборок вашего приложения.
Хабр
Kotlin performance on Android
Поговорим сегодня о производительности Kotlin на Android в production. Посмотрим под капот, реализуем хитрые оптимизаци, сравним байт-код. Наконец, серьезно подо...
#System
"Как работает SystemUI в Android" от @miproblema
Задумывались ли вы что происходит для отображения UI чтобы сделать ваше видео потише? А как работает отображение последних приложений? В статье автор разобралась покопалась в нутрах того, что происходит для запуска системного UI.
"Как работает SystemUI в Android" от @miproblema
Задумывались ли вы что происходит для отображения UI чтобы сделать ваше видео потише? А как работает отображение последних приложений? В статье автор разобралась покопалась в нутрах того, что происходит для запуска системного UI.
Хабр
Как работает SystemUI в Android
В этой статье я разберу архитектуру и принцип работы основного приложения Android — SystemUI. Меня заинтересовала эта тема, потому что мне интересно, как устро...
#WorkManager #ArchitectureComponents
https://developer.android.com/jetpack/docs/release-notes#december_19_2018
Под новый год Google радует нас подарками - вышел первый beta релиз WorkManager. Так что можно начинать интегрировать его в ваши приложения: API меняться не будет, за исключением критических багов, да и за последние 6 месяцев там было проделано много работы, как результат - библиотека уже стабильна.
https://developer.android.com/jetpack/docs/release-notes#december_19_2018
Под новый год Google радует нас подарками - вышел первый beta релиз WorkManager. Так что можно начинать интегрировать его в ваши приложения: API меняться не будет, за исключением критических багов, да и за последние 6 месяцев там было проделано много работы, как результат - библиотека уже стабильна.
#R8 #Optimization #Kotlin
"R8 Optimization: Null Data Flow Analysis" by Jake Warton|Google
Продолжение статей о том какие оптимизации выполняются в R8. В новой статье вы узнаете о том как оптимизируется работа с null.
"R8 Optimization: Null Data Flow Analysis" by Jake Warton|Google
Продолжение статей о том какие оптимизации выполняются в R8. В новой статье вы узнаете о том как оптимизируется работа с null.
Jake Wharton
R8 Optimization: Null Data Flow Analysis (Part 1) – Jake Wharton
#GooglePlay
"За что Android-разработчики ненавидят Google" от Евгения Трифонова
Рассказ о том что автоматизация процессов не есть всегда хорошо на примере удаления приложений из Google Play и того какие муки проходят разработчики, чтобы восстановить свои приложения там.
"За что Android-разработчики ненавидят Google" от Евгения Трифонова
Рассказ о том что автоматизация процессов не есть всегда хорошо на примере удаления приложений из Google Play и того какие муки проходят разработчики, чтобы восстановить свои приложения там.
Хабр
За что Android-разработчики ненавидят Google
Если посмотреть на мир Android, с первого взгляда кажется, что между разработчиками приложений и Google царят мир-дружба-жвачка. Компания поддержала любовь раз...
#GooglePlay
"Создаем инструменты для глубокого анализа рейтинга приложений в Google Play Store" от Skillbox
История о том как ребята решили создать модель предсказания рейтинга приложения, на основе чего выводили данные и что из этого вышло.
Результат исследований - делайте игру в категорию "Семейные" для всех возрастов 😁
"Создаем инструменты для глубокого анализа рейтинга приложений в Google Play Store" от Skillbox
История о том как ребята решили создать модель предсказания рейтинга приложения, на основе чего выводили данные и что из этого вышло.
Результат исследований - делайте игру в категорию "Семейные" для всех возрастов 😁
Хабр
Создаем инструменты для глубокого анализа рейтинга приложений в Google Play Store
От переводчика: сегодня публикуем для вас совместную статью трех разработчиков, Akaash Chikarmane, Erte Bablu и Nikhil Gaur, в которой рассказывается о методе...