Google выпустила assertation библиотеку для тестов. В чем ее преимущества по сравнению с уже существующими решениями AssertJ и Hamcrest: 👉Более простое API: вызовы идут цепочкой и IDE может легко вам предлагать подходящие assertation 👉Сообщения об ошибки более читабельны
Подход к разбиению приложения на модули по принципу "Feature-спутник". Архитектура строилась чтобы удовлетворять требованиям: 1️⃣ Feature может не добавляться в buildVariant 2️⃣ Feature может быть загружена во время работы приложения 3️⃣ Может быть несколько feature, реализующих один и тот же функционал
Как это реализовывали и что из этого получилось вы можете узнать из статьи
Содержание: 👉 Handling nullability 👉 Implementing singletons 👉 Data classes 👉 Handling strings 👉 Elvis operator 👉 Destructuring 👉 Properties and backing properties 👉 Default arguments and named parameters 👉 Working with collections 👉 Extension functions 👉 Top-level functions and parameters 👉 let, apply, with, and run keywords
Kotlin набрал огромную популярность в современной Android разработке и уже успел стать основным языком для нее. Но что делать если ваш проект написан на Java и вы хотите мигрировать на Kotlin?
Самое простое решение - встроенный конвертер Java кода в Kotlin Plugin for IDEA. Он сделает за вас основную работу, но не сделает код идиоматическим для Kotlin 😞. Поэтому необходима вторая фаза, в которой надо поправить получившийся код. Google создали codelab, который покажет как пройти этот процесс.
Какая магия скрывается за этим решением? Что за synthetic импорт появляется для обеспечения работы этой функциональности? Каким образом не происходит утечек памяти? Как очищается кэш? Ответы на эти вопросы вы найдете в статье
Глубокое погружение в Canvas API, предназначенное для отрисовки на Android. С помощью таких знаний вы можете ускорить ваше приложение и достичь 60 кадров/сек. Из статьи вы узнаете о: 👉 Немного о Skia и какую роль она играет в Android 👉 Система координат в Canvas 👉 Как можно получить доступ к Canvas в Android 👉 Кастомизация отрисовки при помощи Paint
Компания FunCorp организовывает большой летний Android митап в рамках которого я буду рассказывать о новинке из Kotlin Coroutines - Flow.
В программе вас ждет: 👉«Сбор и анализ неординарных данных Android-приложения», Дмитрий Васильев@FunCorp Рассказ о сборе различных технический показателей приложения, зачем это делать и как их анализировать.
👉«Coroutines Flow», Кирилл Розов@Epam Kotlin Coroutines Flow - новинка из корутин, которая предоставляет холодные сhannel и открывает новые возможности. В рамках доклада вас ждет разбор Flow.
👉 «Сборка Android приложения. Задачка со звёздочкой», Антон Потапов@FunCorp Не Gradle едина сборка Android приложений! В докладе будут рассмотрены альтернативные системы сборки (Buck, Bazel, Jeka) и сравнение их с Gradle.
👉«Кодогенерация без kapt», Михаил Розумянский@Joom Процессинг аннотаций - это бич скорости сборки приложений. Можно ли избавиться от kapt и улучшить свою жизнь?
👉«Model Driven-конфигурация приложения на Kotlin DSL», Андрей Говоровский@Mail.ru Рассказ об опыте использования Kotlin DSL для описания модели конфигурации приложения и генерация кода на основе этих моделей
The technical choices I make to build great Android apps
Важным началом разработки любого приложения это есть принятия подходов, которые будут использоваться при создание вашего единорога! Разработчики приложения "A-Z" делятся своим опытом: 1️⃣UI 2️⃣Качество кода 3️⃣Архитектура приложения
Подвел итоги опроса. Участие в нем приняло 82 человека из 480 т.е. каждый шестой. Результаты следующие: 👉 Большая часть аудитории (96%) Android разработчики 👉Расположение по странам: чуть больше половины это Беларусь, оставшиеся - половина в России и Украине 👉Самые популярные используемые языки - Kotlin (96%) и Java (75%) 👉Чуть больше половины опрошенных не пишут тесты😞 👉Полезность контента на канале - 89% 👉80% нравятся опросы 👉 Значительная часть аудитории заинтересована в аудиозаписях с моим мнением
Взял себе на заметку что стоит улучшить: 👉Следить за грамотностью Буду искать инструмент, которые позволит мне проверять посты более тщательно. Рад вашим советам
👉Нет доступа к платным статьям на Medium Предлагаю несколько вариантов: 💲оплатите подписку 📖используйте "Instant View" в Telegram 🕶️открывайте статьи в режиме "Инкогнито"
👉Слишком большое количество информации и читатели не успевают все посмотреть Ранее я ввел правила по ограничению количества постов (не более 4 в день и воскресенье выходной). Буду стараться также и в будущем не спамить
На этой неделе, в Берлине, прошла крупная конференция по Android разработке - Droidcon! 3 дня, 1200 участников, 5 треков, более 100 докладов! Наши внештатные корреспонденты - Михаил Емельянов и Александр Крылов из компании ЦФТ побывали там и записали свои впечатления и полученную информацию.
- Droidcon в этом году и прошлом, различия; - Какие были компании, стенды, общение со спикерами, неожиданные встречи; - Обзоры докладов, сессий по каждому дню. На что стоит взглянуть, чего ожидать; - Общее впечатление, пожелания;
По сравнению с Java в Kotlin присутствует одна примечательная особенность API - разделение на изменяемые (mutable) и неизменяемые (immutable) коллекции. Например, MutableList<E> и List<E>, MutableSet<E> и Set<E>.
Реализации этих интерфейсов в языке не существует - Kotlin не стал идти по пути создания собственных коллекций, а сделал только обертки над стандартными коллекциями из платформенного API.
В статье можно найти больше об особенностях работы коллекций в Kotlin: 👉 Реальность модификации List<E> 👉 Какие коллекции создаются при вызове listOf() и mutableListOf() 👉 Во что транслируются в байткоде использования MutableList<E> и List<E>
А вот и вторая часть дебатов за асинхронность. Здесь ведущие продолжают разговор с того места, где остановились в прошлый раз. Александр рассказывает про ситуацию с Flutter, а Владимир с ReactNative. Кирилл с Данисом не дремлют и задают каверзные вопросы, благодаря которым какие-то вещи приходится копать прямо в процессе записи подкаста!
В Android Gradle Build системе у вас есть возможность переопределить versionCode для любого из BuildVarian , с помощью метода setVersionCodeOverride.
Хитрость заключается в том, что вызов этого метода влияет только на значение versionCode в AndroidManifest в конечном APK, но не меняет его в BuildConfig файле. Баг или фича? Больше подробностей смотрите в статье.
Продолжение серии статей о WorkManager. В этой части вы можете узнать о: 👉Основные компонентыWorkManager 👉Что происходит под капотомWorkManager 👉Типы запросов: OneTimeWorkRequest и PeriodicWorkRequest 👉Типы ограничений, которые можно применить для запросов: состояние сети, уровень батареи и пр. 👉Передача данных в запрос 👉Добавление запроса на обработку