Majid Jabrayilov
@mecid.bsky.social
📤 1755
📥 587
📝 595
Swift Developer: iOS, watchOS, visionOS, tvOS, macOS.
https://swiftwithmajid.com
I’m sure there is no reason to use flow layout with swipe actions, but you should know that you can use it with any custom layout as soon as you modify it with the swipeActionsContainer view modifier.
swiftwithmajid.com/2026/06/16/s...
1 day ago
0
6
0
The swipeActionsContainer view modifier is crucial and works like a swipe actions enabler. It also controls a few things. It enables only one row’s swipe actions to be revealed at a time. It tracks the scrolling events and dismisses any open actions.
swiftwithmajid.com/2026/06/16/s...
2 days ago
0
8
1
The swipeActionsContainer view modifier allows us to use swipe actions without List. This week, we will learn how to use swipeActionsContainer view modifier to attach swipe actions inside scroll view, lazy stacks, and even custom layouts.
swiftwithmajid.com/2026/06/16/s...
loading . . .
Swipe actions outside of List in SwiftUI
Swipe actions were a primary reason for using List in SwiftUI. As you may recall, I’ve mentioned several times that a scroll view paired with lazy stacks is the preferred approach in most scenarios,…
https://swiftwithmajid.com/2026/06/16/swipe-actions-outside-of-list-in-swiftui/
3 days ago
0
6
2
Whenever you consider creating a scrollable screen in SwiftUI, you might think of using a List. 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...
4 days ago
1
9
1
Toolbars have a crucial place in the Liquid Glass design. New toolbar modifiers provides us even more control on how toolbar items displayed. We can now prioritize their visibilities and put into overflow by directly using ToolbarOverflowMenu type.
swiftwithmajid.com/2026/06/08/w...
5 days ago
0
5
1
Do you have a tab providing a flow for primary action in your app? Then you can use the new prominent tab role to place it in the separated trailing edge of your tab bar.
swiftwithmajid.com/2026/06/08/w...
8 days ago
0
1
0
Navigation gains a new cross-fade transition that we can use alongside zoom. We still can’t control navigation transitions manually, but now we have more built-in options: automatic, zoom, and cross-fade.
swiftwithmajid.com/2026/06/08/w...
10 days ago
0
4
0
AsyncImage receives a performance improvement by introducing caching. You can even control the cache by configuring a custom URLSession with a specific cache size.
#swiftui
#wwdc26
swiftwithmajid.com/2026/06/08/w...
11 days ago
0
16
2
reposted by
Majid Jabrayilov
Kristoffer Johansson
11 days ago
Nice that they made it easy to export the agent skills that ship with Xcode 27.
#WWDC26
onmyway133.com/posts/how-to...
loading . . .
How to export skills from Xcode 27 | Swift Discovery
Issue #1047 Xcode 27 ships with a set of agent skills that capture Apple’s own guidance for writing modern Swift and SwiftUI code. These skills cover things like adopting the newest SwiftUI APIs, mode...
https://onmyway133.com/posts/how-to-export-skills-from-xcode-27/
0
4
3
reposted by
Majid Jabrayilov
dnadoba.bsky.social
11 days ago
SwiftUI Perf Tip: In lazy containers (List, LazyVStack), each ForEach element should return a *constant* number of views. An AnyView or if inside the closure (0 or 1 views) hits a slow path. Fix: filter your data upfront. Debug arg: -LogForEachSlowPath YES 🔗
developer.apple.com/documentati...
loading . . .
ForEach | Apple Developer Documentation
A structure that computes views on demand from an underlying collection of identified data.
https://docs.developer.apple.com/documentation/swiftui/foreach
1
23
9
No need to use List only for swipe actions. The swipe actions view modifier works with scroll view, stacks, grids, and even custom layouts now. All you need is to enable your container using the swipeActionsContainer view modifier.
swiftwithmajid.com/2026/06/08/w...
12 days ago
0
10
1
Platforms State of the Union has just been published, and we have a lot of new APIs to learn, explore, and use to build new features and apps. Let’s start with the most important framework for our apps.
swiftwithmajid.com/2026/06/08/w...
loading . . .
What is new in SwiftUI after WWDC26
Platforms State of the Union has just been published, and we have a lot of new APIs to learn, explore, and use to build new features and apps. Let’s start with the most important framework for our…
https://swiftwithmajid.com/2026/06/08/what-is-new-in-swiftui-after-wwdc26/
12 days ago
0
5
0
We have a lot of new control over how toolbar appears in SwiftUI. There is visibilityPriority, ToolbarOverflowMenu, new topBarPinnedTrailing placement and toolbarMinimizeBehavior.
#swiftui
#wwdc26
12 days ago
0
4
1
We have a new NavigationTransition called crossFade. We can use it with sheets to have a sheet appear by fading in over content.
#swiftui
#wwdc26
developer.apple.com/documentatio...
loading . . .
https://developer.apple.com/documentation/SwiftUI/NavigationTransition/crossFade
12 days ago
0
4
0
We have a new TabRole called prominent. It allows us to display a tab on trailing edge, similar to search role.
#swiftui
#wwdc26
developer.apple.com/documentatio...
loading . . .
https://developer.apple.com/documentation/SwiftUI/TabRole/prominent
12 days ago
1
5
2
We can also add swipe actions to views inside scroll view, stacks, grids and even custom layouts using the new swipeActionsContainer.
#wwdc26
#swiftui
developer.apple.com/documentatio...
loading . . .
https://developer.apple.com/documentation/SwiftUI/View/swipeActionsContainer
12 days ago
0
3
0
We have an API for reordering items in lists, stacks, grids and even custom layouts using the new reorderContainer view modifier.
developer.apple.com/documentatio...
loading . . .
https://developer.apple.com/documentation/SwiftUI/View/reorderContainer(for:isEnabled:move:)
12 days ago
1
5
0
Now we can use coding agents to perform tasks like adding languages, updating string catalogs, and translating strings. Review translated output and iterate on your localizations — adding language-specific plural variants using the context of your app.
12 days ago
0
4
1
We have a new agentic coding UX/UI in Xcode 27.
12 days ago
0
8
3
Here is the list of my
#wwdc26
expectations: 1. Image input for Foundation Models. 2. Lazyness support for Layout protocol in SwiftUI. 3. RecyclerView or some sort of implicit view recycling in SwiftUI.
swiftwithmajid.com/2026/06/02/w...
loading . . .
WWDC26 wishes
WWDC26 is just around the corner, and as always, it is the most exciting time of the year for Apple developers. Next week, Apple will show the future of its platforms, frameworks, and developer…
https://swiftwithmajid.com/2026/06/02/wwdc26-wishes/
12 days ago
0
7
2
One of the SwiftUI changes I will expect during
#wwdc26
is the structured identity-based recycling in ForEach view. What do you think? Is it possible?
swiftwithmajid.com/2026/06/02/w...
loading . . .
WWDC26 wishes
WWDC26 is just around the corner, and as always, it is the most exciting time of the year for Apple developers. Next week, Apple will show the future of its platforms, frameworks, and developer…
https://swiftwithmajid.com/2026/06/02/wwdc26-wishes/
16 days ago
1
12
3
reposted by
Majid Jabrayilov
9to5Mac
17 days ago
CardioBot integrates one of my favorite Apple Health metrics for deeper heart insight
loading . . .
CardioBot integrates one of my favorite Apple Health metrics for deeper heart insight
Ever want to do more with your health data that Apple Watch gathers? CardioBot has long been a great way to unlock new insight into your heart health. The latest version integrates one of my favorite Apple Health metrics using Apple Watch. more…
https://9to5mac.com/2026/06/03/cardiobot-integrates-one-of-my-favorite-apple-health-metrics-for-deeper-heart-insight/?utm_source=dlvr.it&utm_medium=bluesky
0
6
1
WWDC26, the most exciting time of the year for Apple developers, is just around the corner. Next week, Apple will show its future platforms, frameworks, and developer tools. Some announcements may be entirely new, while others may address gaps in our daily work.
swiftwithmajid.com/2026/06/02/w...
loading . . .
WWDC26 wishes
WWDC26 is just around the corner, and as always, it is the most exciting time of the year for Apple developers. Next week, Apple will show the future of its platforms, frameworks, and developer…
https://swiftwithmajid.com/2026/06/02/wwdc26-wishes/
17 days ago
0
4
1
The refreshable view modifier uses the Swift Concurrency feature and automatically disables the refreshing indicator when the async task finishes. Remember that the only way to control the refreshing indicator is async/await.
swiftwithmajid.com/2021/07/14/p...
18 days ago
0
4
0
A phantom type is a generic type that is declared but never used inside a type where it is declared. It is usually used as a generic constraint to build a more type-safe and robust API.
swiftwithmajid.com/2021/02/18/p...
19 days ago
0
7
1
HealthKit observation API requires you to call a completion handler as soon as you finish your processing. This is another interesting usage of a defer block, you define it at the start of the scope, but it will run right after you finish your processing.
swiftwithmajid.com/2026/05/26/s...
22 days ago
0
6
1
Create a file in the temporary directory and delete it after work. You might forget to remove it more often than you think. You can create a file and define a defer block to delete it. Place it below the file creation, but it will execute at the end of the scope.
swiftwithmajid.com/2026/05/26/s...
23 days ago
0
3
0
You may think about defer keyword as one of the most ambiguous language features in Swift, but it is very useful in some cases. You can use it deliberately, and it will give you safety. This week we will talk about some best practices of using defer in Swift.
swiftwithmajid.com/2026/05/26/s...
loading . . .
Swift Defer. Clean up before you leave.
You may think about defer keyword as one of the most ambiguous language features in Swift, but it is very useful in some cases. You can use it deliberately, and it will give you safety. This week we…
https://swiftwithmajid.com/2026/05/26/swift-defer-clean-up-before-you-leave/
24 days ago
0
7
0
reposted by
Majid Jabrayilov
Snapp iOS Weekly
25 days ago
🗑️ 𝐷𝑒𝑝𝑟𝑒𝑐𝑎𝑡𝑖𝑛𝑔 𝑦𝑜𝑢𝑟 𝑜𝑤𝑛 𝑐𝑜𝑛𝑣𝑒𝑛𝑖𝑒𝑛𝑐𝑒 𝐴𝑃𝐼 by Majid Jabrayilov (
@mecid.bsky.social
) Use @𝑎𝑣𝑎𝑖𝑙𝑎𝑏𝑙𝑒 with 𝑑𝑒𝑝𝑟𝑒𝑐𝑎𝑡𝑒𝑑 and 𝑜𝑏𝑠𝑜𝑙𝑒𝑡𝑒𝑑 to let the compiler flag dead code when bumping your minimum OS version.
#Swift
#iOSDev
swiftwithmajid.com/2026/05/19/d...
loading . . .
Deprecating your own convenience API
Almost after every major update of iOS, we got new APIs that we use on the most recent platform but can’t use on the previous one. Usually, I solve this kind of thing by introducing my own…
https://swiftwithmajid.com/2026/05/19/deprecating-your-own-convenience-api/
0
5
1
We talked a lot about different design patterns, which help us maintain the codebase by solving various issues. But what about testing? What can we do to keep our UI tests in a maintainable and consistent state?
swiftwithmajid.com/2021/03/24/u...
25 days ago
0
1
0
You don’t need to manually measure available space or calculate if the particular view fits into the available space. ViewThatFits automatically measures available space and the size of its children and takes the first view that perfectly fits the available space.
swiftwithmajid.com/2022/07/26/v...
26 days ago
0
5
1
reposted by
Majid Jabrayilov
Becca Royal-Gordon
29 days ago
Adequate! Sleep! Til Dub-Dub!
2
10
1
reposted by
Majid Jabrayilov
Daniel Saidi
30 days ago
Tired of messing around with sheet sizes in
#SwiftUI
? When working on PresentationKit, I just had to add an easy way to apply a .sizeToFit presentation detent that resizes a sheet to fit its content. I write about the implementation in this new blog post:
danielsaidi.com/blog/2026/05...
loading . . .
Making a SwiftUI sheet automatically size to fit its content
An iOS sheet defaults to covering around half the screen, and while you can specify custom detents, it’s not enough. This article shows y...
https://danielsaidi.com/blog/2026/05/22/making-a-swiftui-sheet-automatically-size-to-fit-its-content
1
10
2
reposted by
Majid Jabrayilov
Paul Hudson
29 days ago
Current Kickstart work: bringing back features I removed during the TestFlight because they weren't quite polished enough. Hopefully these all land in the next release: - Apple Ads support - SwiftData/Core Data explorer in Overdrive - macOS competitors
apps.apple.com/app/kickstar...
loading . . .
Kickstart - App Accelerator App - App Store
Download Kickstart - App Accelerator by Hudson Heavy Industries on the App Store. See screenshots, ratings and reviews, user tips, and more apps like Kickstart…
https://apps.apple.com/app/kickstart-app-accelerator/id6758355178
1
14
2
reposted by
Majid Jabrayilov
Dave Verwer
29 days ago
Well, that’s the end of an era!
@iosdevweekly.com
now has a new owner who will be taking it forward from here. I’m so happy it will continue without me, and I’ll be moving to work full time on the Swift Package Index. Please give the new owners,
@droidcon.bsky.social
, a very warm welcome!
8
43
7
reposted by
Majid Jabrayilov
Artem Zakharchenko
29 days ago
The world needs people who love what they do.
0
34
8
You build a visually custom UI component, but want to copy accessibility behaviour from another view? In this case, you can use accessibilityRepresentation and provide a view builder closure to build a view that will be the source of accessibility presentation.
swiftwithmajid.com/2021/09/01/t...
29 days ago
0
5
1
reposted by
Majid Jabrayilov
Natalia Panferova
30 days ago
To programmatically scroll to an edge, a raw offset, or a view with a provided identity in SwiftUI, we can use the scrollPosition(_:anchor:) modifier. It takes a binding to a ScrollPosition, available from iOS 18:
nilcoalescing.com/blog/ModernS...
#iOSDev
#SwiftUI
2
18
4
When you upgrade your app to iOS 26, the compiler will warn you about the toolbar property usage with the annotation message. If you upgrade to iOS 27, the compiler will produce an error because this code is obsolete.
swiftwithmajid.com/2026/05/19/d...
about 1 month ago
0
2
1
After every major iOS update, new APIs are introduced that are available on the latest platform but not on older versions. I usually solve this by creating convenience code that runs new APIs on available versions and custom implementations or stubs on older.
swiftwithmajid.com/2026/05/19/d...
about 1 month ago
0
4
0
Cooperative cancellation means that Swift will never stop your task automatically, but it will provide you with information about the cancellation. It is totally up to you to decide how to handle this information.
swiftwithmajid.com/2025/02/11/t...
about 1 month ago
0
4
0
The Tab type provides us the role parameter which we can use to set a specific role on the tab. The search role allows the system to display search tab in a different way. For example, it is separated on iOS from all other tabs.
swiftwithmajid.com/2025/06/24/g...
about 1 month ago
0
3
0
Do you use feature flags? Feature flags are the feature I have almost in every project. They simplify app delivery via Xcode Cloud to different channels like TestFlight and the App Store.
swiftwithmajid.com/2025/09/16/f...
about 1 month ago
0
8
1
Do you start building an app by introducing a design module? A module containing all the needed components? Buttons, headers, scrolling surfaces, etc.? It is needed not only for super custom UI, but it is also good to introduce reusable pieces of your UI.
swiftwithmajid.com/2026/04/06/b...
loading . . .
Building List replacement in SwiftUI
Whenever you consider creating a scrollable screen in SwiftUI, you might think of using a List. However, it’s not always the best choice. Lists are great for displaying uniform data. For anything…
https://swiftwithmajid.com/2026/04/06/building-list-replacement-in-swiftui/
about 1 month ago
0
2
1
People who go all in on AI agents now are guaranteeing their obsolescence. If you outsource all your thinking to computers, you stop upskilling, learning, and becoming more competent.
larsfaye.com/articles/age...
loading . . .
Agentic Coding is a Trap | Lars Faye
Remaining vigilant about cognitive debt and atrophy.
https://larsfaye.com/articles/agentic-coding-is-a-trap
about 1 month ago
2
14
3
reposted by
Majid Jabrayilov
Axel Le Pennec
about 1 month ago
Apple updated its Human Interface Guidelines for Sheets on March 24, 2026 to add guidance for button placement in the toolbar. "In iOS & iPadOS, the Cancel button belongs on the leading edge of the top toolbar." Time to update my apps 🙂 Documentation:
developer.apple.com/design/human...
3
12
4
I value your feedback and hope you will join CardioBot TestFlight channel. With CardioBot, you can easily understand the data captured by the Apple Watch so you can improve your lifestyle and discover notable patterns.
testflight.apple.com/join/H82FVVt6
about 1 month ago
0
3
1
Whenever you consider creating a scrollable screen in SwiftUI, you might think of using a List. 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...
about 1 month ago
1
8
1
reposted by
Majid Jabrayilov
Joseph Simpson
about 1 month ago
Apple created a new way to recognize community members and leaders from across the development world. I'm fortunate to be among the first cohort and I'm in really good company! So many familiar faces, including a few friends from the visionOS community.
developer.apple.com/community/re...
loading . . .
Recognition - Community - Apple Developer
All around the world, developers do meaningful work that extends beyond great apps and games. They organize events, write tutorials, mentor others, and create spaces to learn and grow.
https://developer.apple.com/community/recognition/
4
20
3
The bottom sheet API in SwiftUI is simple. Attach the presentationDetents view modifier to the sheet’s content. It passes an array of sizes, enabling users to resize the sheet by dragging.
swiftwithmajid.com/2022/07/19/b...
loading . . .
Bottom sheet API in SwiftUI
Two years ago, I wrote a post about building a custom bottom sheet in SwiftUI. Nowadays, there is no need to make it manually, at least if you don’t need a super custom behavior. SwiftUI introduces a…
https://swiftwithmajid.com/2022/07/19/bottom-sheet-api-in-swiftui/
about 1 month ago
0
3
1
Load more
feeds!
log in