Skip to content
← All topics
Topics

iOS

Every article on iOS published on this blog, newest first: 8 in total, written by Ramón Chancay.

8 articles on iOS

Illustration of an app in the center surrounded by system surfaces: a widget, a dynamic island, a watch and a local model symbol, all connected to it
Mobile13 Sep 202617 min read

What you can only do in native: WidgetKit, Live Activities, App Intents, StoreKit 2, Foundation Models and watchOS

The iOS capabilities React Native does not offer and that justify Swift to a client: WidgetKit, Live Activities, App Intents and Siri, StoreKit 2, the on-device language model with Foundation Models and watchOS. Series close and sales argument.

Read more
Illustration of a table of cases where each row is compared against a reference, next to a stopwatch that represents build time
Mobile12 Sep 202616 min read

iOS testing and tooling for seniors: Swift Testing, snapshots, mocks, Instruments and build times

How to test an iOS app coming from Jest and Testing Library: Swift Testing versus XCTest, snapshot testing, mocks via protocols and URLProtocol without jest.mock, XCUITest versus Maestro, Instruments, SwiftLint and modularizing to cut build times.

Read more
Illustration of a row of small modules on the left connected one to one with system blocks on the right, with one block marked as the main one
Mobile9 Sep 202617 min read

From the expo-* ecosystem to Apple frameworks: the equivalence table by domain

Which Apple framework replaces each expo-* package when you move from React Native to native iOS: camera, location, authentication, payments, notifications, files and more, with the Info.plist permissions and the silent crash everyone hits once.

Read more
Illustration of three stacked storage layers, with a separate sealed box representing the Keychain and a cloud syncing with the main layer
Mobile8 Sep 202614 min read

iOS persistence: SwiftData, GRDB and Keychain, and why Realm is no longer an option

How to choose between SwiftData, GRDB and Core Data to persist data in an iOS app, why Realm stopped being an option, why the Keychain survives uninstalling, and how to design offline-first and sync with CloudKit.

Read more
Illustration of several tasks running in parallel inside one frame and converging on a single exit point, with an isolated actor to one side
Mobile7 Sep 202616 min read

Swift concurrency: goodbye event loop. async let, TaskGroup, actors and Swift 6

Swift Concurrency for people coming from JavaScript: why there is no event loop, how async let and TaskGroup replace Promise.all, what actors and @MainActor are, what Sendable requires and why in Swift 6 a data race is a compile error.

Read more
Illustration of a view tree where each node proposes a size to its children and receives an answer, with a main path highlighted
Mobile3 Sep 202616 min read

SwiftUI is not React, even if it looks like it: body, identity, modifiers and layout

SwiftUI explained for people coming from React: what body is compared to render, why a view's identity matters, how modifier order changes the result, the layout system without flexbox and the map from hooks to property wrappers.

Read more
Illustration of two type systems: a shape that gets copied as it passes from hand to hand and another that is shared by reference, with a container that may be empty
Mobile2 Sep 202617 min read

Swift for people who already master TypeScript: the five differences that change how you design

Swift explained for TypeScript developers: value vs reference semantics, optionals as part of the type system, enums with associated data, protocols with extensions, and Codable instead of zod.

Read more
Illustration of two paths leaving the same point: one covers two platforms with a single layer and the other reaches the system's capabilities directly
Mobile1 Sep 202617 min read

Why a senior React Native developer should learn native in 2026

When native iOS beats React Native (widgets, day-one APIs, on-device ML), when it loses (two platforms, OTA, team) and why learning Swift adds to your toolkit instead of replacing it.

Read more