Рассылка Now in Android
Google стала делать рассылку с новостями в мире Android, но зачем они если есть Android Broadcast 😁
Google стала делать рассылку с новостями в мире Android, но зачем они если есть Android Broadcast 😁
#Tools #Performance
Android third party tools to increase the performance of your app
Как облегчить себе поиск проблем в производительности приложения? В статье рассматриваются следующие инструменты:
👉 Leak Canary - популярный инструмент, позволяющий находить утечки памяти
👉 Android Performance Monitor (Block Canary) - библиотека для обнаружения ui-фризов
👉 AndroidDevMetrics - позволяет замерить сколько времени уходит на инициализацию Activity и Dagger 2
👉 Takt - намерение FPS
👉 Nanoscape от Uber - трасировщик с более высокой скоростью работы и более аккуратный чем Android Studio CPU Profiler
👉 Android God Eye - утилита, которая может следить за множеством параметров FPS/RAM/PSS/Battery, Cpu/Heap/Traffic, Leak Memory/App Janks, Network и Thread
👉 Booster - коллекция модулей для поиска проблем производительности, оптимизации многопоточности и др Включает в себя около 20 модулей с разными целями. По заявлением авторов вы можете увеличить производительность вашего приложения нв 15% ~ 25% и уменьшить размер на 1MB ~ 10MB.
👉 Profilo от Facebook - утилита для сбора информации о производительности опубликованного приложения
Android third party tools to increase the performance of your app
Как облегчить себе поиск проблем в производительности приложения? В статье рассматриваются следующие инструменты:
👉 Leak Canary - популярный инструмент, позволяющий находить утечки памяти
👉 Android Performance Monitor (Block Canary) - библиотека для обнаружения ui-фризов
👉 AndroidDevMetrics - позволяет замерить сколько времени уходит на инициализацию Activity и Dagger 2
👉 Takt - намерение FPS
👉 Nanoscape от Uber - трасировщик с более высокой скоростью работы и более аккуратный чем Android Studio CPU Profiler
👉 Android God Eye - утилита, которая может следить за множеством параметров FPS/RAM/PSS/Battery, Cpu/Heap/Traffic, Leak Memory/App Janks, Network и Thread
👉 Booster - коллекция модулей для поиска проблем производительности, оптимизации многопоточности и др Включает в себя около 20 модулей с разными целями. По заявлением авторов вы можете увеличить производительность вашего приложения нв 15% ~ 25% и уменьшить размер на 1MB ~ 10MB.
👉 Profilo от Facebook - утилита для сбора информации о производительности опубликованного приложения
#UI
Contour
Все кто хочет использовать код для созданию UI в Android, сейчас вариантов не так много:
👉 Anko Layouts - больше не поддерживается
👉 Jetpack Compose - еще не готово
👉
Представляю вам новую библиотеку - Contour
Она предоставляет typesafe, Kotlin API для сложных layout на Android
Contour
Все кто хочет использовать код для созданию UI в Android, сейчас вариантов не так много:
👉 Anko Layouts - больше не поддерживается
👉 Jetpack Compose - еще не готово
👉
Создавать View через код - мучительно и больноПредставляю вам новую библиотеку - Contour
Она предоставляет typesafe, Kotlin API для сложных layout на Android
GitHub
GitHub - cashapp/contour: Layouts with lambdas 😎
Layouts with lambdas 😎. Contribute to cashapp/contour development by creating an account on GitHub.
#AndroidX #JetpackWeekly
Android Jetpack Weekly #7
Прошедшая неделя была очень богатой на обновления:
👉 Кастомные конструкторы в Fragment - здравствуй Dagger 2 и inject в конструкторы
👉Улучшения в Navigation: dialog target, навигация по uri
👉Новые Kotlin APIs в *-ktx
👉 Улучшения в Preference Framework и Preference из SDK уже deprecated
Android Jetpack Weekly #7
Прошедшая неделя была очень богатой на обновления:
👉 Кастомные конструкторы в Fragment - здравствуй Dagger 2 и inject в конструкторы
👉Улучшения в Navigation: dialog target, навигация по uri
👉Новые Kotlin APIs в *-ktx
👉 Улучшения в Preference Framework и Preference из SDK уже deprecated
Medium
Android Jetpack Weekly #7
Review of the most interesting updates in Android Jetpack libraries
#AndroidAcademy #Minsk
Сегодня, 9 сентября состоится очередная лекция курса Android Academy Minsk - Android Fundamentals #1 : Hello world. В лекции вы узнаете
👉 Как создать простой Android проект
👉 Базисы работы с ресурсами
👉 Немного о
Сегодня, 9 сентября состоится очередная лекция курса Android Academy Minsk - Android Fundamentals #1 : Hello world. В лекции вы узнаете
👉 Как создать простой Android проект
👉 Базисы работы с ресурсами
👉 Немного о
Context и Activity#Android10 #Security
Project Mainline в Android 10
Обновление устройств и их поддержка - это большая проблема Android. Если вы купили телефон флагман, вы столкнётесь с такой проблемой меньше, но все равно столкнётесь. Купив в этом году Galaxy S10 вы не получите обновления также быстро после выхода Galaxy S11, так как компании нужно продавать свежий флагман. На дешевые телефон компании забивают еще раньше 😔 + этому не способствовал сам Android, так как его ядро было большим монолитом.
Google стала решать эту проблему -
В статье разбираются детали работы «Project Mainline»
Project Mainline в Android 10
Обновление устройств и их поддержка - это большая проблема Android. Если вы купили телефон флагман, вы столкнётесь с такой проблемой меньше, но все равно столкнётесь. Купив в этом году Galaxy S10 вы не получите обновления также быстро после выхода Galaxy S11, так как компании нужно продавать свежий флагман. На дешевые телефон компании забивают еще раньше 😔 + этому не способствовал сам Android, так как его ядро было большим монолитом.
Google стала решать эту проблему -
«Project Treble» в Android 8 и потом «Project Mainline» в Android 10. Первый разделил ядро ОС на слои, отделив работу с железом в отдельный слой, а второй - позволяет обновлять наиболее критичные компоненты без необходимости перезагрузки устройства и обновления прошивки, аналогично приложениям Google Play.В статье разбираются детали работы «Project Mainline»
Хабр
Project Mainline в Android 10
Вчера вышло очередное обновление ОС для мобильных устройств от Google. Одним из главных нововведений Android 10 стал «Project Mainline». Попробую разобраться что это, для чего и как работает. В...
#ArchitectureComponents #LiveData #Location
Android Tutorial On Location Update With LiveData
Гайд по интеграции Fused Location Provider и
Android Tutorial On Location Update With LiveData
Гайд по интеграции Fused Location Provider и
LiveData, чтобы получать обновления геопозиции красиво с использованием Architecture ComponentsMedium
Android Tutorial On Location Update With LiveData
In this tutorial, I will introduce you to how to implement continuous location update with Android architecture components and Google…
#Kotlin
Unit, Nothing, Any (and null)
Kotlin имеет систему типов отличную от Java - есть понятия nullable типов и специальные типы
Unit, Nothing, Any (and null)
Kotlin имеет систему типов отличную от Java - есть понятия nullable типов и специальные типы
Any, Nothing и Unit. За что эти типы отвечают, в каких ситуациях применяются и чем отличаются - вы найдете в статье.Medium
[Kotlin Pearls 7] Unit, Nothing, Any (and null)
How to take advantage of Kotlin special Types
Хотитет узнать больше интересного о системе типов в Kotlin? Рекомендую почитать статью от Marcin Moskala "The beauty of Kotlin typing system"
Medium
The beauty of Kotlin typing system
Many amazing Kotlin features are just a result of its amazingly designed type system. See how all those pieces perfectly fit together.
#Architecture #BestPractices
The “Real” Repository Pattern in Android
Repository - это довольно популярный шаблон проектирования, позволяющий инкапсулировать получение/хранение данных из различных источников: сервер, БД, хранилища на устройстве и пр.
Шаблон проектирования - это рекомендация и общее описание компонентов и их отношений между ними, поэтому зачастую разработчики делают реализацию по разному и не всегда хорошо.
Наиболее популярные ошибки, которые допускают пользователи:
👉
👉 Различные несвязанные между собой DataSource используются одни и те же DTO
👉 Repository реализуется по на основе endpoint-ов, а не на основе модели
👉 Repository кэширует всю модель, даже те поля, которые всегда должны быть свежими
👉 DataSource используется более чем одним Repository
В статье разбираются эти лучшие практики по реализации и почему им стоит следовать
The “Real” Repository Pattern in Android
Repository - это довольно популярный шаблон проектирования, позволяющий инкапсулировать получение/хранение данных из различных источников: сервер, БД, хранилища на устройстве и пр.
Шаблон проектирования - это рекомендация и общее описание компонентов и их отношений между ними, поэтому зачастую разработчики делают реализацию по разному и не всегда хорошо.
Наиболее популярные ошибки, которые допускают пользователи:
👉
Repository возвращает DTO (модели источников данных, которые используются источниками данных в нем) а не модели Domain слоя👉 Различные несвязанные между собой DataSource используются одни и те же DTO
👉 Repository реализуется по на основе endpoint-ов, а не на основе модели
👉 Repository кэширует всю модель, даже те поля, которые всегда должны быть свежими
👉 DataSource используется более чем одним Repository
В статье разбираются эти лучшие практики по реализации и почему им стоит следовать
Medium
The “Real” Repository Pattern in Android
Over the years I’ve seen many implementations of the repository pattern, yet I think most of them are wrong and not beneficial.
#Testing
Android UI Testing Frameworks
Сравнение различных тестовых фреймворков для UI на Android. В ходе сравнения производится сравнения реализации одного тестового сценария на разных фреймворках:
👉 Appium
👉 Espresso
👉 UI Automator
Android UI Testing Frameworks
Сравнение различных тестовых фреймворков для UI на Android. В ходе сравнения производится сравнения реализации одного тестового сценария на разных фреймворках:
👉 Appium
👉 Espresso
👉 UI Automator
Medium
Android UI Testing Frameworks
Testing is an essential part of the software development process and product release. Often, there is a situation when there are two…
#Java
Jabel - unlock Javac 12+ syntax when targeting Java 8
Все еще боретесь за права Java и не признаёте Kotlin? Пока Android команда молчит о добавление поддержке возможностей из свежих версий Java, проект Jabel может вас порадовать. Автор занимается тем чтобы использовать такие новинки Java 12+ на Java 9 как:
👉 var
👉 Type inference
👉 switch expression
👉 много другого менее интересного
Jabel - unlock Javac 12+ syntax when targeting Java 8
Все еще боретесь за права Java и не признаёте Kotlin? Пока Android команда молчит о добавление поддержке возможностей из свежих версий Java, проект Jabel может вас порадовать. Автор занимается тем чтобы использовать такие новинки Java 12+ на Java 9 как:
👉 var
👉 Type inference
👉 switch expression
👉 много другого менее интересного
GitHub
GitHub - bsideup/jabel: Jabel - unlock Javac 9+ syntax when targeting Java 8
Jabel - unlock Javac 9+ syntax when targeting Java 8 - bsideup/jabel
#ViewBinding
В Android Studio добавили View Binding
В Android Studio 3.6. Canary 11 добавили поддержку
Наконец-то появилась альтернатива Butter Knife и Kotlin Android Extensions.
В Android Studio добавили View Binding
В Android Studio 3.6. Canary 11 добавили поддержку
View Binding. View Binding - это легкая замена Data Binding, котороя содержит только ссылки на View из ваших layout ресурсов.Наконец-то появилась альтернатива Butter Knife и Kotlin Android Extensions.
#JakeWharton
Вышел Butter Knife 10.2.0
Вышла новая версия библиотеки Butter Knife, в которой реализована поддержка инкрементального процессинга аннотаций, а также теперь поддерживается только Android Gradle Plugin версии 3.3 и выше
Вышел Butter Knife 10.2.0
Вышла новая версия библиотеки Butter Knife, в которой реализована поддержка инкрементального процессинга аннотаций, а также теперь поддерживается только Android Gradle Plugin версии 3.3 и выше
GitHub
butterknife/CHANGELOG.md at master · JakeWharton/butterknife
Bind Android views and callbacks to fields and methods. - JakeWharton/butterknife
Что вы используете для получения ссылок на view в Android?
Final Results
16%
findViewById()
4%
Butter Knife
1%
Kotter Knife
11%
Android DataBindings
2%
View Bindings (появилось в AS 3.6 Canary 11)
60%
Kotlin Android Extensions
3%
Пишу UI в коде и не нужно ничего искать
2%
Собственное решение
1%
Не работаю с UI
#JakeWharton #ViewBinding
Важная новость которую я пропустил в посте и Butter Knife 10.2.0 - Jake рекомендует мигрировать на View Binding т.к. разработка Butter Knife останавливается
Важная новость которую я пропустил в посте и Butter Knife 10.2.0 - Jake рекомендует мигрировать на View Binding т.к. разработка Butter Knife останавливается
#Multiplatform #ReactiveX #Kotlin
Вышел Reaktive 1.0.0-rc2
Ребята из Badoo не останавливаются и продолжают развивать свою библиотеку Reaktive - ReactiveX на чистом Kotlin причем еще и Multiplatform. В новой версии произошли следующие изменения:
👉 Переход на Kotlin 1.3.50
👉 Новый оператор threadLocal()
👉 Thread local subnoscriptions
👉 Новые операторы
👉 Исправление багов и больше стабильности
👉 Добвлен MPP модуль с примером
Ждем не дождемся стабильного релиза!
Вышел Reaktive 1.0.0-rc2
Ребята из Badoo не останавливаются и продолжают развивать свою библиотеку Reaktive - ReactiveX на чистом Kotlin причем еще и Multiplatform. В новой версии произошли следующие изменения:
👉 Переход на Kotlin 1.3.50
👉 Новый оператор threadLocal()
👉 Thread local subnoscriptions
👉 Новые операторы
👉 Исправление багов и больше стабильности
👉 Добвлен MPP модуль с примером
Ждем не дождемся стабильного релиза!
GitHub
Release 1.0.0-rc2 · badoo/Reaktive
Kotlin 1.3.50
New threadLocal() operator and thread local subnoscriptions
More operators
Bug fixes
More tests
Added sample MPP module, reused in all sample apps, MVI architecture
Linux sample app now...
New threadLocal() operator and thread local subnoscriptions
More operators
Bug fixes
More tests
Added sample MPP module, reused in all sample apps, MVI architecture
Linux sample app now...
"Reaktive: реактивное программирование в Kotlin Multiplatform" - Аркадий Иванов@Badoo
Уже доступно видео с конференции Kotlin/Everywhere Minsk, где один из создателей библиотеки рассказывает более подробно о ней.
Уже доступно видео с конференции Kotlin/Everywhere Minsk, где один из создателей библиотеки рассказывает более подробно о ней.
#JavaScript #V8
A lighter V8
Для всех кто исполняет JS код у себя в приложения (я это не разделяю, но есть legacy порой). V8 Lite - это проект направленный на сокращения потребления памяти на слабых устройствах. В некоторых оптимизациях в жертву была отдана скорость выполнения.
В статье рассказывается о том, что из себя представляет новый режим V8, какие есть оптимизации, сравнение V8 и V8 Lite и результаты работы.
A lighter V8
Для всех кто исполняет JS код у себя в приложения (я это не разделяю, но есть legacy порой). V8 Lite - это проект направленный на сокращения потребления памяти на слабых устройствах. В некоторых оптимизациях в жертву была отдана скорость выполнения.
В статье рассказывается о том, что из себя представляет новый режим V8, какие есть оптимизации, сравнение V8 и V8 Lite и результаты работы.
v8.dev
A lighter V8 · V8
The V8 Lite project dramatically reduced the memory overhead of V8 on typical websites, this is how we did it.
Всем привет! Сегодня 256-ой день в году, а это значит, что сегодня важный праздник для большинства подписчиков канала - День Программиста. Я желаю вас всего самого наилучшего: чистой архитектуры проектов, быстрой сборки, отсутствия багов, интересного стека технологий, задач и достижения невероятных высот вашими приложениями.
Спасибо всем вам, что вы читаете новости. Очень приятно понимать, что то что ты делаешь кому-то нужно и помогает. Хороших всем выходных!
Спасибо всем вам, что вы читаете новости. Очень приятно понимать, что то что ты делаешь кому-то нужно и помогает. Хороших всем выходных!