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
Flow Marbles: Interactive diagram of Kotlin Flow

И ещё дополнение к постам выше 😎

В соседнем чате поделились крутым ресурсом – Flow Marbles: интерактивные диаграммы Kotlin Flow.

Читать (En)
🔥9👍32👨‍💻1
Хочешь стать техлидом? Возможно, что не стоит

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

👉 Точно ли тебе это нужно ?
👉 Техническая подкованность
👉 Отстаивание своей позиции
👉 Стратегическое мышление
👉 Фокусировка внимания
👉 Конфликты
👉 Борьба за ресурсы
👉 Стрессы
👉 Увольнения
👉 Ты — пример

Если целитесь на такую позицию – обязательно почитайте.

Читать (Ru)
👍9🔥43
Создание кастомного тултипа Jetpack Compose

Пошаговый гайд по созданию гибкой и удобной системы тултипов в Jetpack Compose, с помощью модифайеров и специального оборачивающего блока.

Читать (Ru)
👍11🔥74
Развеиваем мифы о Stability в Compose: оптимизации Strong Skipping

Ещё про Compose. Интересная статья, в которой автор рассказывает, как лямбды и strong skipping режим влияют на работу компилятора и на рекомпозицию.

Выводы и рекомендации от автора

🟢Compose стал более агрессивно оптимизировать пропуск Composable функций, когда параметры не изменились.

🟢Акцент в отдладке Compose сдвигается от метрик и отчетов к отладке на основе LayoutInspector и других инструментов, потому что метрики и отчеты говорят слишком мало о реальной производительности компонентов.

🟢Чтобы обновить UI, используя нестабильные аргументы, нужно создать новый инстанс такого аргумента в памяти, и метод copy дата-классов для этого отлично подходит.

🟢При работе с коллекциями для оптимизации рекомпозиций больше не нужно использовать Immutable Collections, однако придется обновлять их с созданием нового инстанса. Альтернатива использовать - SnapshotStateList.

🟢При работе с лямбдами для максимальной производительности нужно захватывать только те объекты, которые действительно нужны: если нужно только одно поле класса, лучше прочитать поле в отдельную переменную и сослаться на нее.

Код экспериментов из статьи → ComposeStability

Читать (Ru)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥135👍3👌1
Типобезопасная передача результатов между экранами в Compose с Jetpack Navigation

Разработчик core-команды Wildberries рассказывает как они в проекте решили обеспечить типобезопасность при передаче результатов между экранами с применением библиотеки Compose Navigation.

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

Читать (Ru)
👍4👎32🔥1
Видим невидимое: контроль качества Android-библиотек через объектив AppTracer Lite SDK

Разработчик AppTracer Lite SDK(аналог Firebase Crashlytics) рассказывает про возможности инструмента и подводные камни, с которыми столкнулся при разработке.

Подход в статье универсален, может быть применим к любой библиотеке.

👉 Что такое AppTracer SDK
👉 Как трекать качество библиотеки
👉 Собираем краши
👉 Логируем аналитику
👉 Собираем метрики производительности
👉 Обфускация
👉 Crash-free интеграция Tracer
👉 Поддержка отключения Tracer в библиотеке
👉 Заключение

На данный момент AppTracer Lite SDK доступен только для внутреннего использования, но если вы хотите интегрировать его к себе пишите в чат @tracer_feedback

Читать (Ru)
🔥64👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Creating an Engaging Progress Button in Jetpack Compose

Гайд по реализации вот такой кнопки с прогрессом на Jetpack Compose.

Исходный код → ProgressButton

Читать (En)
👍12🔥52
Под капотом Android: как создаются, управляются и восстанавливаются процессы приложений в системе

Большая и полезная статья с разбором ключевых системных компонентов (Zygote, SystemServer, AMS, Binder) и процесса восстановления состояния через Bundle.

Читать (Ru)
613👍5👎2🔥2
Погружение в разработку плагинов для Android Studio

Вторая часть про разработку плагинов для Android Studio. В этой статье рассматривается пошаговая реализациия более продвинутого плагина – Запускатель UI-тестов.

Предыдущая часть тут.

Читать (Ru)
🔥6👍42
Exploring PausableComposition internals in Jetpack Compose

В Compose версии 1.9.X представили новый внутренний API – PausableComposition, который, как утверждается, решает проблемы с производительностью.

В статье подробный разбор: что это такое, как устроено под капотом и для чего может пригодиться.

Читать (En)
👍62🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Swipe to Pay, или Как мы переписали слайдер оплаты на Compose

Полезная статья, в которой разработчик из Dodo Engineering подробно разбирает процесс создания достаточно сложного и прикольного компонента на Compose.

Читать (Ru)
🔥114👍4
The dark corners of inline, crossinline, and reified in Kotlin

Статья про возможные проблемы при неправильном использовании inline, crossinline и reified в Kotlin.

👉 The promise and peril of inline
👉 Why crossinline matters in suspending contexts
👉 Reified: type-safe builders and beyond
👉 Debugging and testing inline code
👉 Checklist for safe use

Читать (En)
🔥5👍43
LayoutNode: What Actually Happens When You Write @Composable

Полезная статья, в которой разбирается LayoutNode: что это такое, как строится дерево из LayoutNode, как это влияет на производительность и отрисовку.

👉 What is the LayoutNode?
👉 How Compose Actually Creates Nodes
👉 LayoutNode vs Modifier.Node
👉 Rendering Pipeline
👉 Custom Layouts
👉 The bottom line

Читать (En)
🔥8👍53
Мобильное тестирование: разбираемся с эмуляторами и тестовыми фермами

Обзорная статья с разбором доступных решений для тестирования мобильных приложений, с плюсами и минусами.

Эмуляторы и симуляторы. Удобны для тестирования базовой функциональности и отладки, но они не способны воспроизвести реальные условия работы устройства.

Мобильные фермы. Подходят для регрессионных и UI-тестов, нагрузочного и исследовательского тестирования. Один из плюсов – разнообразное количество девайсов для воспроизведения платформенно-специфичных багов. Наиболее популярные решения на рынке: опенсорс-платформы Smartphone Test Farm и DeviceHub, мобильная ферма от Selectel.

Читать (Ru)
👍5🔥4🤔31
Integration Testing on Android: A Practical Guide with Hilt, Compose & Room

Практическое руководство по написанию интеграционных тестов в Android.

👉 Introduction
👉 Project setup
👉 Writing the test
👉 Swapping Real Dependencies with Fake Ones
👉 Testing Failure Scenarios
👉 Robotic Pattern for compose test
👉 Why Integration Testing Matters

Читать (En)
🔥32👍1
TAO Bubbles: элегантные и настраиваемые подсказки для ваших Jetpack Compose приложений

Статья с примером реализации компонента для отображения подсказок на Jetpack Compose.

Читать (Ru)
🔥124👍4
The Magic Behind Retrofit: How a Simple Interface Becomes Your API Gateway

Если вдруг кто-то не знал как под капотом устроен и работает Retrofit, вот свежая статья с детальным разбором: Dynamic Proxy, аннотации, парсинг, формирование запросов и т.д.

Читать (En)
7🔥6👍4👨‍💻1
‼️Технический разбор приложения Max от Сеньора

Настолько приложение Max хайпит за время своего существования, что какие-то несчастные статьи на Хабре, про то, какие например использует разрешения Max собирают десятки и сотни тысяч просмотров – раз (191K), дваз (139K), триз (46К).

И все эти статьи у меня вызывают так сказать неопределённые чувства 🤷‍♂️, точнее чувства-то определённые, но не хочется матом писать 😂

Посмотрите например вот эту статью "Что можно узнать о Max из AndroidManifest" – тут автор рассказывает про структуру манифеста, из чего он состоит, какие разрешения есть в Max и другую всячину по типу App Links. Статья собрала 46K просмотров 🤦‍♂️

Или возьмем вот эту статью "Разрешения MAX для Android. Сравниваем с Telegram и WhatsApp*" – тут собственно и комментировать нечего. 139K просмотров.

Вот это вообще шик, статья-рекордсмен "Технический разбор Max: что внутри APK". Интересно, что же там внутри? А внутри там мягко говоря ничего – урлы api, пару разрешений из манифеста, ну и ещё какие-то используемые sdk и библиотеки. На текущий момент статья собрала 191K 😳.

46, 139, 190 тыщ просмотров Карл!!! То есть, суммарно под 400К просмотров. Вы серьезно? Кажется мир свернул не туда.

Цель авторов я конечно же понимаю – хайп, все дела, у каждого свой тг-канал и всё такое. Но как будто бы странно такими способами хайпить и пытаться набрать аудиторию.

Читателей и комментаторов не очень понимаю. Среднему пользователю такие статьи никакой инфы не дадут, а технические спецы если нужно и сами могут APK декомпилить и посмотреть что там и как.

Я это к чему. Периодически встречаются действительно годные материалы, статьи, которые хорошо, если соберут 2, 3 или 4 тысячи просмотров. Согласен, действительно крутых материалов сейчас гораздо меньше, но они есть. При этом же людям интереснее почитать какую-то +/- бестолковую информацию – а что же там такого супермега шпионского спрятано в MAX. Приложения мессенджеров +/- все одинаковые и разрешения у них будут +/- одинаковые и набор функций и т.д. Чего вы ждёте-то от таких статей?

Фух, выдохнул, пора заканчивать 😂

Анализируйте, фильтруйте и потребляйте полезную информацию. Всем доброй ночи 😉

P.S. Комментарии если что открыты 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
50👍19❤‍🔥12👎11🤔31
Forwarded from Swift Tips
12 Swift Optimization Secrets Apple Won’t Tell You

Статья с советами, рекомендациями и примерами оптимизации Swift-кода.

🟢Copy-on-Write (COW): Smart Memory Efficiency
🟢Value Types vs Reference Types: The Foundation of Swift Performance
🟢ARC Overhead: Understanding Retain and Release
🟢Inlining and Function Dispatch
🟢Looping and Lazy Collections
🟢Memory Layout Optimization: Struct Alignment Tricks
🟢Concurrency Optimizations: Making Async Code Fly
🟢Compiler-Level Optimizations
🟢Profiling with Instruments
🟢Real-World iOS Scenarios
🟢Practical Tips & Best Practices
🟢Conclusion: Clean Code First, Optimize Second

Читать (En)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32👍2
Android ViewModel Data Loading: Best Practices and Flow-Based Architecture

Большая статья, с примерами кода, в которой автор рассказывает про проблемы загрузки данных в ViewModel.init{ } блоке и рассматривает Flow-Based решение, как более правильный, удобный и оптимальный архитектурный подход.

Читать (En)
🔥73👍3
Forwarded from Swift Tips
How to Build a CI/CD Pipeline for iOS Projects

Подробная статья в блоге Jetbrains о том, как собрать CI/CD пайплайн для iOS-проектов с помощью TeamCity.

🟢Code checkout and version control integration
🟢Building iOS applications with Xcode
🟢Testing across multiple iOS versions
🟢Static code analysis and code coverage reporting
🟢Signing and packaging (IPA files)
🟢Deploying to TestFlight or the App Store
🟢Setting up the iOS project
🟢Initializing fastlane
🟢Setting up the beta lane
🟢Configuring fastlane match
🟢Create a new project in TeamCity Cloud
🟢Configure build job
🟢Set up AWS Secrets
🟢Set up build parameters
🟢Testing the pipeline

Читать (En)
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥9👍54