Majid Jabrayilov
@mecid.bsky.social
📤 1717
📥 586
📝 515
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
over 1 year ago
2
32
1
CloudKit lets you add cloud storage and sync to your iOS apps without running your own backend. Learn how to enable CloudKit, work with databases, save records, and query data in this beginner guide.
swiftwithmajid.com/2022/03/22/g...
1 day ago
0
5
0
I prefer to keep my feature’s navigation flow centralized. The Navigator pattern allows me to handle navigation safely. Implementing it is effortless with SwiftUI’s new data-driven Navigation API.
swiftwithmajid.com/2022/06/15/m...
2 days ago
0
8
1
Why is a good app architecture essential when using coding agents? Coding agents have limited context windows and cannot store everything in memory. A well-defined architecture with clear boundaries is necessary to constrain the capabilities of your coding agent.
swiftwithmajid.com/2023/07/11/u...
loading . . .
Unidirectional flow in Swift
This week I will talk about the state management approach I have used in my apps for years. We will cover building a predictable, testable, debuggable, and modular state management system in Swift.
https://swiftwithmajid.com/2023/07/11/unidirectional-flow-in-swift/
3 days ago
0
0
0
So, why do we pay the same LLM to write code, and pay again to find bugs? Why can’t the same LLM write bug-free code when it already knows what problems exist in code?
3 days ago
1
4
0
Action-based ViewModels create a clear contract: routing all mutations through a single method gives you centralized logging, easier testing, and a documented API of what your ViewModel actually does.
www.infoq.com/articles/kot...
loading . . .
Borrowing from Kotlin/Android to Architect Scalable iOS Apps in SwiftUI
Building iOS apps can feel like stitching together guidance from blog posts and Apple samples, which are rarely representative of how production architectures grow and survive. In contrast, the…
https://www.infoq.com/articles/kotlin-scalable-swiftui-patterns/
4 days ago
0
4
0
How do you model errors in Swift? I use three principles described in “A philosophy of software design” book written by John Ousterhout: 1. Define errors out of existence 2. Mask exception 3. Error aggregation
swiftwithmajid.com/2022/05/11/m...
loading . . .
Modeling errors in Swift
The new Swift Concurrency feature doesn’t only bring new opportunities for writing safer and more maintainable async code but also changes the way we handle errors. I didn’t use throw-catch keywords…
https://swiftwithmajid.com/2022/05/11/modeling-errors-in-swift/
5 days ago
0
4
0
SwiftUI provides the Layout protocol allowing us to build super-custom layouts by digging into the layout system without using GeometryReader. Layout protocol brings us the incredible power of building and reusing any layout you can imagine.
swiftwithmajid.com/2022/11/16/b...
8 days ago
0
8
1
The TipKit framework provides the
#Rule
macro, which allows us to define dynamic rules based on the app state. You can define many parameters and build complex rules using many of them. The rules property of the Tip protocol uses the RuleBuilder result builder.
swiftwithmajid.com/2024/05/15/d...
9 days ago
0
3
0
Modular app structure allows your coding agent easier to follow your separation of concerns. This structure simplifies navigation within the source code and optimizes token usage.
swiftwithmajid.com/2022/01/12/m...
11 days ago
1
2
1
The safeAreaInset view modifier is another way to manage the safe area of the view. The safeAreaInset view modifier allows you to shift the safe area of the view by placing another view inside the original safe area of the view.
swiftwithmajid.com/2021/11/03/m...
12 days ago
0
4
1
Xcode 26.3 is now available for download. Your agent can reason about your codebase, access documentation, run previews, and align implementation with design intent — all within Xcode. If you haven’t started using agentic coding yet, it’s time to get started.
swiftwithmajid.com/2026/02/10/a...
loading . . .
Agentic coding in Xcode
Apple has finally released Xcode 26.3, which now supports agentic coding. In this article, I’ll guide you through configuring Xcode 26.3 and utilizing the latest best practices when using agentic…
https://swiftwithmajid.com/2026/02/10/agentic-coding-in-xcode/
15 days ago
1
4
2
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...
16 days ago
0
3
0
I’m developing an app that utilizes three distinct Large Language Models: 1. OpenAI API for image recognition. 2. Apple Foundation Models for on-device personalization and recommendations. 3. Image Playgrounds for on-device image generation based on user data.
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/
17 days ago
2
6
2
SwiftUI has ContentUnavailableView type, allowing us to display empty, error states or any other state where content is unavailable in our apps. It allows us also display action buttons below the description.
swiftwithmajid.com/2023/10/31/m...
18 days ago
1
6
1
I’m continuing to develop AI-generated content within my applications, this time focusing on image generation. The Image Playground framework offers a text-to-image functionality, and the core component of this framework is the ImageCreator type.
swiftwithmajid.com/2025/11/11/g...
22 days ago
0
4
0
SwiftUI provides us the keyboardShortcut modifier that we can attach to any view in the view hierarchy and define a keyboard shortcut. Pressing the defined keyboard shortcut is the equivalent to direct interaction with the view to perform its primary action.
swiftwithmajid.com/2020/11/17/k...
23 days ago
0
5
2
TimelineView, a SwiftUI view type, updates its body according to a schedule. Unlike other SwiftUI views that update on data changes, TimelineView allows for a custom schedule to precisely update its content.
swiftwithmajid.com/2022/05/18/m...
25 days ago
0
9
1
As a trunk-based development fan, feature flags are vital for me. Every recent feature I work on has a feature flag for debug and TestFlight builds. Since I merge branches even when features aren’t fully implemented, I use feature flags to disable them.
swiftwithmajid.com/2025/09/16/f...
26 days ago
0
5
0
Another task view modifier allows observing equitable data and running the async task whenever it changes. The task lifecycle is still tied to the view lifecycle, but SwiftUI cancels the ongoing job and creates a new one when id changes.
swiftwithmajid.com/2022/06/28/t...
29 days ago
0
6
1
Using coding agents doesn’t mean you should solely rely on their code. Define your boundaries to achieve better results. The Functional Core - Imperative Shell approach allows me to get nice code from agents.
swiftwithmajid.com/2022/03/16/f...
loading . . .
Functional core Imperative shell in Swift. Unidirectional Flow.
A few weeks ago, we talked about the idea of Functional core and Imperative shell in Swift. The goal is to extract the pure logic using value types and keep side effects in the thin object layer.…
https://swiftwithmajid.com/2022/03/16/functional-core-imperative-shell-in-swift-unidirectional-flow/
about 1 month ago
0
4
1
reposted by
Majid Jabrayilov
Snapp iOS Weekly
about 1 month ago
📦 𝑂𝑛-𝑑𝑒𝑚𝑎𝑛𝑑 𝑟𝑒𝑠𝑜𝑢𝑟𝑐𝑒𝑠 𝑖𝑛 𝑖𝑂𝑆 𝑎𝑝𝑝 by Majid Jabrayilov (
@mecid.bsky.social
) Ever thought about keeping API tokens out of your app binary? On-Demand Resources offer a clever defense-in-depth technique worth exploring.
#iOS
#Security
#Swift
#Framework
swiftwithmajid.com/2026/02/03/o...
loading . . .
On-demand resources in iOS app
On-Demand Resources allow you to ship a smaller initial app download and fetch additional assets like images, sounds, level data, ML models, and more only when a user requires them. This week, we’ll…
https://swiftwithmajid.com/2026/02/03/on-demand-resources-in-ios-app/
0
2
1
Apple has finally released Xcode 26.3, which now supports agentic coding. In this article, I’ll guide you through configuring Xcode 26.3 and utilizing the latest best practices when using agentic tools for building apps on Apple platforms.
swiftwithmajid.com/2026/02/10/a...
loading . . .
Agentic coding in Xcode
Apple has finally released Xcode 26.3, which now supports agentic coding. In this article, I’ll guide you through configuring Xcode 26.3 and utilizing the latest best practices when using agentic…
https://swiftwithmajid.com/2026/02/10/agentic-coding-in-xcode/
about 1 month ago
0
5
0
SwiftUI introduced a view modifier called visualEffect. This modifier allows us to attach a set of animatable visual effects by accessing layout information of the particular view. Here is the example of sticky header view that can be placed in a scroll view.
swiftwithmajid.com/2023/11/07/v...
about 1 month ago
0
7
1
SwiftUI allows us to maintain the structural identity of our view while changing the layout container using the new AnyLayout type. This type erases the layout type that depends on the current dynamic type size, preserving the structural identity of our view.
swiftwithmajid.com/2022/08/16/c...
about 1 month ago
0
7
2
reposted by
Majid Jabrayilov
Donny Wals 👾
about 1 month ago
Was reminded today that this exists; smart banners to redirect your users to your app from your website. Easy to add, helps with conversion 👍
https://maxine-app.com
0
2
1
I’ve noticed that the infinite thinking issue occurs occasionally when using Codex-5.3 in Xcode. Do you experience the same problem?
add a skeleton here at some point
about 1 month ago
1
0
0
Whenever you have installed the latest Codex on your Mac. You can make it available for Xcode. ln -sf $(which codex) ~/Library/Developer/Xcode/CodingAssistant/Agents/Versions/26.3/codex
about 1 month ago
0
0
3
I’m not a fan of vibecoding, but since I’m a big fan of pair programming, I work in pairs with Codex.
about 1 month ago
0
3
0
I’ve been using Codex from the very beginning, exclusively from the terminal. However, I’ve come to genuinely enjoy having it integrated into Xcode. It feels more intuitive to review the code it generates. It’s akin to pair programming, which I thoroughly enjoyed.
about 1 month ago
0
7
1
There are three tag types: initial install, prefetched, and download-only. Prefetched and initial install tags are downloaded from the App Store with the app binary. Download-only tags are downloaded only via an API, but their usage is the same.
swiftwithmajid.com/2026/02/03/o...
about 1 month ago
0
2
0
reposted by
Majid Jabrayilov
Juanjo Valiño
about 1 month ago
I made this onboarding before Claude Code or Codex existed. I made it open source on GitHub, so take it if you want.
loading . . .
0
6
2
reposted by
Majid Jabrayilov
John Haney ᯅ
about 1 month ago
Happy 26.3 Release Candidate day, everyone! iOS, visionOS, macOS, tvOS, watchOS are available
0
1
1
reposted by
Majid Jabrayilov
Dmitry iOS Suomi
about 1 month ago
Modular at Scale: Structuring 250+ Modules Across the adidas iOS App Ecosystem
www.youtube.com/watch?v=Rc-S...
loading . . .
Modular at Scale: How We Structured 250+ Modules Across the adidas Apps Ecosystem - Eduardo Sanches
YouTube video by NSSpain
https://www.youtube.com/watch?v=Rc-S9RnDuLI
0
1
1
Xcode 26.3 unlocks the power of agentic coding. Developers can leverage coding agents, including Anthropic’s Claude Agent and OpenAI’s Codex, directly in Xcode to tackle complex tasks autonomously, helping them develop apps faster than ever.
www.apple.com/newsroom/202...
loading . . .
Xcode 26.3 unlocks the power of agentic coding
Xcode 26.3 introduces support for agentic coding, a new way in Xcode for developers to build apps, powered by coding agents from Anthropic and OpenAI.
https://www.apple.com/newsroom/2026/02/xcode-26-point-3-unlocks-the-power-of-agentic-coding/
about 1 month ago
1
6
1
On-Demand Resources allow you to ship a smaller app download and fetch additional assets like images, level data, ML models, etc only when a user requires them. This week, we’ll explore how to utilize on-demand resources to store secrets outside of the app binary.
swiftwithmajid.com/2026/02/03/o...
loading . . .
On-demand resources in iOS app
On-Demand Resources allow you to ship a smaller initial app download and fetch additional assets like images, sounds, level data, ML models, and more only when a user requires them. This week, we’ll…
https://swiftwithmajid.com/2026/02/03/on-demand-resources-in-ios-app/
about 1 month ago
0
2
0
reposted by
Majid Jabrayilov
Florian
about 1 month ago
If you want to learn more about the new agentic coding features in Xcode 26.3, here’s a short tech talk by Apple:
developer.apple.com/videos/play/...
#iOSDev
#SwiftUI
loading . . .
Meet agentic coding in Xcode - Tech Talks - Videos - Apple Developer
Discover how Xcode 26.3 seamlessly integrates coding agents like OpenAI Codex and Claude Agent to work together on complex, multi-step...
https://developer.apple.com/videos/play/tech-talks/111428/
0
3
1
reposted by
Majid Jabrayilov
Matt | ShipThat.App
about 1 month ago
nice list of tools available in Apple Offical MCP for Xcode
1
2
2
reposted by
Majid Jabrayilov
MacStories
about 1 month ago
Apple’s Xcode 26.3 Release Candidate Adds Agentic Coding Tools for Developers
https://www.macstories.net/news/apples-xcode-26-3-release-candidate-adds-agentic-coding-tools-for-developers/
loading . . .
Apple’s Xcode 26.3 Release Candidate Adds Agentic Coding Tools for Developers
The Release Candidate of Xcode 26.3 is rolling out as we publish this with brand new agentic coding capabilities. With the update, developers can connect to either OpenAI's Codex or Anthropic's Claude Agent to assist their development work. The agent sits in Xcode's sidebar where developers can use it to plan new features, implement them,
https://www.macstories.net/news/apples-xcode-26-3-release-candidate-adds-agentic-coding-tools-for-developers/
0
4
2
SwiftUI provides us the fileImporter view modifier allowing us to enable file-picking user experience easily. It completely handles the dialog and navigation between folders.
swiftwithmajid.com/2023/05/10/f...
about 1 month ago
0
6
1
How often do you create custom FormatStyle types? I use it even for formatting my custom data models.
swiftwithmajid.com/2023/07/04/m...
about 1 month ago
0
4
1
What’s the easiest way to make a view fit its parent? The new containerRelativeFrame view modifier lets us set the view’s frame relative to its parent. It offers many customization options, but here’s the simplest one.
swiftwithmajid.com/2025/01/28/c...
about 2 months ago
0
6
1
MetricKit helped me understand my app’s background memory usage and identify reasons for system pressure terminations. I then made changes to reduce background memory usage, keeping my app active without system termination.
swiftwithmajid.com/2025/12/09/m...
about 2 months ago
0
5
0
You can effortlessly create a reusable parallax header in SwiftUI using the onGeometryChange view modifier. All you need to do is track its offset and gradually slow it down as you scroll.
swiftwithmajid.com/2024/08/13/t...
about 2 months ago
0
11
1
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...
about 2 months ago
0
5
1
SwiftUI’s matchedGeometryEffect view modifier simplifies hero animations. Attaching it to multiple views establishes a connection, allowing SwiftUI to understand the geometry of transitions and apply shape, position, and size transformations automatically.
swiftwithmajid.com/2020/12/17/h...
about 2 months ago
0
4
0
SceneStorage property wrapper stores values in the memory allocated by the current scene, creating private storage accessible only to that scene. The system manages per-scene storage, and access to data requires the SceneStorage property wrapper.
swiftwithmajid.com/2022/03/10/s...
about 2 months ago
0
7
0
UIHostingConfiguration is a new type of UITableViewCell or UICollectionViewCell configuration allowing us to embed SwiftUI views into a cell, but still use the performant dequeuing capabilities of the UICollectionView.
swiftwithmajid.com/2025/03/04/s...
about 2 months ago
0
7
1
reposted by
Majid Jabrayilov
Peter Friese
about 2 months ago
If you’re not yet using worktrees - you should! Marco Haber explains why they make it super easy to switch between branches without stashing:
www.marcohaber.dev/blog/git-wo...
Curated in this week's
#not-only-swift
loading . . .
Understanding Git Worktrees
A practical guide to Git worktrees: mental model, real scenarios, and why it matters for AI-powered workflows.
https://www.marcohaber.dev/blog/git-worktrees
1
4
2
Empty and error states are part of almost every app, yet they’re often an afterthought. I explore ContentUnavailableView in SwiftUI and show how it helps you design clearer, more expressive fallback states with less code.
swiftwithmajid.com/2023/10/31/m...
about 2 months ago
0
6
0
That’s shame. We have framework for tips, but we don’t have an easy way to capture a photo.
about 2 months ago
0
2
0
Load more
feeds!
log in