Обновление устройств и их поддержка - это большая проблема Android. Если вы купили телефон флагман, вы столкнётесь с такой проблемой меньше, но все равно столкнётесь. Купив в этом году Galaxy S10 вы не получите обновления также быстро после выхода Galaxy S11, так как компании нужно продавать свежий флагман. На дешевые телефон компании забивают еще раньше 😔 + этому не способствовал сам Android, так как его ядро было большим монолитом.
Google стала решать эту проблему - «Project Treble» в Android 8 и потом «Project Mainline» в Android 10. Первый разделил ядро ОС на слои, отделив работу с железом в отдельный слой, а второй - позволяет обновлять наиболее критичные компоненты без необходимости перезагрузки устройства и обновления прошивки, аналогично приложениям Google Play.
В статье разбираются детали работы «Project Mainline»
Сегодня, 9 сентября состоится очередная лекция курса Android Academy Minsk - Android Fundamentals #1 : Hello world. В лекции вы узнаете 👉 Как создать простой Android проект 👉 Базисы работы с ресурсами 👉 Немного о Context и Activity
Прошедшая неделя была очень богатой на обновления: 👉 Кастомные конструкторы в Fragment - здравствуй Dagger 2 и inject в конструкторы 👉Улучшения в Navigation: dialog target, навигация по uri 👉Новые Kotlin APIs в *-ktx 👉 Улучшения в Preference Framework и Preference из SDK уже deprecated
Все кто хочет использовать код для созданию UI в Android, сейчас вариантов не так много: 👉Anko Layouts - больше не поддерживается 👉Jetpack Compose - еще не готово 👉Создавать View через код - мучительно и больно
Представляю вам новую библиотеку - Contour Она предоставляет typesafe, Kotlin API для сложных layout на Android
Как облегчить себе поиск проблем в производительности приложения? В статье рассматриваются следующие инструменты: 👉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 - утилита для сбора информации о производительности опубликованного приложения
В Google неожиданно решили вспомнить, что у них есть поддержка больших экранов, а вендоры производят планшеты и Chrome OS имеет поддержку Android приложений и там очень эффективно работает планшетный дизайн.
Всем привет. На этой неделе я не смог выдерживать ритм по новостям + мало чего интересно + все мои силы между старой и новой работой идут на то, чтобы сделать Kotlin/Everywhere Minsk, которая состоится 7 сентября. Были 3 напряжённых месяца подготовки и остается совсем чуть-чуть. Регистрируйтесь чтобы получить видео, посетить мероприятие или помочь в качестве волонтёра.
Со следующей неделе я вернусь к привычному ритму посту новостей. Спасибо за понимание
Gradle дало большую гибкость в сборке приложений. Но за все приходится платить и цена - это скорость сборки. С ростом проектом она увеличивается. Разработчики решили эту проблему, начав разбивать проекты на модули, где каждый из них собирается отдельно и может более эффективно кэшироваться.
Кэширование сборки тоже не самый эффективный механизм Gradle, но есть часть Gradle Enterprise - Remote Build Cache, которая позволяет шарить кэш между различными машинами. Больше подробностей о этой функции в статье от SoundСloud
Как протестировать код, который использует Retrofit интерфейс? Использовать моки или HttpMocker. Есть более эффективный способ - самому реализовать свою Proxy для Retrofit со стабами. Подробности того как это сделать когда вы используете Coroutine или нет вы найдёте в статье
Вот и состоялся выход новой стабильной версии ОС Android. Что это привносит? Давайте разбираться: 👉 Теперь нет букв в названиях Android и сладостей. Только цифры. Скатились до iOS 😥 👉 Поддержка складываемых устройств (кстати оба из них не стали выходить 😁) 👉 Поддержка сетей 5G 👉 Темная тема 👉 LiveCaption - теперь можно сделать субтитры для всего что воспроизводится в системе 👉 Новая система навигации жестами, которую Google пытается стандартизировать кросс производителей устройств 👉 Большой упор на приватность данных 👉 Улучшение работы с камерой 👉 Улучшение виртуальной машины ART 👉 Поддержка быстрых обновлений безопасностей и патчей без необходимости перезагрузки
Помните RxBinding? Так вот её аналог, только построенный на Kotlin Coroutine-ах. Библиотека позволяет осуществлять биндинги к самым популярным виджетам из Android SDK и AndroidX
Важно помнить, что LiveData посылает обновления, только в том случае, когда у нее есть хотя бы один подписчик (observer). Это может привести к ошибкам в ваших тестах (успешно их прохождению или нет).
В статье рассматриваются ошибки и рекомендации по использованию LiveData в тестах: 👉 Используйте LiveData.getOrAwaitValue(timeout: Long) для получения результата из LiveData в unit тестах 👉 Используйте InstantTaskExecutorRule для предотвращения проблем с многопоточностью при работе с LiveData 👉 Частая ошибка - используйте один и тот же объект ViewModel, если он шарится между несколькими Fragment
CalendarView - хорошо кастомизируемый виджет календаря, основанный на RecyclerView.
Возможности библиотеки: 👉 Выбор одного значения или диапазона 👉 Режим недели или месяца 👉 Ограничение дат 👉 Кастомизация внешнего вида ячеек 👉 Кастомизация внешнего вида календаря 👉 Любой день в качестве первого дня недели 👉 Горизонтальный или вертикальный скролл 👉 Добавление headers/footers к любому месяцу 👉 Простой скролл к дате и месяцу 👉 Возможность использования любых кастомизаций RecyclerView
Библиотека работает на основе ThreeTenABP для возможности работы с Java 8 Date Time на старых версиях Android SDK