Mobile Native ️️ – Telegram
Mobile Native ️️
5.61K subscribers
1.13K photos
20 videos
3 files
1.28K links
Полезные материалы по мобильной разработке. Статьи, подборки, нововведения, анонсы.

Пробустить канал → https://news.1rj.ru/str/mobile_native?boost

Автор: @artemiygreg
iOS / Swift: @swift_tips
Библиотеки и инструменты: @mobile_dev_tools
Митапы: @meetup_today
Download Telegram
Оптимизируй или сдохни: профилирование и оптимизация Jetpack Compose

Статья с громким заголовком, Jetpack Compose не оставляет шансов 😀

Как профилировать и оптимизировать Jetpack Compose​.

👉 Recomposition Counts​: локализуем лишние рекомпозиции
👉 Compose Compiler Metrics​: ищем причины лишних рекомпозиций
👉 Профилирование CPU: находим «тяжелые» методы и разгружаем процессор
👉 Профилирование GPU: узнаем, какие компоненты долго отрисовываютс
👉 Советы по устранению ошибок

Читать (Ru)
👍12🔥2😁2
Navigation with ViewModel when Jetpack Compose is the actor

Еще одна статья про навигацию в Jetpack Compose через ViewModel.

Код на GitHub → Сompose Nav Model

Читать (En)
👍12👎4🤔3🔥1
Как я несколько лет боролся с прокрастинацией и победил: полное практическое руководство

Решил я тут статью почитать и отложил на потом 😁

А если серьезно, не знаю насколько будет актуально кому-то из вас, но статья интересная и с полезными советами.

Читать (Ru)
👍20😁6🤨2👎1
Как можно хранить стабы для MockWebServer в Android-тестах

QA Automation Engineer из мобильной платформенной команды Delivery Club поделился опытом подмены и хранения ответов бэкенда при UI-автоматизации тестирования курьерского Android-приложения.

В статье рассматриваются известные способы создания сетевых заглушек в Android-тестах, а также как их подключать и в чем плюсы и недостатки каждого из них.

Читать (Ru)
👍7🔥31
Как настроить Charles

Подробный гайд по настройке и подключению Charles Proxy.

Если вдруг кто-то не занет или не пользовался, рекомендую попробовать. Из наиболее популярных функций, которыми чаще всего пользуются: подмена сертификата, моки ответов с бэка и мониторинг трафика.

Полезно как тестировщикам, так и разработчикам.

Читать (Ru)
👍24🔥71
Игра в маляра, или Content-based color scheme: как цветовая схема приложения может меняться в зависимости от контента

А вот интересный пример, как можно сделать динамическую тему в приложении с генерацией цветовой схемы на основе контента (картинки) – аля Dynamic Colors из Material Design 3.

"Неожиданный плюс, который мы получили от нашей реализации, — она работает и на версиях младше Android 12 — в отличие от Dynamic Сolors на основании wallpapers" 🤘

Код на GitHub → Dynamic Theme Sample

Читать (Ru)
👍10🔥2🤔1
Вам нужен чистый код? Используйте правило шести

Еща одна интересная статья, не совсем на профильную тему, но не менее актуальную. В статье на простом примере показывается (в контексте строк), как с помощью "правила шести" сделать код более чистым и понятным для восприятия.

Читать (Ru)
👍81🔥1
Reorder items with Drag and Drop using SwiftUI

Простой пример реализации Drag and Drop в списке на SwiftUI.

Читать (En)
👍5🔥3👨‍💻1
This media is not supported in your browser
VIEW IN TELEGRAM
AutoSizing TextField in Jetpack compose

Пример реализации динамичного размера текста, подгоняемого под размеры поля ввода в Jetpack compose.

Читать (En)
👍11🔥53
Introducing the Architecture Templates

Тут Гугл выпустил репозиторий с набором шаблонов, которые могут помочь стартануть проект с нуля или быстро проводить эксперименты.

Все проекты используют лучшие практики и соответствуют архитектурным рекомендациям от Гугла.

👉 Room Database
👉 Dependency injection with Hilt
👉 Jetpack ViewModel
👉 Jetpack Compose and Material3
👉 Jetpack Navigation
👉 Reactive data layer
👉 Kotlin Coroutines and Flow
👉 Unit tests
👉 UI tests with Hilt
👉 KTS gradle files
👉 Version catalog

Код на GitHub → Android Architecture Starter Templates

Читать (En)
👍253🔥3
Kotlin Abstraction

Неплохая статья с примерами про абстрактные классы в Kotlin, да и в целом про абстракцию. Полезно может быть начинающим.

Читать (En)
🔥12👍4👎1👏1
Ангелы Charles: Как сниффер поможет разработчикам мобильных приложений

Вторая часть про Charles, в которой детально рассматриваются его популярные функции с примерами и кейсы, в которых он может пригодиться разработчикам и тестировщикам.

Читать (Ru)
👍8🔥3👏1
7 Android Resources To Level Up As a Developer

Несколько полезных ресурсов для Android-разработчиков. От официальной документации до различных сервисов с рассылками, блогов на Medium, Android Arsenal и т.д.

Читать (En)
👍15👎2🔥2🤩1
This media is not supported in your browser
VIEW IN TELEGRAM
Делаем кастомный Collapsing Toolbar на Jetpack Compose

Статья от hh про то, как они делали кастомный компонент в Jetpack Compose аналогичный CollapsingToolbarLayout из привычного View-мира.

Читать (Ru)
👍354🔥2👎1
Bottom sheet: Scrolling and interactions

Завершающая статья в серии про bottom sheet. Структура проекта и базовые классы описаны в первой статье, а во втором материале разобрано, как воссоздать полноценную навигацию в рамках bottom sheet отображения, основанного на autolayout.

Читать (Ru)
👍14🔥21
This media is not supported in your browser
VIEW IN TELEGRAM
Utilising the Canvas in Jetpack Compose to build a SquareSegmentedProgressIndicator

Реализация кастомного прогресcа на канвасе в Jetpack Compose.

Читать (En)
🔥12👍4👏2
Не обманывайте себя: вы не «исправите это потом»

А вот прикольная статья про костыли в проде, которые мы иногда пишем из-за нехватки времени или еще по каким-либо причинам, с надеждой сделать красиво когда-то потом.

Вывод: нужно стараться писать сразу нормально (что не всегда получается), заводить таски на техдолг и в каждом спринте выделять время на техдолги.

Если что, оригинал статьи тут.

Читать (Ru)
👍8🔥2🤔1
Principles & Practice in Repository Layer

Еще одна статья про архитектуру, а именно про принципы и практики в data слое (репозиторий).

👉 Mapping
👉 Cache
👉 Concurrency
👉 Single Source-of-truth

Читать (En)
👍21👎2❤‍🔥1🔥1
Lessons learned while modularizing an application

Большая статья, в которой автор делится опытом масштабирования приложения, а именно разделением на модули (опыт, сложности, как разбивать на модули, структура проекта, абстракции и т.д.).

На Хабре есть перевод в 2-ух частях

👉 Часть 1 (Ru)
👉 Часть 2 (Ru)

Читать (En)
👍13🔥21
Injecting SavedStateHandle into ViewModel using Dagger 2 and Jetpack Compose

Статья с примером, как можно заинжектить SavedStateHandle во ViewModel через Dagger 2 @AssistedInject для Jetpack Compose.

Код на GitHub → ComposeViewModelDagger

Читать (En)
👍11🤔2👎1🔥1🥱1
Яндекс выпускает Yatagan — опенсорс-фреймворк для внедрения зависимостей, позволяющий ускорить сборку Android-приложений

Интересная статья от Яндекса об их новом опенсорс-фреймворке Yatagan. Можно узнать о технических моментах, которые всплыли в процессе реализации, отличиях от Dagger и о том, какие условия идеальны для применения библиотеки.

Код на GitHub → Yatagan

Читать (Ru)
🤮22👍20🤔5🔥2🤡2