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

Связь: @devmangx
Download Telegram
Совет по SwiftUI

Замыкания Label принимают больше одного вью.

Это отличный способ показать title и subtitle (например, в строках Form). SwiftUI автоматически берёт на себя стилизацию.

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Принёс полезное: огромную коллекцию из 1500+ отобранных API для ваших проектов, от погоды и карт до генераторов картинок и NLP-сервисов

Забираем с сайта или с GitHub 🍯

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

Теперь можно настраивать расстояние между иконкой Label и его заголовком с помощью нового модификатора labelIconToTitleSpacing().

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥73
Forwarded from IT Portal
Просчитался, но где: разработчик похвастался скрином, высмеяв малое число платящих Android-юзеров в своём приложении

А потом выяснилось, что в его же приложении с Android подписку оформить нельзя, выдает ошибку.

Неловко вышло 😁

@IT_Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁283
Если вы добавляете в приложение много фич, которые работают только на iOS 26, стоит сделать кастомный сниппет с автодополнением. Я использовал «IF2» (if iOS 26) как шорткат completion, и это уже сэкономило мне кучу времени.

Чтобы открыть меню сниппетов и создать такой, можно использовать Shift+CMD+L.
↓ Вот код, который я использую в сниппете

if #available(iOS 26, macOS 26, *) {
<#code#>
}


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

Используйте labelReservedIconWidth(), чтобы зарезервировать фиксированную ширину для иконок в Label.

Это гарантирует, что заголовки останутся идеально выровненными, даже если иконки имеют разный размер.

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥84👍2
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