Majid Jabrayilov
@mecid.bsky.social
Swift Developer: iOS, watchOS, visionOS, tvOS, macOS.
https://swiftwithmajid.com
https://swiftwithmajid.com
Pinned
Majid Jabrayilov
@mecid.bsky.social
· Nov 17
Home
Majid’s blog about Swift development
swiftwithmajid.com
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
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
SwiftUI provides the FocusState property wrapper that works on all Apple platforms and allows us to focus on a particular view or check if that view is already focused. The usage is effortless.
swiftwithmajid.com/2021/08/24/m...
swiftwithmajid.com/2021/08/24/m...
November 11, 2025 at 10:58 AM
SwiftUI provides the FocusState property wrapper that works on all Apple platforms and allows us to focus on a particular view or check if that view is already focused. The usage is effortless.
swiftwithmajid.com/2021/08/24/m...
swiftwithmajid.com/2021/08/24/m...
Background Tasks framework allows you to schedule work intelligently in the background. We can handle background tasks using the SwiftUI app lifecycle.
swiftwithmajid.com/2022/07/06/b...
swiftwithmajid.com/2022/07/06/b...
November 10, 2025 at 10:58 AM
Background Tasks framework allows you to schedule work intelligently in the background. We can handle background tasks using the SwiftUI app lifecycle.
swiftwithmajid.com/2022/07/06/b...
swiftwithmajid.com/2022/07/06/b...
The SwiftUI framework introduced the onGeometryChange view modifier, which is backward compatible with iOS 16, macOS 13, tvOS 16, watchOS 9, and visionOS 1. It allows us to track geometry changes of any view in SwiftUI.
swiftwithmajid.com/2024/08/13/t...
swiftwithmajid.com/2024/08/13/t...
November 7, 2025 at 10:57 AM
The SwiftUI framework introduced the onGeometryChange view modifier, which is backward compatible with iOS 16, macOS 13, tvOS 16, watchOS 9, and visionOS 1. It allows us to track geometry changes of any view in SwiftUI.
swiftwithmajid.com/2024/08/13/t...
swiftwithmajid.com/2024/08/13/t...
Reposted by Majid Jabrayilov
FUCK YEAH!!!
tapbots.com/phoenix/
tapbots.com/phoenix/
Phoenix for Bluesky
A Bluesky client based on the award-winning Twitter app for iOS.
tapbots.com
November 6, 2025 at 3:51 AM
FUCK YEAH!!!
tapbots.com/phoenix/
tapbots.com/phoenix/
Reposted by Majid Jabrayilov
Explore SwiftUI APIs for customizing scroll behavior, including paging and view-aligned snapping, and learn what to watch out for to avoid unexpected results: nilcoalescing.com/blog/ScrollV...
#SwiftUI #iOSDev
#SwiftUI #iOSDev
ScrollView snapping in SwiftUI
Explore SwiftUI APIs for customizing scroll behavior, including paging and view-aligned snapping, and learn what to watch out for to avoid unexpected results.
nilcoalescing.com
November 5, 2025 at 8:50 PM
Explore SwiftUI APIs for customizing scroll behavior, including paging and view-aligned snapping, and learn what to watch out for to avoid unexpected results: nilcoalescing.com/blog/ScrollV...
#SwiftUI #iOSDev
#SwiftUI #iOSDev
All we need to play haptic feedback in a SwiftUI view is to attach the sensoryFeedback view modifier with two parameters. The first defines a feedback style, and the second is a trigger value.
swiftwithmajid.com/2023/10/10/s...
swiftwithmajid.com/2023/10/10/s...
November 5, 2025 at 10:26 AM
All we need to play haptic feedback in a SwiftUI view is to attach the sensoryFeedback view modifier with two parameters. The first defines a feedback style, and the second is a trigger value.
swiftwithmajid.com/2023/10/10/s...
swiftwithmajid.com/2023/10/10/s...
Reposted by Majid Jabrayilov
I've published a new video! I shared some tips for implementing Dynamic Type support in SwiftUI apps, covering system and custom fonts, ScaledMetric API, and dynamicTypeSize environment value: youtu.be/wflWj5l7wlk
#SwiftUI #iOSDev #Accessibility
#SwiftUI #iOSDev #Accessibility
Tips for Supporting Dynamic Type in SwiftUI Apps
YouTube video by Nil Coalescing
youtu.be
November 5, 2025 at 7:42 AM
I've published a new video! I shared some tips for implementing Dynamic Type support in SwiftUI apps, covering system and custom fonts, ScaledMetric API, and dynamicTypeSize environment value: youtu.be/wflWj5l7wlk
#SwiftUI #iOSDev #Accessibility
#SwiftUI #iOSDev #Accessibility
Reposted by Majid Jabrayilov
I can't believe it's November, and you know what that means - it's almost time for Indie App Sales!
If you're an Indie Developer, submissions are officially open for our Black Friday Event! Please share!
indieappsales.com
#IndieAp#IndieAppSales
If you're an Indie Developer, submissions are officially open for our Black Friday Event! Please share!
indieappsales.com
#IndieAp#IndieAppSales
Indie App Sales - Black Friday '25 Edition
Discover amazing apps from indie developers at exclusive discounts. Nov 28-Dec 3, 2025. From productivity tools to creative software, find hidden gems at unbeatable prices!
indieappsales.com
November 3, 2025 at 1:13 PM
I can't believe it's November, and you know what that means - it's almost time for Indie App Sales!
If you're an Indie Developer, submissions are officially open for our Black Friday Event! Please share!
indieappsales.com
#IndieAp#IndieAppSales
If you're an Indie Developer, submissions are officially open for our Black Friday Event! Please share!
indieappsales.com
#IndieAp#IndieAppSales
Reposted by Majid Jabrayilov
The 26.1 Apple OS updates are out!
Here's our overview of what's new in iOS, iPadOS, and macOS 26.1: www.macstories.net/news/apple-r...
Here's our overview of what's new in iOS, iPadOS, and macOS 26.1: www.macstories.net/news/apple-r...
Apple Releases 26.1 Updates to Its Operating Systems
Today, Apple released version 26.1 of its full family of OSes. Every platform received attention, including the proverbial “bug fixes and feature enhancements,” but it was iOS 26.1 and iPadOS 26.1 tha...
www.macstories.net
November 3, 2025 at 9:21 PM
The 26.1 Apple OS updates are out!
Here's our overview of what's new in iOS, iPadOS, and macOS 26.1: www.macstories.net/news/apple-r...
Here's our overview of what's new in iOS, iPadOS, and macOS 26.1: www.macstories.net/news/apple-r...
Swift gives you everything you need to build a type-safe networking layer — enums, phantom types, extensions, etc.
swiftwithmajid.com/2021/02/10/b...
swiftwithmajid.com/2021/02/10/b...
November 3, 2025 at 11:59 AM
Swift gives you everything you need to build a type-safe networking layer — enums, phantom types, extensions, etc.
swiftwithmajid.com/2021/02/10/b...
swiftwithmajid.com/2021/02/10/b...
I highly recommend this talk by Apple. While writing SwiftUI code is relatively easy, optimizing it has become increasingly challenging in recent times.
www.youtube.com/live/yXAQTIK...
www.youtube.com/live/yXAQTIK...
Optimize your app's speed and efficiency | Meet with Apple
Join us online to learn how to elevate your app experience by maximizing performance and resolving inefficiencies. Whether you’re optimizing an existing app ...
www.youtube.com
October 31, 2025 at 4:21 PM
I highly recommend this talk by Apple. While writing SwiftUI code is relatively easy, optimizing it has become increasingly challenging in recent times.
www.youtube.com/live/yXAQTIK...
www.youtube.com/live/yXAQTIK...
Reposted by Majid Jabrayilov
Here's the YouTube link for the Apple Developer event:
Optimize your app's speed and efficiency | Meet with Apple
www.youtube.com/watch?v=yXAQ...
#AppleDeveloper #iOSDev #SwiftUI
Optimize your app's speed and efficiency | Meet with Apple
www.youtube.com/watch?v=yXAQ...
#AppleDeveloper #iOSDev #SwiftUI
Optimize your app's speed and efficiency | Meet with Apple
YouTube video by Apple Developer
www.youtube.com
October 30, 2025 at 7:24 PM
Here's the YouTube link for the Apple Developer event:
Optimize your app's speed and efficiency | Meet with Apple
www.youtube.com/watch?v=yXAQ...
#AppleDeveloper #iOSDev #SwiftUI
Optimize your app's speed and efficiency | Meet with Apple
www.youtube.com/watch?v=yXAQ...
#AppleDeveloper #iOSDev #SwiftUI
Reposted by Majid Jabrayilov
TIL the @.Observable macro doesn't trigger updates for equatable properties starting with iOS 26. But for prior releases, we have to manually check equality for the object properties to improve our app performances.
Thank you for the tip Steven!
Thank you for the tip Steven!
October 30, 2025 at 6:37 PM
TIL the @.Observable macro doesn't trigger updates for equatable properties starting with iOS 26. But for prior releases, we have to manually check equality for the object properties to improve our app performances.
Thank you for the tip Steven!
Thank you for the tip Steven!
The Accelerate framework contains a collection of APIs for digital signal processing called vDSP. It provides tons of highly optimized functions for operations on large data collections.
swiftwithmajid.com/2025/05/13/o...
swiftwithmajid.com/2025/05/13/o...
October 30, 2025 at 10:23 AM
The Accelerate framework contains a collection of APIs for digital signal processing called vDSP. It provides tons of highly optimized functions for operations on large data collections.
swiftwithmajid.com/2025/05/13/o...
swiftwithmajid.com/2025/05/13/o...
For modern apps targeting iOS 16 and above, I recommend building the core of the app using SwiftUI and incorporating UIKit in certain parts where SwiftUI’s performance may not meet your expectations, like using compositional layout with collection views.
swiftwithmajid.com/2025/03/04/s...
swiftwithmajid.com/2025/03/04/s...
SwiftUI Performance - How to use UIKit
Nowadays, Apple platform development has undergone significant changes. Previously, we believed that building the core of an app around UIKit and using SwiftUI for certain screens was a good idea.…
swiftwithmajid.com
October 27, 2025 at 9:33 AM
For modern apps targeting iOS 16 and above, I recommend building the core of the app using SwiftUI and incorporating UIKit in certain parts where SwiftUI’s performance may not meet your expectations, like using compositional layout with collection views.
swiftwithmajid.com/2025/03/04/s...
swiftwithmajid.com/2025/03/04/s...
Reposted by Majid Jabrayilov
Reposted by Majid Jabrayilov
I've been trying to use Jujutsu lately and I wanted to write about how I transitioned from my Git workflow. I hope you find it useful!
baxter.sh/adopting-juj...
#jj-vcs
baxter.sh/adopting-juj...
#jj-vcs
Adopting Jujutsu
I’ve always loved the safety net that a VCS like Git provides, but I’ve never loved git’s user interface/experience, nor the mental model that I’ve tried to hold in my head while I’m using it. Jujutsu...
baxter.sh
October 24, 2025 at 11:22 AM
I've been trying to use Jujutsu lately and I wanted to write about how I transitioned from my Git workflow. I hope you find it useful!
baxter.sh/adopting-juj...
#jj-vcs
baxter.sh/adopting-juj...
#jj-vcs
Jujutsu VCS differs from Git in several ways, including the absence of a staging area and automatic rebases. The community has several popular workflows, and this week, I’ll discuss my daily workflow, called the edit workflow.
swiftwithmajid.com/2025/10/22/i...
swiftwithmajid.com/2025/10/22/i...
Introducing Jujutsu VCS. Edit Workflow.
The absence of a staging area and automatic rebases makes our usage of Jujutsu VCS significantly different from what we used to do in Git. There are several popular workflows within the Jujutsu VCS…
swiftwithmajid.com
October 23, 2025 at 8:30 AM
Jujutsu VCS differs from Git in several ways, including the absence of a staging area and automatic rebases. The community has several popular workflows, and this week, I’ll discuss my daily workflow, called the edit workflow.
swiftwithmajid.com/2025/10/22/i...
swiftwithmajid.com/2025/10/22/i...
Reposted by Majid Jabrayilov
Your SwiftUI views keep growing.
You tidy up with extensions, but it still feels messy.
How do you scale SwiftUI without chaos?
Here’s how I approach clean, reusable architecture 👇
https://www.avanderlee.com/swiftui/swiftui-architecture-structure-views-for-reusability-and-clarity/
You tidy up with extensions, but it still feels messy.
How do you scale SwiftUI without chaos?
Here’s how I approach clean, reusable architecture 👇
https://www.avanderlee.com/swiftui/swiftui-architecture-structure-views-for-reusability-and-clarity/
October 22, 2025 at 8:29 AM
Your SwiftUI views keep growing.
You tidy up with extensions, but it still feels messy.
How do you scale SwiftUI without chaos?
Here’s how I approach clean, reusable architecture 👇
https://www.avanderlee.com/swiftui/swiftui-architecture-structure-views-for-reusability-and-clarity/
You tidy up with extensions, but it still feels messy.
How do you scale SwiftUI without chaos?
Here’s how I approach clean, reusable architecture 👇
https://www.avanderlee.com/swiftui/swiftui-architecture-structure-views-for-reusability-and-clarity/
The ViewThatFits view is easy to use. You don’t need to measure space or calculate if a view fits. Simply create an instance and place children views. It automatically measures space and children’s sizes and selects the first fitting view.
swiftwithmajid.com/2022/07/26/v...
swiftwithmajid.com/2022/07/26/v...
October 22, 2025 at 9:16 AM
The ViewThatFits view is easy to use. You don’t need to measure space or calculate if a view fits. Simply create an instance and place children views. It automatically measures space and children’s sizes and selects the first fitting view.
swiftwithmajid.com/2022/07/26/v...
swiftwithmajid.com/2022/07/26/v...
Here is the solution. Thanks to @natpanferova.bsky.social
October 20, 2025 at 8:33 PM
Here is the solution. Thanks to @natpanferova.bsky.social
The Container view API in SwiftUI enables you to restructure views. I was attempting to construct a dashboard view that accepts a view hierarchy and redefines it within a grid using my custom logic.
swiftwithmajid.com/2024/10/01/m...
swiftwithmajid.com/2024/10/01/m...
October 20, 2025 at 9:47 AM
The Container view API in SwiftUI enables you to restructure views. I was attempting to construct a dashboard view that accepts a view hierarchy and redefines it within a grid using my custom logic.
swiftwithmajid.com/2024/10/01/m...
swiftwithmajid.com/2024/10/01/m...
How to place toolbar buttons on the leading and trailing of the search bar?
October 20, 2025 at 9:39 AM
How to place toolbar buttons on the leading and trailing of the search bar?
Reposted by Majid Jabrayilov
Buttons inside a SwiftUI List row can cause the entire row to become tappable and trigger multiple buttons at once, but applying a specific button style ensures each button works independently: nilcoalescing.com/blog/Multipl...
#SwiftUI #iOSDev
#SwiftUI #iOSDev
Multiple buttons in SwiftUI List rows
Buttons inside a List row can cause the entire row to become tappable and trigger multiple buttons at once, but applying a specific button style ensures each button works independently.
nilcoalescing.com
October 18, 2025 at 11:13 PM
Buttons inside a SwiftUI List row can cause the entire row to become tappable and trigger multiple buttons at once, but applying a specific button style ensures each button works independently: nilcoalescing.com/blog/Multipl...
#SwiftUI #iOSDev
#SwiftUI #iOSDev
Reposted by Majid Jabrayilov