MobDev Portal | Мобильная Разработка
5.99K subscribers
314 photos
62 videos
4 files
269 links
Присоединяйтесь к нашему каналу и погрузитесь в мир мобильной-разработки

Связь: @devmangx
Download Telegram
Опенсорс клиент для соц.сети Bluesky. Приложения на Jetpack Compose Multiplatform для Android, iOS и Desktop

Тех стек:
- Многомодульная архитектура
- Metro DI
- Coil для показа картинок
- Kotlin Coroutines и SerlializationX
- Ktor
- Jetpack Room

GitHub: Heron

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍2
Совет по SwiftUI

Если вью не реагирует на тапы как ожидается, используйте contentShape(), чтобы задать её интерактивную область

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥123
Производительность Jetpack Compose продолжает улучшаться

Начиная с 1.9, фризы на старых устройствах теперь на уровне Views. Благодаря работе над префетчингом и приостанавливаемой композицией

Подробнее в свежем выпуске Android Show:
https://youtube.com/live/0vMDXa2PluY?si=YVbzj4TOyRSGCT10

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52
Совет по SwiftUI

В iOS 26 строка поиска по умолчанию отображается внизу.

Её можно перенести в навигационный бар, изменив параметр placement в модификаторе searchable().

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62
Combine – швейцарский нож iOS-разработчика. Или нет?

Большая статья с обзором Combine: как устроен фреймворк, какие сущности лежат в основе и примеры использования.

Небольшая сводка: Combine – фреймворк для работы с асинхронными событиями в декларативном стиле. Он помогает разработчикам управлять потоками данных, избавляя от множества колбэков, ручного управления очередями и других сложностей, связанных с асинхронностью.


Читать

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍3
Совет по iOS-разработке

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

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍5
The LeakCanary Method

Годный материал про детект утечек памяти с помощью LeakCanary.

В статье рассказывается про процесс исследования, автоматизацию поиска утечек и как использовать YourKit поверх LeakCanary для поиска первопричин серьёзных утечек памяти.

Читать

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍4
Совет по SwiftUI

Легко отображайте интерактивные карты с помощью представления Map.

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍5🔥3
The Golden Rule of Coroutine Exceptions

Большая статья с примерами про обработку ошибок в корутинах.

- The launch Builder
- The async Builder
- Parent-Child Relationships (coroutineScope)
- Isolating Failures (supervisorScope)
- The Global Catcher (CoroutineExceptionHandler)
- async Within a supervisorScope
- Cancellation is a Special Kind of Exception
- Unstoppable Cleanup with NonCancellable
- Nested Scopes & Propagation
- The Job Hierarchy in Detail
- supervisorScope vs CoroutineScope(SupervisorJob())
- Handling Timeouts
- Exceptions When Awaiting Multiple Jobs

👉 Читать (En)

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍1😁1
This media is not supported in your browser
VIEW IN TELEGRAM
SwiftUI: Анимация с гравитацией, микроэффекты и прогресс по шагам

Туториал: https://youtu.be/F0VH7cKm5do?si=vNbqDxVP2-fNXb83

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍146👎1🔥1
Вышел Flutter 3.38

Лучшие новые фичи:

- Hot reload на Web Server

- Конфигурации для веб-разработки

- Улучшенные превью виджетов

- Оптимизации производительности и багфиксы

Все детали о нововведениях → тык

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍4🔥2
Совет по SwiftUI

Используйте .stroke(), чтобы добавить рамку, выровненную по центру.

Используйте .strokeBorder(), чтобы добавить внутреннюю рамку.

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍3
Актуальные практики работы в фоне Android-приложений

В статье рассматриваюся актуальные инструменты для работы в фоне, которые работают на последних версиях ОС и как их правильно использовать.

- WorkManager
- JobScheduler
- Foreground Service
- Специализированные API (AlarmManager, DownloadManager, Geofencing)

Читать

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍1
SwiftUI совет

В iOS 18.0+ можно использовать .presentationSizing(.fitted) для sheet, чтобы модальное окно подстраивалось под свой контент, а не занимало почти весь экран, идеально для компактных попапов в виде карточек

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥5👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Приложения вроде Notes и Mail в iOS 26 используют переходы тулбара, которые плавно трансформируются между вью. Такое поведение можно легко воспроизвести с помощью нативных API тулбара в SwiftUI.

Смотрите гайд на YouTube

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍3🔥3
SwiftUI совет

Вы можете разместить тулбар с элементами прямо над клавиатурой, используя модификатор .keyboard в placement.

Отлично подходит для AI-чатов, заметок и любых интерфейсов с быстрыми действиями во время ввода текста

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥94
The Real Difference Between withContext and launch

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

Читать тут

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
3👎3
SwiftUI совет

Вы можете добавить кастомный preview в своё контекстное меню, используя параметр preview.

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

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍4
Основы AGSL для Android-разработчика

Отличная базовая статья по шейдерам

- Зачем появился AGSL
- Где AGSL хорош, а где он не про это
- А если устройство с API < 33?
- Как AGSL вплетается в Android и Compose
- Пример 1: Анимированный градиент
- Пример 2: Ripple - интерактивная волна от тапа на экран
- Пример 3: Летящая звезда - AGSL как мини-рендер сценки
- Заключение

Исходный код на GitHub → AGSL-Basics

AGSL (Android Graphics Shading Language) – это язык фрагментных шейдеров, встроенный в сам графический стек Android, так что эффекты применяются прямо на уровне отрисовки интерфейса.


Читайте на Хабр

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍4