Media is too big
VIEW IN TELEGRAM
Отличная библиотека анимаций для разработчиков React Native
Она упрощает создание плавных, высокопроизводительных анимаций и добавление движения в ваш UI
https://github.com/software-mansion/react-native-reanimated
👉 @MobDevPortal
Она упрощает создание плавных, высокопроизводительных анимаций и добавление движения в ваш UI
https://github.com/software-mansion/react-native-reanimated
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
LazyVStack — это подход, рекомендуемый Apple для скроллируемых лент. Ленивые стеки подгружают и рендерят свои сабвью по требованию, когда они приближаются к вьюпорту (видимой на экране части вашего лейаута).
Трейс в Instruments при загрузке и скролле выглядит гораздо «здоровее». На нём видно, что VSync стабильно укладывается в целевые 16,67 мс на кадр для 60fps, даже в режиме энергосбережения.
При скролле вниз через сотни элементов мы получаем лишь несколько совсем незначительных просадок фреймрейта, но без лагов. С точки зрения SwiftUI, на экране одновременно находится всего несколько айтемов, поэтому всё можно без проблем посчитать и отрендерить в те миллисекунды, что есть между кадрами.
Использование памяти у LazyVStack достаточно стабильное. Оно немного подскакивало, когда я скроллил очень быстро, но не было резких всплесков: данные вью выкидывались из памяти по мере того, как они уходили за пределы вьюпорта.
Полную статью смотрите здесь
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 почти не поддается кастомизации, но «под капотом» у него есть опции вроде
В этом демо используются приватные API. В UIKit эти опции доступны публично.
👉 @MobDevPortal
dimmingVisualEffect. С их помощью можно было бы воссоздать переходы, как в приложении Photos, но, к сожалению, эти API в SwiftUI приватные.В этом демо используются приватные API. В UIKit эти опции доступны публично.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2
Совет по SwiftUI
В iOS 16+ используйте
👉 @MobDevPortal
В iOS 16+ используйте
toolbarTitleMenu(), чтобы показывать меню при тапе по заголовку навигации.Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍2
Загрузка данных во ViewModel: рекомендации и Flow-based архитектура
Перевод на Хабре вот этой статьи, про паттерны загрузки данных во ViewModel.
- Читать
👉 @MobDevPortal
Перевод на Хабре вот этой статьи, про паттерны загрузки данных во ViewModel.
- Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7
Совет по SwiftUI
Хотите, чтобы заголовок панели навигации оставался крупным, но был inline?
В iOS 17+ используйте
👉 @MobDevPortal
Хотите, чтобы заголовок панели навигации оставался крупным, но был inline?
В iOS 17+ используйте
.toolbarTitleDisplayMode(.inlineLarge).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
В статье рассматривают 5 малоизвестных Jetpack Compose компонентов, с примерами кода когда и как их использовать.
— TriStateCheckbox
— SegmentedButton
— RangeSlider
— Badge
— Tooltip
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Новое в SwiftUI
В iOS 26 мы наконец-то можем сделать так, чтобы кнопки растягивались на всю доступную ширину контейнера с помощью метода
👉 @MobDevPortal
В iOS 26 мы наконец-то можем сделать так, чтобы кнопки растягивались на всю доступную ширину контейнера с помощью метода
buttonSizing()Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥3🏆1
This media is not supported in your browser
VIEW IN TELEGRAM
На GitHub есть репозиторий free-programming-books, где собрано более 4000 бесплатных книг, 2000 курсов и других полезных ресурсов по программированию
Для удобства поиска можно использовать этот инструмент
Этот проект - яркий пример силы опенсорс сообщества, который из клона списка со StackOverflow стал одним из самых популярных на GitHub✌️
🔸 Русскоязычная версия ресурсов
👉 @MobDevPortal
Для удобства поиска можно использовать этот инструмент
Этот проект - яркий пример силы опенсорс сообщества, который из клона списка со StackOverflow стал одним из самых популярных на GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
This media is not supported in your browser
VIEW IN TELEGRAM
В этом туториале по SwiftUI мы соберём чистое, анимированное action-меню, вдохновлённое Grok. Вы научитесь создавать плавающую панель инструментов с плавными переходами, размытием фона и закрытием по тапу
👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍2
Совет по симулятору iOS: можно установить время в симуляторе на фиксированные 9:41, как на маркетинговых скриншотах Apple.
Замените
Идеально для чистых скриншотов приложения
👉 @MobDevPortal
Замените
[DEVICE_ID] на UUID вашего симулятора (найти его можно командой: xcrun simctl list devices)Идеально для чистых скриншотов приложения
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🔥2
Совет по SwiftUI
Модификатор
👉 @MobDevPortal
Модификатор
glassEffect() по умолчанию применяет форму капсулы, но вы легко можете изменить её на любую другую форму по своему усмотрению.Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍2
Совет по SwiftUI
Используй
(iOS 17.0+)
👉 @MobDevPortal
Используй
.toolbarTitleDisplayMode(.inlineLarge), чтобы показывать крупный заголовок Navigation Title, оставаясь в inline-режиме - отлично подходит для компактных layout’ов.(iOS 17.0+)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
Почему моё Android-приложение крашится?
Интересная статья про то, как на уровне системы устроен механизм закрытия приложения, когда в вашем коде выбрасывается необрабатываемый эксепшн.
- Zygote и запуск приложений
- Как Android обрабатывает непойманные исключения?
- Кто сообщает о краше?
- Почему в итоге приложение закрывается?
- А можно ли сделать так, чтобы оно не закрывалось?
🟡 Читать
👉 @MobDevPortal
Интересная статья про то, как на уровне системы устроен механизм закрытия приложения, когда в вашем коде выбрасывается необрабатываемый эксепшн.
- Zygote и запуск приложений
- Как Android обрабатывает непойманные исключения?
- Кто сообщает о краше?
- Почему в итоге приложение закрывается?
- А можно ли сделать так, чтобы оно не закрывалось?
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
SwiftUI совет
По умолчанию бейджи в таб-баре отображаются красным цветом
Вы можете изменить их цвет как для обычного, так и для выбранного состояния всего несколькими строками UIKit-кода.
👉 @MobDevPortal
По умолчанию бейджи в таб-баре отображаются красным цветом
Вы можете изменить их цвет как для обычного, так и для выбранного состояния всего несколькими строками UIKit-кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍3
Forwarded from IT Portal
Swift-разработчики, подъехало мощное: Apple официально завезли Swift SDK для Android. Теперь можно писать бизнес-логику под Android на том же Swift
Уже 25% пакетов в Swift Package Index нормально собираются под Android. Примеры Android-проектов с использованием Swift SDK можно найти на GitHub
Гайд по старту тут
@IT_Portal
Уже 25% пакетов в Swift Package Index нормально собираются под Android. Примеры Android-проектов с использованием Swift SDK можно найти на GitHub
Гайд по старту тут
@IT_Portal
❤12👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Pulse Indicator in Jetpack Compose
Пример реализации вот такого пульсирующего индикатора на Jetapck Compose.
🔸 Читать
👉 @MobDevPortal
Пример реализации вот такого пульсирующего индикатора на Jetapck Compose.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍2
SwiftUI совет
В iOS 16+ можно сделать так, чтобы
👉 @MobDevPortal
В iOS 16+ можно сделать так, чтобы
TextField автоматически расширялся по вертикали по мере ввода текста, для этого достаточно установить параметр axis в значение .verticalPlease open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤2