Majid Jabrayilov
@mecid.bsky.social
š¤ 1627
š„ 588
š 392
Swift Developer: iOS, watchOS, visionOS, tvOS, macOS.
https://swiftwithmajid.com
pinned post!
Hi, I'm Majid. Iām an indie developer building apps for iOS, watchOS, visionOS, and all other Apple platforms. I mostly build health-related apps like CardioBot, allowing you to understand and improve heart metrics. I try to share my experiences by writing blog posts.
swiftwithmajid.com
loading . . .
Home
Majidās blog about Swift development
https://swiftwithmajid.com
11 months ago
2
31
1
SwiftUI introduced APIs, allowing us to recompose complex view hierarchies, including sections. Similarly to the subviews parameter, SwiftUI defines another overload on the ForEach type, allowing us to enumerate sections.
swiftwithmajid.com/2024/10/01/m...
about 6 hours ago
0
1
0
You can always check whenever the platform you are running supports multiple window environments using the supportsMultipleWindows environment value.
swiftwithmajid.com/2022/11/02/w...
1 day ago
1
4
1
SwiftUI introduced the ScrollGeometry type with the onScrollGeometryChange view modifier to accurately read content offset. It provides properties like content offset, bounds, container size, visible rectangle, content insets, and content size.
swiftwithmajid.com/2024/06/25/m...
2 days ago
0
0
0
The searchFocused view modifier binds the focus of a search field created with the searchable view modifier. It functions like the focused view modifier, but only affects the text field in the current view hierarchyās search bar.
swiftwithmajid.com/2021/08/24/m...
5 days ago
0
2
0
reposted by
Majid Jabrayilov
Honza Dvorsky
6 days ago
Introducing Swift Configuration š You'll also hear more about it at
@serversideswift.info
next week! šļø
forums.swift.org/t/introducin...
loading . . .
Introducing Swift Configuration
Hi Swift Community! Today, weāre pleased to announce the initial release of Swift Configuration: a new library that provides a unified approach to reading configuration in your Swift applications. C...
https://forums.swift.org/t/introducing-swift-configuration/82368
1
35
15
Coding agents are gaining popularity, but UI and unit tests have become even more powerful. Whenever agents make changes to a UI feature, I request that they run UI tests to ensure that everything functions as intended.
swiftwithmajid.com/2021/03/18/u...
loading . . .
UI Testing in Swift with XCTest framework
Iām not going to talk about the importance of testing in general, but I want to talk about UI testing. One obvious benefit of UI testing over Unit Testing is the opportunity to write UI tests evenā¦
https://swiftwithmajid.com/2021/03/18/ui-testing-in-swift-with-xctest-framework/
7 days ago
0
3
0
My favorite thing about Jujutsu VCS is the absorb command. It move changes from a source revision into its mutable ancestors: splits by file paths & last edits. It uses blame to find suitable changes.
jj-vcs.github.io/jj/latest/cl...
loading . . .
CLI reference - Jujutsu docs
Warning
https://jj-vcs.github.io/jj/latest/cli-reference/#jj-absorb
8 days ago
0
0
0
Swift Charts framework allows us to select a single value and a range of values. We can use chartXSelection and chartYSelection with the binding of ClosedRange type to allow range selection.
swiftwithmajid.com/2023/07/18/m...
8 days ago
0
1
0
Another excellent article on using Jujutsu VCS with existing Git repositories.
blog.nshephard.dev/posts/jujutsu/
loading . . .
Version Control with Jujutsu ā blog.nshephard.dev
Neil Shephard
https://blog.nshephard.dev/posts/jujutsu/
8 days ago
0
0
0
reposted by
Majid Jabrayilov
vhyrro
23 days ago
I'll never stop yapping out the jujutsu VCS. It's such a good tool and has entirely replaced Git for me, tbh. Even for the most simple of operations I find jj to be much more ergonomic. You also get the op log for free! :D
0
1
1
Iāve been using Jujutsu for all my projects for almost a week now. I genuinely prefer its workflows over Git, especially the Edit workflow. It feels more intuitive for my trunk-based development approach.
steveklabnik.github.io/jujutsu-tuto...
loading . . .
The Edit Workflow - Steve's Jujutsu Tutorial
While I like the previous workflow, some people just don't. They use a workflow that adds a different command, jj edit, along with a second new command, jj next, as well as a new flag to jj new. Lotsā¦
https://steveklabnik.github.io/jujutsu-tutorial/real-world-workflows/the-edit-workflow.html
9 days ago
0
1
0
FeatureFlags, typically described as a simple struct, enables us to place its instance in the SwiftUI environment. This allows us to share it within the view hierarchy, enabling our views to toggle the functionality of specific features.
swiftwithmajid.com/2025/09/16/f...
12 days ago
1
3
0
The most challenging aspect of using agentic coding tools for me is to accept that the generated code may not be an exact reflection of my thoughts and to refrain from spending excessive time prompting for minor changes.
12 days ago
0
0
0
reposted by
Majid Jabrayilov
9to5Mac
13 days ago
Federico Viticciās in-depth iOS 26 review: āA new era for Appleās softwareā
loading . . .
Federico Viticciās in-depth iOS 26 review: āA new era for Appleās softwareā
Itās been a busy week in the Apple world, between reviews of new iPhones and the release of iOS 26. One of the highlights of new iOS season every year is Federico Viticciās in-depth review at MacStories. Given the vast nature of iOS 26 and iPadOS 26 this year, I was even more excited than usual to read his review. moreā¦
https://9to5mac.com/2025/09/18/federico-viticci-ios-26-review-link/?utm_source=dlvr.it&utm_medium=bluesky
0
16
3
reposted by
Majid Jabrayilov
Nil Coalescing
13 days ago
Step through the essential setup for AlarmKit timers in iOS 26, from requesting authorization and scheduling a countdown to presenting the Live Activity and an in-app list of active timers:
nilcoalescing.com/blog/Countdo...
#iOSDev
loading . . .
Schedule a countdown timer with AlarmKit
Step through the essential setup for AlarmKit timers in iOS 26, from requesting authorization and scheduling a countdown to presenting the Live Activity and an in-app list of active timers.
https://nilcoalescing.com/blog/CountdownTimerWithAlarmKit/
0
8
3
Almost every feature Iām working on has a feature flag for enabling it in debug and TestFlight builds. Since I merge branches even when the feature isnāt fully implemented, I use feature flags to temporarily disable them.
swiftwithmajid.com/2025/09/16/f...
loading . . .
Feature flags in Swift
Almost every project I work on has at least three build configurations: Debug, TestFlight, and App Store. These configurations differ not only in build settings but also in functionality. This week,ā¦
https://swiftwithmajid.com/2025/09/16/feature-flags-in-swift/
13 days ago
0
2
1
reposted by
Majid Jabrayilov
Kuba Suder šµš±šŗš¦
14 days ago
The iPhone Air looks pretty sleek tbh⦠š
loading . . .
iPhone Air Reviews: Is the Ultra-Thin Design Worth the Compromises?
The first reviews of the iPhone Air have been published by selected media outlets and YouTube channels, offering a closer look at the device ahead of...
https://www.macrumors.com/review/iphone-air/
6
11
1
Project I work on has three setups: Debug, TestFlight, and App Store. These configurations differ in build settings and functionality. Weāll learn how to implement feature flags in Swift to toggle specific functionalities under certain conditions.
swiftwithmajid.com/2025/09/16/f...
loading . . .
Feature flags in Swift
Almost every project I work on has at least three build configurations: Debug, TestFlight, and App Store. These configurations differ not only in build settings but also in functionality. This week,ā¦
https://swiftwithmajid.com/2025/09/16/feature-flags-in-swift/
14 days ago
0
4
0
reposted by
Majid Jabrayilov
Sergii Kozak
14 days ago
TIL Codex finally supports resuming previous conversations, but you be need to start it with ācodex resumeā to see history.
0
1
1
Jujutsu simplifies numerous tasks that are challenging in Git. Iām contemplating switching to Jujutsu for my projects.
kubamartin.com/posts/introd...
loading . . .
Jujutsu VCS Introduction and Patterns
Jujutsu (jj), a new version control system written in Rust, has popped up on my radar a few times over the past year. Looked interesting based on a cursory look, but being actually pretty satisfiedā¦
https://kubamartin.com/posts/introduction-to-the-jujutsu-vcs/
14 days ago
0
0
0
reposted by
Majid Jabrayilov
Vidit Bhargava
15 days ago
Blending Apple's design philosophy with my own understanding of the software design. LookUp's design process was intense, but rewarding.
blog.viditb.com/what-is-look...
loading . . .
0
6
1
reposted by
Majid Jabrayilov
Step Into Vision
15 days ago
Sure, we all know how to use glassBackgroundEffect to add glass to a SwiftUI view. But did you know there are other effects, crop shapes, and a powerful implicit display mode?
#visionOS
#SwiftUI
stepinto.vision/example-code...
loading . . .
2
11
7
reposted by
Majid Jabrayilov
Devon Dundee
15 days ago
With its third major version, visionOS shows no signs of slowing down. I'm pleased to present visionOS 26: The MacStories Review, covering widgets, spatial scenes, wide field-of-view video, the Jupiter environment, the spatial web, and more.
macstories.net/stories/vision...
2
12
6
Day 1 with Xcode Intelligence. Xcode Intelligence feels stupid after Codex CLI. I wrote a few lines of code and ask to review my changes. And it says I can't find what did you change.
15 days ago
1
3
0
No featuring for CardioBot, but it is a huge update. Say hello to the new liquid glass design and smarter coaching powered by on-device intelligence.
#showcase25
@stroughtonsmith.mastodon.social.ap.brid.gy
t.co/hCFVBXMJmQ
15 days ago
0
2
0
reposted by
Majid Jabrayilov
Honza Dvorsky
15 days ago
www.swift.org/blog/swift-6...
loading . . .
Swift 6.2 Released
Weāre excited to announce Swift 6.2, a release aimed at making every Swift developer more productive, regardless of where or how you write code. From improved tooling and libraries to enhancements in ...
https://www.swift.org/blog/swift-6.2-released/
0
7
5
I use StoreKit 2 in all my apps to generate revenue. The new Swift API simplifies handling subscriptions in your app to an unprecedented extent. With just a hundred lines of code, you can create a fully functional and customizable paywall.
swiftwithmajid.com/2023/08/01/m...
15 days ago
0
5
1
SwiftUIās SceneStorage property wrapper stores values in the current sceneās memory. Each scene has private storage that other scenes canāt access. The system manages per-scene storage, and it restores SceneStorage property wrappers when the app relaunches.
swiftwithmajid.com/2022/03/10/s...
16 days ago
0
0
0
Anyone here using Jujutsu - a version control system?
16 days ago
2
1
0
reposted by
Majid Jabrayilov
Matthew Cassinelli
17 days ago
Developers ā I will be sharing posts from apps updated for iOS 26 tomorrow. Create a post sharing both what your app does and whatās new, and Iāll add it to an ongoing thread ā on all platforms. Reply here or when you see the post on Monday. Looking forward to seeing your updates!
17
16
7
CardioBot with Liquid Glass design and coaching powered by Apple Foundation Model is already on the App Store.
apps.apple.com/us/app/cardi...
18 days ago
0
5
0
I can't find you folks. Where sits the majority of the Swift community? X? Blue Sky? Mastodon?
19 days ago
13
25
2
Trigger value allows us to attach a view modifier that runs its action whenever the trigger value changes. You can find this pattern while using sensory feedback or launching keyframe animation in SwiftUI.
swiftwithmajid.com/2024/04/02/t...
19 days ago
0
2
0
reposted by
Majid Jabrayilov
Jason Schreier
20 days ago
If you're struggling with Silksong, here is a tip: It is more important to avoid getting hit than it is to hit. Every single enemy attack follows a pattern that can be identified and dodged. Patience is the key. Think of it more as a platformer than an action game and you'll have a much better time
48
933
91
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...
20 days ago
0
1
0
We encounter bugs that are very hard to catch in the debugger from time to time. For example, it might occur only after a few days of app usage. Logging is an excellent technique to track and understand user actions through the app.
swiftwithmajid.com/2022/04/06/l...
22 days ago
0
1
0
SwiftUI framework introduced the ScrollPosition type, allowing us to combine and track the scroll position by offset, the edge of the scroll view, view identifier, etc. We can easily animate programmatic scrolling by attaching the animation view modifier.
swiftwithmajid.com/2024/06/17/m...
23 days ago
0
0
0
Through all the highs and lows, Iāve been working on this app for 10 years. Itās truly my passion project. Happy birthday!
apps.apple.com/us/app/cardi...
27 days ago
0
7
0
Dynamic member lookup is an excellent way to enhance APIs when you create a wrapper or proxy type. Itās particularly useful when you have a type that holds a generic property.
swiftwithmajid.com/2023/05/23/d...
27 days ago
0
2
1
We can setup and handle background tasks using the SwiftUI app lifecycle. To handle app refresh tasks in SwiftUI, we have the backgroundTask modifier that we can attach to any scene.
swiftwithmajid.com/2022/07/06/b...
28 days ago
0
3
0
The new sensoryFeedback view modifier, allowing us to play haptic feedback on all Apple platforms. All we need to play haptic feedback in a SwiftUI view is to attach the sensoryFeedback view modifier with two parameters.
swiftwithmajid.com/2023/10/10/s...
29 days ago
0
3
0
Lazy grids work great for the massive data you want to display. But it is not always possible to arrange the columns strictly because of their lazy nature. For these cases, SwiftUI introduces another type of grid that immediately lays out its children.
swiftwithmajid.com/2022/08/10/m...
about 1 month ago
1
1
0
In order to receive response from Foundational Model in a structured format, you have to conform you response type to the Generable protocol. Swift simplifies this task by introducing the Generable macro that we use to annotate our type.
swiftwithmajid.com/2025/08/26/b...
about 1 month ago
0
1
0
reposted by
Majid Jabrayilov
Nil Coalescing
about 1 month ago
Make your views and controls fit perfectly within their containers using new SwiftUI APIs in iOS 26 such as the ConcentricRectangle shape and the containerShape() view modifier:
nilcoalescing.com/blog/Concent...
#SwiftUI
#iOSDev
loading . . .
Corner concentricity in SwiftUI on iOS 26
Make your views and controls fit perfectly within their containers using new SwiftUI APIs in iOS 26 such as the ConcentricRectangle shape and the containerShape() view modifier.
https://nilcoalescing.com/blog/ConcentricRectangleInSwiftUI/
0
15
4
Last week, we talked about the basics of Foundation Models, how to generate text content, and how to tune and control the output. This week, we will talk about simple and yet powerful structured content generation.
swiftwithmajid.com/2025/08/26/b...
loading . . .
Building AI features using Foundation Models. Structured Content.
Last week, we talked about the basics of Foundation Models, how to generate text content, and how to tune and control the output. This week, we will talk about simple and yet powerful structuredā¦
https://swiftwithmajid.com/2025/08/26/building-ai-features-using-foundation-models-structured-content/
about 1 month ago
0
1
0
Defining environment values with the @Entry macro is really simple. Keep in mind that it creates not only environment values, but also works with transaction, container values, or focused values entry.
swiftwithmajid.com/2024/07/09/i...
about 1 month ago
0
3
0
This is how the random sampling works. You fix the number of available responses and provide a stable seed. As soon as, seed changes the response changes, but it returns the same response for the same prompt while the seed is the same.
swiftwithmajid.com/2025/08/19/b...
about 1 month ago
0
3
0
What is the easiest AI recommendation system you can build in Swift with help Foundation Models? The key is to experiment, tune the prompt for your use case.
swiftwithmajid.com/2025/08/19/b...
about 1 month ago
0
4
0
Apple introduced the brand-new Foundational Models framework, providing type-safe APIs for using Apple Intelligence models in your apps. This week, we will learn how to use this new framework while building AI features in your apps.
swiftwithmajid.com/2025/08/19/b...
loading . . .
Building AI features using Foundation Models
Apple introduced the brand-new Foundational Models framework, providing type-safe APIs for using Apple Intelligence models in your apps. This week, we will learn how to use this new framework whileā¦
https://swiftwithmajid.com/2025/08/19/building-ai-features-using-foundation-models/
about 1 month ago
0
3
1
With the recent release of the SwiftUI framework, it simplified the usage of the Animatable protocol by introducing the Animatable macro. Now you can simply mark the view or shape type with the Animatable macro, and it will animate all the stored properties.
swiftwithmajid.com/2025/07/08/i...
loading . . .
Introducing Animatable macro in SwiftUI
Easy-peasy animations were always one of the strongest points of the SwiftUI framework. This time Apple makes them even easier by introducing a new Animatable macro. This week, we will learn when andā¦
https://swiftwithmajid.com/2025/07/08/introducing-animatable-macro-in-swiftui/
about 1 month ago
1
2
0
Load more
feeds!
log in