Зачем этот канал?
В последнее время мне всё больше и больше хочется делиться мыслями, связанными с повседневной рабочей жизнью Android-разработчика.
При этом, далеко не всегда эти мысли вмещаются в одном твите.
В то же время, они не дотягивают до формата полноценной статьи.
Все эти мысли — навсегда теряются в недрах памяти.
Этим каналом я хочу закрыть эту дыру.
Что вам это даст?
Вы точно сможете узнать что-то новое.
Даже если нет — этот канал однозначно будет согревать вашу душу холодными зимними вечерами одним своим названием в вашем списке чатов
В последнее время мне всё больше и больше хочется делиться мыслями, связанными с повседневной рабочей жизнью Android-разработчика.
При этом, далеко не всегда эти мысли вмещаются в одном твите.
В то же время, они не дотягивают до формата полноценной статьи.
Все эти мысли — навсегда теряются в недрах памяти.
Этим каналом я хочу закрыть эту дыру.
Что вам это даст?
Вы точно сможете узнать что-то новое.
Даже если нет — этот канал однозначно будет согревать вашу душу холодными зимними вечерами одним своим названием в вашем списке чатов
👍6🤮1🤡1🤣1
Ограничиваем время выполнения Unit-тестов
Несколько раз замечал, что сборки PR-ов на
Оказалось, в обоих случаях, разработчики коммитили unit-тест, который фактически никогда не завершается.
В большой команде и при ограниченном количестве билд-агентов, это может сказаться на общей производительности инженеров
Решение
Ограничить время выполнения каждого теста.
Круто, что
Несколько раз замечал, что сборки PR-ов на
TeamCityпадают по таймауту самой джобы. (У нас это 1h30m)
Оказалось, в обоих случаях, разработчики коммитили unit-тест, который фактически никогда не завершается.
В большой команде и при ограниченном количестве билд-агентов, это может сказаться на общей производительности инженеров
Решение
Ограничить время выполнения каждого теста.
Круто, что
JUnit5позволяет сделать это централизованно через
systemProperty
👍1
Сколько весит приложение ?
После полного перехода на AppBundle, стало намного сложнее понять финальный размер приложения в Google Play.
Всэ зависит от ABI, плотности экрана (от котороой зависит выбранные ресурсы) и даже локалей, поддерживаемых на устройстве.
Все они представленны в виде отдельных apk, запакованных в bundle, с использованием
Как узнать размер приложения?
За пару команд, мы можем раздробить bundle на все apk-шки и узнать вес, в зависимости от ABI, ресурсов или локалей, как показано на картинке.
По статистике, максимальный размер у
После полного перехода на AppBundle, стало намного сложнее понять финальный размер приложения в Google Play.
Всэ зависит от ABI, плотности экрана (от котороой зависит выбранные ресурсы) и даже локалей, поддерживаемых на устройстве.
Все они представленны в виде отдельных apk, запакованных в bundle, с использованием
bundletool
под капотом.Как узнать размер приложения?
bundletool
отвечает не только за упаковку, но и за обратную распаковку, которая используется в Google Play.За пару команд, мы можем раздробить bundle на все apk-шки и узнать вес, в зависимости от ABI, ресурсов или локалей, как показано на картинке.
По статистике, максимальный размер у
arm64-v8a
с xxxhdpi
👍5
Ускоряем Android Studio
С ростом количества кода и остальных файлов в проекте, скорость работы нашей любимой IDE оставляет желать лучшего.
В Android Studio можно отключить индексацию
Довольно старый, но всё ещё актуальный пост на эту тему
С ростом количества кода и остальных файлов в проекте, скорость работы нашей любимой IDE оставляет желать лучшего.
В Android Studio можно отключить индексацию
apt,
kaptи
.gradleфайлов.
Довольно старый, но всё ещё актуальный пост на эту тему
Telegraph
Как ускорить работу в Android Studio одним хаком?
Иногда Android Studio работает очень долго. Одна из причин — в ней слишком много файлов и проектов. Чтобы ускорить работу, надо убрать лишние и студия их не увидела. Рассказываем, как это сделать. Android Studio будет работать быстрее, если игнорировать кодогенеренные…
👍7
Gradle Enterprise & AAB Tests
В последнее время, часто приходится экспериментировать с различными конфигурациями
Решил описать, как это можно делать с помощью Gradle Enterprise
В последнее время, часто приходится экспериментировать с различными конфигурациями
Gradle
на CI, чтобы выбрать лучшую.Решил описать, как это можно делать с помощью Gradle Enterprise
Telegraph
Gradle Enterprise & AAB Tests
В большой команде, Gradle Enterprise является практически незаменимым инструментом. Огромное количество аналитических утилит, remote build cache, predictive test selection позволяют держать build & verification time локально и на CI в тонусе. Практически…
👍7👎1
Основы Gradle
Как правило, Gradle, это то, что многие предпочитают избегать. (Не считая добавления зависимостей)
Собственные таски/плагины могут сильно помочь автоматизировать рутину, особенно в больших проектах.
Нашёл довольно неплохой плейлист из 17 коротких видео, который поможет вам разобраться с основами
Как правило, Gradle, это то, что многие предпочитают избегать. (Не считая добавления зависимостей)
Собственные таски/плагины могут сильно помочь автоматизировать рутину, особенно в больших проектах.
Нашёл довольно неплохой плейлист из 17 коротких видео, который поможет вам разобраться с основами
YouTube
Understanding Gradle
Share your videos with friends, family, and the world
❤10👍3👎1
Не одним ViewModel и Jetpack едины
Вчера выложили в open-source фреймворк Kompot, с помощью которого мы ведём разработку во всех продуктах в Revolut.
Unidirectional data flow со строгими контрактами (Input + Output), Screens, Flows, Navigation — всё это позволяет забыть даже про fragments с activity, и держать фокус на главном — разработка фичи
Вчера выложили в open-source фреймворк Kompot, с помощью которого мы ведём разработку во всех продуктах в Revolut.
Unidirectional data flow со строгими контрактами (Input + Output), Screens, Flows, Navigation — всё это позволяет забыть даже про fragments с activity, и держать фокус на главном — разработка фичи
GitHub
GitHub - revolut-mobile/kompot
Contribute to revolut-mobile/kompot development by creating an account on GitHub.
👍8👎1
Немного про Manifest & Android 12
Большую часть пятницы убил на то, чтобы исправить проблемы со сборкой при обновлении на
Написал небольшой пост про это
Большую часть пятницы убил на то, чтобы исправить проблемы со сборкой при обновлении на
targetSdk=32
Написал небольшой пост про это
Telegraph
Немного про Manifest & Android 12
Недавно я столкнулся с обновлением на targetSdk=32 (Android 12). Одно из нововведений — все компоненты, у которых есть IntentFilter, в обязательном порядке должны указывать exported. (По умолчанию он true), иначе проект собрать не удастся. В целом довольно…
👍9👎1
Gradle Catalog: Bundles
Gradle Catalog позволяет группировать зависимости и подключать их одной декларацией.
Однако,
Gradle Catalog позволяет группировать зависимости и подключать их одной декларацией.
Однако,
bundle
работает только с библиотеками. Подключить нужные плагины таким образом не получится👍5👎1
Хватит использовать ResourceProvider во ViewModel
Написал небольшой пост про то, какие проблемы и альтернативы есть у использования класса-обёртки над
Написал небольшой пост про то, какие проблемы и альтернативы есть у использования класса-обёртки над
appplicationContext
в Presenter/ViewModel
, для работы со строкамиTelegraph
Хватит использовать ResourceProvider во ViewModel
Каждый по разному обрабатывает показ того или иного текста. В большинстве своём, картина простая: создаётся ResourcesProvider/ResourceManager/etc с applicationContext внутри и ижектится в Presentation-слой, будь то Presenter или ViewModel. Проблема Смена…
👍24❤3👎1🙏1
Gradle открыл регистрацию на серию бесплатных тренингов на январь.
Лично посещал тренинги по Build Cache и Dependency Management, весьма хорошее погружение с неплохой практикой
Лично посещал тренинги по Build Cache и Dependency Management, весьма хорошее погружение с неплохой практикой
Gradle
Events for Gradle, Develocity, and Developer Productivity | Gradle
Our events explore the latest trends in developer productivity and experience, with expert speakers teaching best practices and sharing tactical tips.
👍14🔥1