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

Связь: @devmangx
Download Telegram
Android ViewModel Data Loading: Best Practices and Flow-Based Architecture

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

🔸Читать

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Наложить Liquid Glass на ваш кастомный SwiftUI-вью так же просто, как добавить к нему модификатор .glassEffect()

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍4
Новое в SwiftUI

В iOS 26.0+ появилась новая роль кнопки — .confirm.

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
10
Compose + Koin + Jetpack Navigation: что мы поняли за 2 года

Большая и полезная статья от разработчика core-команды WB Partners Wildberries & Russ, в которой он делится опытом развития архитектуры приложения на Jetpack Compose: с какими ограничениями столкнулись, как укротили навигацию от Google и каким образом всё это подружили с Koin.

🔸Читать

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

В iOS 26 элементы тулбара по умолчанию получают стеклянный эффект фона.

Управлять его видимостью можно модификатором sharedBackgroundVisibility().

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Годный сайт с наглядной демонстрацией процесса рекомпозиции, с примерами удачных и неудачных практик:

https://ivk1800.github.io/recomposition-visualization/

Подробности реализации описаны в статье, а исходный код выложен на GitHub

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍4
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥172👍2
Clipping and Masking in Jetpack Compose

Полезная статья про то, как в Jetpack Compose использовать Clipping и Masking для более дружелюбного UI: как обрезать компонент, кастомные шейпы, наложение градиента, различные эффекты и режимы наложение.

🔸Читать

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥2👀1
Быстрый совет по Flutter: как показать Live Activity на iOS с помощью Flutter
(это не так уж сложно)

вот как сделать это шаг за шагом 👆

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
Media is too big
VIEW IN TELEGRAM
Отличная библиотека анимаций для разработчиков React Native

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

https://github.com/software-mansion/react-native-reanimated

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍1
Челлендж 120FPS в SwiftUI: производительность LazyVStack

LazyVStack — это подход, рекомендуемый Apple для скроллируемых лент. Ленивые стеки подгружают и рендерят свои сабвью по требованию, когда они приближаются к вьюпорту (видимой на экране части вашего лейаута).

Трейс в Instruments при загрузке и скролле выглядит гораздо «здоровее». На нём видно, что VSync стабильно укладывается в целевые 16,67 мс на кадр для 60fps, даже в режиме энергосбережения.

При скролле вниз через сотни элементов мы получаем лишь несколько совсем незначительных просадок фреймрейта, но без лагов. С точки зрения SwiftUI, на экране одновременно находится всего несколько айтемов, поэтому всё можно без проблем посчитать и отрендерить в те миллисекунды, что есть между кадрами.

Использование памяти у LazyVStack достаточно стабильное. Оно немного подскакивало, когда я скроллил очень быстро, но не было резких всплесков: данные вью выкидывались из памяти по мере того, как они уходили за пределы вьюпорта.

Полную статью смотрите здесь

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍2
This media is not supported in your browser
VIEW IN TELEGRAM
ZoomTransition в SwiftUI почти не поддается кастомизации, но «под капотом» у него есть опции вроде dimmingVisualEffect. С их помощью можно было бы воссоздать переходы, как в приложении Photos, но, к сожалению, эти API в SwiftUI приватные.

В этом демо используются приватные API. В UIKit эти опции доступны публично.

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

В iOS 16+ используйте toolbarTitleMenu(), чтобы показывать меню при тапе по заголовку навигации.

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍2
Загрузка данных во ViewModel: рекомендации и Flow-based архитектура

Перевод на Хабре вот этой статьи, про паттерны загрузки данных во ViewModel.

- Читать

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

Хотите, чтобы заголовок панели навигации оставался крупным, но был inline?

В iOS 17+ используйте .toolbarTitleDisplayMode(.inlineLarge).

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
7
Exploring 5 Lesser-Known Compose Components

В статье рассматривают 5 малоизвестных Jetpack Compose компонентов, с примерами кода когда и как их использовать.

— TriStateCheckbox
— SegmentedButton
— RangeSlider
— Badge
— Tooltip

🔸Читать

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Новое в SwiftUI

В iOS 26 мы наконец-то можем сделать так, чтобы кнопки растягивались на всю доступную ширину контейнера с помощью метода buttonSizing()

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥3🏆1