Combine – швейцарский нож iOS-разработчика. Или нет?
Большая статья с обзором Combine: как устроен фреймворк, какие сущности лежат в основе и примеры использования.
Читать
👉 @MobDevPortal
Большая статья с обзором Combine: как устроен фреймворк, какие сущности лежат в основе и примеры использования.
Небольшая сводка: Combine – фреймворк для работы с асинхронными событиями в декларативном стиле. Он помогает разработчикам управлять потоками данных, избавляя от множества колбэков, ручного управления очередями и других сложностей, связанных с асинхронностью.
Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍3
Совет по iOS-разработке
Вы можете отслеживать тепловое состояние устройства, чтобы при перегреве корректировать производительность приложения, просто проверьте:
👉 @MobDevPortal
Вы можете отслеживать тепловое состояние устройства, чтобы при перегреве корректировать производительность приложения, просто проверьте:
ProcessInfo.processInfo.thermalStatePlease open Telegram to view this post
VIEW IN TELEGRAM
❤12👍5
The LeakCanary Method
Годный материал про детект утечек памяти с помощью LeakCanary.
В статье рассказывается про процесс исследования, автоматизацию поиска утечек и как использовать YourKit поверх LeakCanary для поиска первопричин серьёзных утечек памяти.
Читать
👉 @MobDevPortal
Годный материал про детект утечек памяти с помощью LeakCanary.
В статье рассказывается про процесс исследования, автоматизацию поиска утечек и как использовать YourKit поверх LeakCanary для поиска первопричин серьёзных утечек памяти.
Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍4
The Golden Rule of Coroutine Exceptions
Большая статья с примерами про обработку ошибок в корутинах.
- The
- The
- Parent-Child Relationships (
- Isolating Failures (
- The Global Catcher (
-
- Cancellation is a Special Kind of Exception
- Unstoppable Cleanup with NonCancellable
- Nested Scopes & Propagation
- The Job Hierarchy in Detail
-
- Handling Timeouts
- Exceptions When Awaiting Multiple Jobs
👉 Читать (En)
👉 @MobDevPortal
Большая статья с примерами про обработку ошибок в корутинах.
- 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
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
Туториал: https://youtu.be/F0VH7cKm5do?si=vNbqDxVP2-fNXb83
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤6👎1🔥1
Вышел Flutter 3.38
Лучшие новые фичи:
- Hot reload на Web Server
- Конфигурации для веб-разработки
- Улучшенные превью виджетов
- Оптимизации производительности и багфиксы
Все детали о нововведениях → тык
👉 @MobDevPortal
Лучшие новые фичи:
- Hot reload на Web Server
- Конфигурации для веб-разработки
- Улучшенные превью виджетов
- Оптимизации производительности и багфиксы
Все детали о нововведениях → тык
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍4🔥2
Совет по SwiftUI
Используйте
Используйте
👉 @MobDevPortal
Используйте
.stroke(), чтобы добавить рамку, выровненную по центру.Используйте
.strokeBorder(), чтобы добавить внутреннюю рамку.Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍3
Актуальные практики работы в фоне Android-приложений
В статье рассматриваюся актуальные инструменты для работы в фоне, которые работают на последних версиях ОС и как их правильно использовать.
- WorkManager
- JobScheduler
- Foreground Service
- Специализированные API (AlarmManager, DownloadManager, Geofencing)
Читать
👉 @MobDevPortal
В статье рассматриваюся актуальные инструменты для работы в фоне, которые работают на последних версиях ОС и как их правильно использовать.
- WorkManager
- JobScheduler
- Foreground Service
- Специализированные API (AlarmManager, DownloadManager, Geofencing)
Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍1
SwiftUI совет
В iOS 18.0+ можно использовать
👉 @MobDevPortal
В iOS 18.0+ можно использовать
.presentationSizing(.fitted) для sheet, чтобы модальное окно подстраивалось под свой контент, а не занимало почти весь экран, идеально для компактных попапов в виде карточек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
Смотрите гайд на YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍3🔥3
SwiftUI совет
Вы можете разместить тулбар с элементами прямо над клавиатурой, используя модификатор
Отлично подходит для AI-чатов, заметок и любых интерфейсов с быстрыми действиями во время ввода текста
👉 @MobDevPortal
Вы можете разместить тулбар с элементами прямо над клавиатурой, используя модификатор
.keyboard в placement.Отлично подходит для AI-чатов, заметок и любых интерфейсов с быстрыми действиями во время ввода текста
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤4
The Real Difference Between withContext and launch
Подробная статья про отличия корутин билдеров
Читать тут
👉 @MobDevPortal
Подробная статья про отличия корутин билдеров
withContext и launch, с разбором на примерах и для каких случаев может подойти каждый.Читать тут
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👎3
SwiftUI совет
Вы можете добавить кастомный preview в своё контекстное меню, используя параметр
Отлично подходит для отображения дополнительных деталей до того, как пользователь выберет действие.
👉 @MobDevPortal
Вы можете добавить кастомный preview в своё контекстное меню, используя параметр
preview.Отлично подходит для отображения дополнительных деталей до того, как пользователь выберет действие.
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
Читайте на Хабр
👉 @MobDevPortal
Отличная базовая статья по шейдерам
- Зачем появился AGSL
- Где AGSL хорош, а где он не про это
- А если устройство с API < 33?
- Как AGSL вплетается в Android и Compose
- Пример 1: Анимированный градиент
- Пример 2: Ripple - интерактивная волна от тапа на экран
- Пример 3: Летящая звезда - AGSL как мини-рендер сценки
- Заключение
Исходный код на GitHub → AGSL-Basics
AGSL (Android Graphics Shading Language) – это язык фрагментных шейдеров, встроенный в сам графический стек Android, так что эффекты применяются прямо на уровне отрисовки интерфейса.
Читайте на Хабр
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍4
SwiftUI совет
В iOS 26.0+
Это мгновенно открывает доступ к системным инструментам форматирования – bold, italics, underline, цветам, выравниванию и многому другому.
👉 @MobDevPortal
В iOS 26.0+
TextEditor поддерживает редактирование форматированного текста, если привязать его к AttributedString.Это мгновенно открывает доступ к системным инструментам форматирования – bold, italics, underline, цветам, выравниванию и многому другому.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍3
Управление потоком в Kotlin Flow
Годная статья, в которой рассказывается как управлять потоком в Kotlin Flow и какие операторы использовать для решения проблемы быстрого пользовательского ввода(наиболее популярный кейс когда пользователь быстро печатает, например при поиске)
Читать здесь
👉 @MobDevPortal
Годная статья, в которой рассказывается как управлять потоком в Kotlin Flow и какие операторы использовать для решения проблемы быстрого пользовательского ввода(наиболее популярный кейс когда пользователь быстро печатает, например при поиске)
Читать здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤3👎1
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍3
SwiftUI совет
Используйте
(Обновлено для iOS 26)
👉 @MobDevPortal
Используйте
submitLabel(), чтобы изменить кнопку отправки на клавиатуре на варианты вроде Next, Join, Search или Done.(Обновлено для iOS 26)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8