Новое в SwiftUI
Наконец-то мы можем делать так, чтобы вью автоматически скругляли углы, повторяя форму своего родителя, используя стиль углов
👉 @MobDevPortal
Наконец-то мы можем делать так, чтобы вью автоматически скругляли углы, повторяя форму своего родителя, используя стиль углов
concentric — это делает лейауты более цельными и аккуратнымиPlease open Telegram to view this post
VIEW IN TELEGRAM
❤10👍5🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Swipe to Pay, или Как мы переписали слайдер оплаты на Compose
Полезная статья, в которой разработчик из Dodo Engineering подробно разбирает процесс создания достаточно сложного и прикольного компонента на Compose.
🔸 Читать
👉 @MobDevPortal
Полезная статья, в которой разработчик из Dodo Engineering подробно разбирает процесс создания достаточно сложного и прикольного компонента на Compose.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤5
Новое в SwiftUI
Легко применяйте дизайн Liquid Glass к своим вью с помощью модификатора
👉 @MobDevPortal
Легко применяйте дизайн Liquid Glass к своим вью с помощью модификатора
glassEffect()Please open Telegram to view this post
VIEW IN TELEGRAM
❤6
Cовет по Flutter
Включите флаг
👉 @MobDevPortal
Включите флаг
checked в аннотации @JsonSerializable, чтобы точно увидеть, какие поля вызывают ошибки во время десериализации.Please open Telegram to view this post
VIEW IN TELEGRAM
❤8
Разница между использованием атрибута
Без
* Если изображение очень маленькое, SwiftData всё равно может решить сохранить его в базе, даже если вы используете атрибут
👉 @MobDevPortal
.externalStorage и его отсутствием в SwiftData.externalStorage — сохраняет в базе данных ссылку на изображение.Без
.externalStorage — сохраняет само изображение.* Если изображение очень маленькое, SwiftData всё равно может решить сохранить его в базе, даже если вы используете атрибут
.externalStoragePlease open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2
LayoutNode: What Actually Happens When You Write
Годная статья, в которой разбирается
- What is the LayoutNode?
- How Compose Actually Creates Nodes
- LayoutNode vs Modifier.Node
- Rendering Pipeline
- Custom Layouts
- The bottom line
🟡 Читать
👉 @MobDevPortal
@ComposableГодная статья, в которой разбирается
LayoutNode: что это такое, как строится дерево из LayoutNode, как это влияет на производительность и отрисовку.- What is the LayoutNode?
- How Compose Actually Creates Nodes
- LayoutNode vs Modifier.Node
- Rendering Pipeline
- Custom Layouts
- The bottom line
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2
SwiftUI совет
Замыкания в Label могут содержать несколько вью, которые автоматически стилизуются в зависимости от контекста — это отлично подходит для отображения заголовка вместе с дополнительной информацией.
👉 @MobDevPortal
Замыкания в Label могут содержать несколько вью, которые автоматически стилизуются в зависимости от контекста — это отлично подходит для отображения заголовка вместе с дополнительной информацией.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1
The dark corners of inline, crossinline, and reified in Kotlin
Статья про возможные проблемы при неправильном использовании
- The promise and peril of inline
- Why crossinline matters in suspending contexts
- Reified: type-safe builders and beyond
- Debugging and testing inline code
- Checklist for safe use
🔸 Читать
👉 @MobDevPortal
Статья про возможные проблемы при неправильном использовании
inline, crossinline и reified в Kotlin.- The promise and peril of inline
- Why crossinline matters in suspending contexts
- Reified: type-safe builders and beyond
- Debugging and testing inline code
- Checklist for safe use
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1
Совет по SwiftUI
В iOS 17.0+ вы можете управлять видимостью стрелки перехода в
👉 @MobDevPortal
В iOS 17.0+ вы можете управлять видимостью стрелки перехода в
NavigationLink с помощью модификатора navigationLinkIndicatorVisibility().Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
Сделали "Wordle" полностью на KMP, и весь код выложен на GitHub
- iOS (SwiftUI)
- Android (Jetpack Compose)
- Desktop (Compose for Desktop)
https://github.com/joreilly/WordMasterKMP
👉 @MobDevPortal
- iOS (SwiftUI)
- Android (Jetpack Compose)
- Desktop (Compose for Desktop)
https://github.com/joreilly/WordMasterKMP
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍3
Новое в SwiftUI
Используйте
👉 @MobDevPortal
Используйте
backgroundExtensionEffect(), чтобы расширить контент за пределы safe area с размытым, зеркальным эффектом — для плавной визуальной целостности.Please open Telegram to view this post
VIEW IN TELEGRAM
❤7
Integration Testing on Android: A Practical Guide with Hilt, Compose & Room
Практическое руководство по написанию интеграционных тестов в Android.
- Introduction
- Project setup
- Writing the test
- Swapping Real Dependencies with Fake Ones
- Testing Failure Scenarios
- Robotic Pattern for compose test
- Why Integration Testing Matters
🔸 Читать
👉 @MobDevPortal
Практическое руководство по написанию интеграционных тестов в Android.
- Introduction
- Project setup
- Writing the test
- Swapping Real Dependencies with Fake Ones
- Testing Failure Scenarios
- Robotic Pattern for compose test
- Why Integration Testing Matters
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6
Новое в SwiftUI
Добавляйте быстрый A–Z индекс прокрутки в свои списки — прямо как в приложении Contacts!
Используйте
👉 @MobDevPortal
Добавляйте быстрый A–Z индекс прокрутки в свои списки — прямо как в приложении Contacts!
Используйте
sectionIndexLabel() для каждой секции и сделайте индекс видимым через listSectionIndexVisibility(.visible).Please open Telegram to view this post
VIEW IN TELEGRAM
❤6
This media is not supported in your browser
VIEW IN TELEGRAM
Безумие, насколько крутым апгрейд получился у animation API после перехода на Compose.
Анимации во
Анимации в Compose:☺️
Апгрейд на 1000%
Зацени этот короткий гайд по анимациям в Compose:
https://developer.android.com/develop/ui/compose/animation/quick-guide
👉 @MobDevPortal
Анимации во
View: ValueAnimator, XML-файлы, тонна бойлерплейта, слушатели повсюду Анимации в Compose:
animate*AsState, одна строка, полный доступ к suspend и корутинам. Плавность как масло Апгрейд на 1000%
Зацени этот короткий гайд по анимациям в Compose:
https://developer.android.com/develop/ui/compose/animation/quick-guide
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍3❤2
Новое в SwiftUI
В iOS 26.0 тулбары получили единый стиль.
Используй
👉 @MobDevPortal
В iOS 26.0 тулбары получили единый стиль.
Используй
ToolbarSpacer, чтобы добавлять отступы между элементами.Please open Telegram to view this post
VIEW IN TELEGRAM
❤9
TAO Bubbles: элегантные и настраиваемые подсказки для ваших Jetpack Compose приложений
Статья с примером реализации компонента для отображения подсказок на Jetpack Compose.
🔸 Читать
👉 @MobDevPortal
Статья с примером реализации компонента для отображения подсказок на Jetpack Compose.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Новое в Swift 6.2: Raw Identifiers теперь можно использовать в качестве имён функций
Всё, что нужно — обернуть имя функции в обратные кавычки...
...и тогда можно использовать символы, которые обычно недопустимы в названиях функций, например пробелы или операторы!
Идеально подходит для функций, которые реализуют тесты.
👉 @MobDevPortal
Всё, что нужно — обернуть имя функции в обратные кавычки...
...и тогда можно использовать символы, которые обычно недопустимы в названиях функций, например пробелы или операторы!
Идеально подходит для функций, которые реализуют тесты.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍2
The Magic Behind Retrofit: How a Simple Interface Becomes Your API Gateway
Если вдруг кто-то не знал как под капотом устроен и работает Retrofit, вот свежая статья с детальным разбором: Dynamic Proxy, аннотации, парсинг, формирование запросов и т.д.
🔸 Читать
👉 @MobDevPortal
Если вдруг кто-то не знал как под капотом устроен и работает Retrofit, вот свежая статья с детальным разбором: Dynamic Proxy, аннотации, парсинг, формирование запросов и т.д.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Новое в SwiftUI
Теперь можно добавить подзаголовок в навигационный бар с помощью модификатора
(iOS 26.0+)
👉 @MobDevPortal
Теперь можно добавить подзаголовок в навигационный бар с помощью модификатора
navigationSubtitle()(iOS 26.0+)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍2
Threads vs. Tasks in Swift Concurrency
Подробная статья с разбором и сравнением Threads и Tasks в Swift Concurrency.
🔸 What is a thread?
🔸 Swift Concurrency and Threads
🔸 Tasks: A Higher-Level Abstraction
🔸 How Tasks are mapped to Threads
🔸 Can Thread explosion still happen in Swift Concurrency?
🔸 Does Swift Concurrency’s Limited Threads Reduce
🔸 Performance Compared to GCD?
🔸 Common misconceptions
- Читать
👉 @MobDevPortal
Подробная статья с разбором и сравнением Threads и Tasks в Swift Concurrency.
- Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4