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
Прочие оптимизации кода Gradle Convention Plugins, выводы по результатам использования подхода

Заключительная часть из цикла "Как облегчить себе жизнь и уменьшить boilerplate в gradle-файлах", в которой оптимизируется и рефакторится написанный в предыдущих частях код, настраивается область видимости convention-плагинов и extension-функций для конфигурации сборки + подводятся итоги данного подхода.

Читать (Ru)
👍42🔥2
Декларативный подход в организации gradle зависимостей в Android-проектах

В догонку ещё одна статья про Gradle, а именно про то, как упростить работу с зависимостями, с помощью своих extension функций.

Читать (Ru)
🔥10🤔4👍32👀1
Как зеленый Леруа Мерлен стал желтым Лемана ПРО

Я тут на недельку выпал, вначале отходил от небольшого отпуска, затем погряз в рабочие задачи. Чутка раскидался со всеми делами и возвращаюсь к публикациям.

Статья про то, как делали ребрендинг мобилок из Леруа Мерлен в Лемана ПРО.

👉 Цвета
👉 Картинки
👉 Название
👉 Lottie анимации

Читать (Ru)
👍11🔥32👎1
Как улучшить качество WebRTC-звонков на примере сервиса VK Звонки

Если вдруг делаете звонки через WebRTC, тут разработчик из VK рассказывает, как можно улучшить качество и реализовать некоторые доп. штуки.

👉 WebRTC
👉 Качество и оптимизация
👉 Демонстрация экрана

Читать (Ru)
👍13🔥4👎2🤔2
Forwarded from Swift Tips
Profiling apps using Instruments

Apple выпустила новую серию туториалов по использованию Instruments для анализа производительности, ресурсов и поведения приложений.

• Getting started with hang analysis
• Identifying a hang
• Analyzing main thread activity
• Determining execution frequency
• Reducing main thread work by doing less
• Executing work asynchronously
• Understanding synchronous and asynchronous hangs
• Ensuring work executes on a background thread

Читать (En)
👍53🔥3
Тесты для функций compose в андроид

Туториал для начинающих по тестированию Android-приложений с использованием Jetpack Compose, в котором рассматриваются различные виды тестов, настройки и примеры инструментальных тестов для Compose функций.

👉 Зачем нужны вообще тесты?
👉 Основные виды тестов
👉 Практика

Читать (Ru)
2👍7🔥64
Корутины: stackful vs stackless

Довольно полезная статья, в которой автор объясняет разницу между stackless и stackful корутинами: чем они отличаются, какие у них плюсы и минусы, а также в общих чертах рассказывается, как в некоторых языках программирования реализована многопоточность.

👉 Процессы и Потоки
👉 Модель корутин поближе
👉 Stackful и Stackless корутины
👉 Переключение между корутинами
👉 Как реализован стек
👉 Где используются корутины

P.S. В статье корутины рассматриваются как общий концепт, без привязки к конкретному языку.

Читать (Ru)
1210👍5🔥5
Динамические модули в приложениях на Android: опыт использования Dynamic Feature Delivery

Статья от разработчика Яндекс Go про интеграцию механизма Dynamic Feature Delivery в современную архитектуру Android‑приложения с использованием корутин и внедрение динамического модуля, использующего Flutter.

👉 SplitInstallManager: что это и как работает
👉 Реализация обёртки для SplitInstallManager
👉 Реализация и тестирование DynamicFeatureLoader

Читать (Ru)
👍64🔥3
How we improved our 1Weather Android app cold startup time by over 70% and slow cold start sessions by over 24%

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

Если коротко: анализ, StrictMode, ленивая инициализация зависимостей, инициализация SDK в бекграунд потоках, вёрстка на ConstraintLayout.

Читать (En)
5🔥10👍71
Gradle Convention Plugins: как облегчить себе жизнь и уменьшить boilerplate в gradle-файлах

Собрал все ссылки на статьи из цикла "Gradle Convention Plugins: как облегчить себе жизнь и уменьшить boilerplate в gradle-файлах" в один пост.

• Проблемы build.gradle-файлов и начальная настройка для написания Gradle Convention Plugins

• Создание плагинов и переиспользуемых частей в .gradle.kts-файлах и Kotlin extension-функциях

• Создание Convention Plugin-ов на базе Kotlin-классов

• Оптимизации кода Gradle Convention Plugins, выводы по результатам использования подхода
5👍104🔥3
Forwarded from Swift Tips
This media is not supported in your browser
VIEW IN TELEGRAM
Open SwiftUI Animations

Репозиторий с реализациями большого количества разнообразных анимаций на SwiftUI.

GitHub → Open SwiftUI Animations
👍43🔥3
Paint the Stars — Drawing with Compose and Canvas

Если вдруг вам нужно отрисовать вот такие звёздочки с планетами, на Canvas в Jetpack Compose, вот вам статья 😉

Читать (En)
🔥104👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Compose Animations Playground

Репозиторий с набором различных анимаций для Compose Multiplatform.

GitHub → ComposeAnimationsPlayground
👍8🔥4🤔2
Решение проблемы race condition в Kotlin корутинах

Статья с разбором и примерами различных способов решения проблемы race condition в корутинах.

👉 Mutex
👉 Атомарные операции
👉 Channels
👉 Actors
👉 Semaphore
👉 SharedFlow или StateFlow

Читать (Ru)
7🔥14👍43🤔1
Как в eXpress достигали мгновенного рендера отправки сообщения: оптимизация локальной базы данных

Разработчица из мессенджера eXpress рассказывает как они оптимизировали работу приложения, а именно ускоряли процесс отрисовки отправленного сообщения.

В этой статье речь пойдет только о работе с локальной базой данных. Оптимизация БД — лишь часть большой работы, мы расскажем про наши решения по оптимизации presentation слоя в других статьях.


Читать (Ru)
🔥9👍73👎1
Самые весёлые TODO из Android-фреймворка

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

Читать (Ru)
🔥13😁8👍5👎1👀1
iOS 18 для разработчиков: Ключевые изменения в UIKit

Большая статья с обзором нововведений и самых интересных обновлений UIKit в iOS 18 — новый TabBar, анимации, совместимость UIKit/SwiftUI и т.д..

🟢Сравнение кода в iOS 17 и iOS 18
🟢Новый TabBar в iPadOS 18
🟢Плавные переходы (fluid transitions)
🟢Animations
🟢Gesture recognizers
🟢Automatic trait tracking
🟢List environment trait
🟢UIUpdateLink
🟢Symbol animations
🟢Sensory feedback
🟢Text improvenments
🟢Writing Tools support

Читать (Ru)
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍3🔥31
Mastering Android ViewModels: Essential Dos and Don’ts Part 5

Пятая часть из цикла Mastering Android ViewModels, по лучшим практикам работы с ViewModel.

В этой части рассматривается

👉 Избегание хардкода Coroutine Dispatchers
👉 Использование тестирования для ViewModels
👉 Избегание раскрытия suspend функций

Читать (En)
4👍8🔥73
Партнеры РСЯ смогут подключиться к мобильной аналитике AppMetrica в несколько кликов

AppMetrica упростила процесс получения доступа к расширенной аналитике, для этого достаточно:

👉 Зарегистрироваться в AppMetrica под логином в РСЯ или Adfox
👉 Заполнить профиль
👉 Связать с AppMetrica приложения, которые монетизируются с РСЯ
👉 Подтвердить согласие на передачу данных

После этого данные начнут подгружаться автоматически.

Если вы уже работаете с AppMetrica, вам нужно только добавить связь с приложением Yandex Mobile Ads SDK.

Читать (Ru)
🔥53👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Implementing Overslide interaction in Jetpack Compose

Статья с примером реализации вот такого overslide эффекта на Jetpack Compose.

А в предыдущей статье автора, можно почитать про реализацию overscroll эффекта.

Читать (En)
8🔥11👍54👏1
How to implement Linear Gradient with any angle in Jetpack Compose

Стандартная реализация градиента в Jetpack Compose вполне подходит для примитивных кейсов, но если вы например захотите отрисовать градиент под кастомным углом – не получится, такой настройки нет.

Вот тут статья c примером реализации отрисовки градиента по формуле, а вот тут пример кода.

Пример кода на GitHub → Linear-Gradient-Any-Angle

Читать (En)
5👍73🔥2