Skip to content
Nadir Ben SalahFrançaisCVGet in touch

Eight apps on the App Store, four with native Swift modules

Most React Native work stops where iOS begins.

Live Activities, the Dynamic Island, App Intents, widgets, a Watch companion. None of them have a JavaScript equivalent, and that is usually where a project stalls. I write the Swift, bridge it properly, and ship it through App Review. AI agents speed up the work; I scope them, and I sign off on every change.

Remote from France · CET: same hours as London plus one, four hours of overlap with New York

The short version

Most React Native work stops where iOS begins. Live Activities, the Dynamic Island, App Intents, widgets, a Watch companion: none of them have a JavaScript equivalent, and that is usually where a project stalls. I write the Swift, wire it to the React Native side, and ship it through App Review. Twice I decided the bridge was not worth paying for, and wrote the whole app in Swift.

Why me

Shipping is a separate job from building.

Plenty of developers write code. The work really starts when it has to reach somebody's phone.

I write the native layer

Six of my published apps contain Swift I wrote, and two are written in Swift from top to bottom: ActivityKit for Live Activities, App Intents for Siri and the Control Center, WidgetKit, SwiftData, a SwiftUI Watch app. That is the part most React Native teams outsource or abandon.

I ship through App Review

Signing, privacy questionnaire, screenshots, rejections and the replies that get them overturned. The gap between a working build and a live app is a job of its own, and it is where most projects stop.

I hold real constraints

A flight computer that makes no network calls, ever. A parking timer in 3.3 MB driving the Dynamic Island. A pet health record you can verify in airplane mode. The constraint is decided before the first line of code.

I work as a European contractor

Invoicing from France, one hour ahead of London, four hours of overlap with New York. No visa question, no agency in between, no intermediary reading your brief before I do.

The proof

Three apps, three things React Native cannot do alone.

A parking timer living in the Dynamic Island. A prayer app with a SwiftUI Watch companion and a Live Activity. A flight computer that makes no network call, ever.

Ticket

Navigation · live since 2 September 2026

You park, you tap a duration. That is all.

SwiftSwiftUIActivityKitApp IntentsWidgetKit+1

Qindil

Lifestyle · live since 20 August 2026

A Muslim app written in French. Free, no account, no server.

React NativeTypeScriptAudio natifSwiftUI (Watch)ActivityKit

Isogonic

Education · live since 13 August 2026

An E6B for pilots who want to understand the number, not just read it.

React NativeTypeScriptCalcul hors ligne
All eight apps

What I take on

Four kinds of work.

Native iOS features in a React Native app

Live Activities and the Dynamic Island, App Intents for Siri and the Control Center, home screen widgets, a Watch companion, NFC. Written in Swift, bridged properly, shipped.

Code audit

An independent read of your React Native codebase: architecture, performance, technical debt and App Store risk. A written report ordered by priority, with an effort estimate per item.

Taking over a stalled project

An app someone else started and left. I find out what is really there, what it costs to finish, and whether finishing is the right call. Sometimes it is not, and I say so.

Getting unblocked in App Review

Repeated rejections, a privacy questionnaire that contradicts the binary, a build that will not sign. These are known problems with known fixes.

Working with someone in France

The questions you were going to ask anyway.

You are in France. How do the hours work?
I am one hour ahead of London, so a UK working day is effectively the same day. With New York there are about four usable hours every afternoon. For Australia there is no honest answer, so I do not take that work.
How does invoicing work from outside the UK or US?
I invoice from France as a registered sole trader. For UK and US companies that is an ordinary international supplier invoice. No employer of record, no umbrella company, no payroll complication.
Is your English good enough for daily work?
Written English, yes, including code review, specs and documentation. Calls are fine. I will not pretend to be a native speaker, and if a role needs client-facing presentations in English every day, someone else is a better fit.
Can you take a full-time role remotely?
For a contract, yes, straightforwardly. For an employed role, a company outside France needs an employer of record, which most will not set up for one developer. Worth knowing before either of us spends time on it.
What do you not do?
Flutter, native Android as a specialism, backend at scale, game development, design from scratch. I also turn down projects where an app is not the right answer, which happens more often than you would think.

Tell me what you're building.

A stalled project, a native feature you can't get working, a codebase somebody left behind. I reply within a day, and I say so when it isn't for me.