The recent version of the SwiftUI framework introduces a trigger value pattern across its APIs. Trigger value allows us to attach a view modifier that runs its action whenever the trigger value changes.
swiftwithmajid.com/2024/04/02/t...
Posts by Majid Jabrayilov
Apple introduced the Accelerate framework many years ago, so it is available almost on every version of Apple platforms. It is a high-performance and energy-efficient way of doing computations using the vector-processing capabilities of the device.
swiftwithmajid.com/2025/05/13/o...
Did you know that you can easily animate SF Symbols in your apps using the symbolEffect view modifier? I’ve used the heart symbol in my HeartRateView view and want it to bounce whenever its value changes to grab attention.
swiftwithmajid.com/2021/12/21/s...
📜 𝐵𝑢𝑖𝑙𝑑𝑖𝑛𝑔 𝑎 𝐿𝑖𝑠𝑡 𝑅𝑒𝑝𝑙𝑎𝑐𝑒𝑚𝑒𝑛𝑡 𝑖𝑛 𝑆𝑤𝑖𝑓𝑡𝑈𝐼 by Majid Jabrayilov (@mecid.bsky.social)
Build custom scrollable containers using ScrollView with lazy stacks and Container View APIs. Create reusable ScrollingSurface, DividedCard, and SectionedSurface components for full control over the UI.
#SwiftUI
SwiftUI provides a way to keep the structural identity of our view hierarchy while changing the layout container using the new AnyLayout type. SwiftUI doesn’t recreate the views. It only moves them according to the new layout.
swiftwithmajid.com/2022/08/16/c...
GeometryGroup view modifier isolates the geometry of the view and doesn’t animate every node of the view separately. Instead, it acts like a barrier and affects the whole view as a single item.
swiftwithmajid.com/2020/04/15/l...
Authors:
@tracymiranda.bsky.social, @fatbobman.com, @natpanferova.bsky.social, @mecid.bsky.social, @0xwdg.bsky.social, Mark Szymczyk, Franz Enzenhofer, Hypersolo.
Never miss an issue → subscribe: ios-newsletter.snappmobile.io/subscribe
I’ve been generating 2-3 images using ImageCreator API and store them in the app state. iOS aggressively kill my app in background. Solved by storing images in temp directory.
List automatically decors NavigationLinks with a trailing chevron. To achieve this behaviour in ScrollView, we can implement a custom ButtonStyle and apply it to the whole ScrollView.
swiftwithmajid.com/2026/04/06/b...
It feels like Apple Foundational Model doesn’t follow instructions very well in the most recent iOS version.
Another interesting UI primitive I built is the SectionedSurface. It uses ForEach(sections:) which allows us to extract all the sections from the passed view and filter out the sections without content and add some paddings to section headers.
swiftwithmajid.com/2026/04/06/b...
Group(subviews:) is a part of SwiftUI Container View API. This initializer of the Group type allows us to decompose the view passed with a ViewBuilder closure and wrap the whole view with a background with rounded corners to make it feel like a card.
swiftwithmajid.com/2026/04/06/b...
Agree, use lists when uniform data, swipe actions and edit mode is needed.
Whenever you consider creating a scrollable screen in SwiftUI, you think of using a List. However, it’s not always the best choice. Lists are great for displaying uniform data. For anything else, a ScrollView with a lazy stack is almost always the best option.
swiftwithmajid.com/2026/04/06/b...
I use Container API in SwiftUI to create a custom List replacement with my own styling and precise control over its appearance. This allows us to decompose views and compose them by hiding the implementation details of our container views.
swiftwithmajid.com/2024/09/24/m...
Most of SwiftUI apps look same because they use List and its default styling. I've introduced the DesignSystem module in my apps containing custom stuff like headers, divided card, hero card, scrolling surface, etc.
swiftwithmajid.com/2022/01/12/m...
In Jujutsu VCS you work with changes instead of commits, and those changes remain mutable until you push them to a remote. That means you can freely move between changes and edit them.
swiftwithmajid.com/2025/10/15/i...
Did you know that you can add scope Guides to your code in Xcode 26.4? I didn’t know that until today. #Xcode #Swift
Apple Discontinues the Mac Pro www.macstories.net/linked/apple-discontinue...
Happy 26.4 release day, everyone!
macOS, visionOS, iOS, watchOS, tvOS
I assume Xcode 26.4 will be available soon too
Image Playground framework provides us a text-to-image functionality. The core of the framework is the ImageCreator type. The ImageCreator type supports a set of styles: animation, illustration and sketch. You can choose the one you need.
swiftwithmajid.com/2025/11/11/g...
Apple has announced WWDC 26. A week of technology, creativity, and community.
developer.apple.com/wwdc26/
The badge view modifier is available only for iOS and macOS. You can use the badge view modifier to generate and display a badge for your view. Keep in mind that only lists, tabs and toolbar items can display badges at the moment.
swiftwithmajid.com/2021/11/10/d...
thanks.
The StoreKitTest framework allows us to write tests for in-app product purchasing, refunding, and restoring features. You can cover almost every aspect of the in-app purchase with tests using the StoreKitTest framework.
swiftwithmajid.com/2024/01/09/s...
Today is what I consider my "Indie Day" when I first released an app on the App Store - 11 years ago now.
Happy Indie Day to everyone out there doing their own thing. It's not easy, but it's the best job ever. 🎈🎉
compacted() replaces the common compactMap { $0 } pattern, product() eliminates nested for-loops, and uniqued() removes duplicates from any sequence. Apple's Swift Algorithms package is full of small wins like these. Have a look: www.hackingwithswift.com/articles/243...
What is so interesting here?
One of the benefits of the data-driven Navigation API is the programmatic navigation with deep-linking possibilities. SwiftUI maps values of the mutable collection into a view hierarchy and allows us to push and pop views into the NavigationStack programmatically.
swiftwithmajid.com/2022/06/21/m...