Skip to content

Home / Hire engineers / iOS developer

An iOS developer builds your iPhone app in Swift, within Apple's rules and limits

Apple decides more of an iPhone app than it first appears: what App Review accepts, how subscriptions are sold, what a privacy manifest must declare and how long work may run once the app leaves the screen. Most teams need one developer who knows those rules before a build is rejected, writes current Swift and SwiftUI, and takes the app to widgets, Live Activities and Siri when the roadmap asks. That is the role we staff.


Profiles in three daysYou interview and chooseWithin 1 hour of CET

When to hire an iOS developer, and what they take on first.

The Swift may be fine and the app still stalls on something Apple controls. These six situations bring in an iOS specialist, each with the work the developer does first.

  1. Rejected by App Review again

    The build works, yet App Review keeps sending it back: no account deletion, unclear plans or no demo account.

    The work

    • Account deletion offered inside the app
    • Each plan's contents shown before purchase
    • A demo account and reviewer notes
  2. Privacy manifests to complete

    Your code or an SDK calls APIs that need a declared reason, and App Store Connect rejects uploads without one.

    The work

    • API uses traced in code and SDKs
    • An approved reason declared for each
    • Privacy labels matched to the report
  3. Subscriptions sold inside the app

    Plans, trials and upgrades go through Apple's purchase system, and your server has to hear about renewals and refunds.

    The work

    • Purchases moved to StoreKit 2
    • Server updated from App Store notifications
    • Upgrade and downgrade paths by tier
  4. Background work that iOS cuts short

    Uploads stop when the app leaves the screen and a nightly sync never finishes, because iOS limits background time.

    The work

    • Long uploads moved to background sessions
    • Heavy work scheduled while the phone charges
    • Expiry handled when background time ends
  5. Features outside the app itself

    The roadmap has a widget, a Live Activity or a Siri action, and each follows its own Apple rules.

    The work

    • Data shared with extensions via app groups
    • Live Activities for time-bound events
    • One App Intent for Siri and Shortcuts
  6. Swift 6 language mode on hold

    The project still builds in Swift 5 mode, because Swift 6 turns data-race warnings into errors across older code.

    The work

    • Complete concurrency checking switched on first
    • Swift 6 adopted target by target
    • Shared state given one owning actor

How an iOS change gets through to the App Store.

Five stages between a change in Xcode and the App Store. After the tests, every stage answers to Apple: its review rules, TestFlight's own review for outside testers and App Review for the release.

  1. 01

    Swift and SwiftUI

    Passed

    Written to the patterns your app already follows, against your minimum iOS version, and built with no new compiler warnings, concurrency warnings included.

    Xcode, SwiftUI, UIKit
  2. 02

    Tests

    Passed

    Logic tests in Swift Testing beside the existing XCTest suites, UI tests for sign-in and onboarding, and purchases run against a local StoreKit configuration file.

    Swift Testing, XCTest, StoreKit Testing
  3. 03

    Review-rule check

    Blocked

    Changes to purchases, sign-in, permissions or data collection are read against Apple's App Review Guidelines before a build is uploaded, not after a rejection.

    Xcode privacy report, Guideline checklist
  4. 04

    TestFlight

    Waiting

    Internal testers get each build at once. External groups get it after TestFlight's own review, and their feedback and crash reports come back in App Store Connect.

    TestFlight, App Store Connect
  5. 05

    App Store release

    Waiting

    Submitted with version notes and a demo account for App Review, then released by hand or on approval, with phased release for automatic updates.

    App Store Connect, Xcode Organizer

The Apple frameworks under the screens.

Apple's own frameworks cover most of what an iPhone app needs, so a third-party library comes in only where one falls short, and the reason is written down.

Modules and packages

Features split into local Swift packages, so each one builds and runs its tests without compiling the rest of the app.

  • SwiftPM
  • Tuist

Performance

Hangs and memory traced in Instruments before and after a change, and the daily MetricKit reports from users' phones read for what testing missed.

  • Instruments
  • MetricKit

Data on the device

Models stored with SwiftData or Core Data for offline use, and synced through iCloud where people expect their data on every device.

  • SwiftData
  • Core Data
  • CloudKit

Sign-in and secrets

Where Google or Facebook login is offered, a private option such as Sign in with Apple sits beside it, as Apple's guidelines require, and tokens stay in the Keychain.

  • Sign in with Apple
  • Keychain

Maps and location

Maps and location updates that ask for Always access only when a feature cannot work with When In Use permission.

  • MapKit
  • Core Location

Accessibility

Screens checked with VoiceOver and the largest Dynamic Type sizes, so labels, focus order and layouts hold up for people who rely on them.

  • VoiceOver
  • Dynamic Type

Seniority, and what each level owns

Levels differ in what a developer can resolve alone: a failing test, a rejection from App Review, or an Apple framework the app has to leave behind.

Mid · 3–5 years
Builds SwiftUI and UIKit screens the way the app already does, writes their tests and fixes what the compiler and test runs report. Purchase, sign-in and privacy code goes to a senior developer for review before it reaches TestFlight.
Senior · 5–8 years
Owns the purchase, sign-in and privacy code and signs off every change to it. Answers App Review when a build comes back, decides what a privacy manifest declares, and can move an app from UIKit to SwiftUI without stopping releases.
Lead · 8+ years
Decides how the app splits into packages and extensions, when it moves to Swift 6 and which Apple frameworks it adopts or leaves. Your CTO talks to this developer about the minimum iOS version and what each year's WWDC means for the roadmap.

AI-assisted iOS development, with a senior developer answering for every change.

Coding agents draft most screens, tests and boilerplate, but the Swift they learned from lags behind each year's frameworks and App Review's expectations. The developer checks every draft against today's APIs and decides the parts Apple judges: purchases, sign-in, permissions and what the app declares about privacy.

PR · yearly plan in the paywallDrafted with an agent

Example · StoreKit tests pass

  • Added Yearly plan beside monthlysame group
  • Changed Access from signed transactionsreplaces receipt
  • Added Listener for Transaction.updatesstarts at launch
  • Removed Restore Purchases buttonHuman decision

Restore button removed; the rules expect one

Senior iOS developerWalked the paywall as App Review wouldRestore required
Bring back Restore

Drafts moved onto current Swift APIs

Agents often reach for older patterns such as completion handlers and receipt parsing. The developer moves each draft onto async/await and signed transactions, within your minimum iOS version.

Leaked screens found in the memory graph

Closures and delegates an agent writes can keep a screen in memory after it closes. The developer opens Xcode's memory graph after each new flow to see what is still held.

What Apple requires stays a human call

Agents write purchase, sign-in and permission code quickly. Whether users still get what Apple requires, such as a way to restore past purchases, is decided by the developer.

From your requirements to matching developers in 3 working days.

You do not need to enter a long recruitment process before you know whether we have the right people.

Senior iOS developer

7 years · ImproveIT engineer

  • SwiftUI
  • UIKit
  • StoreKit 2
  • Swift concurrency
  • Instruments
English
C1
Overlap with CET
Full working day
Available
In two weeks
Rate
In the proposal

Recent projectRebuilt a Swedish mobility app in Swift

Example profile · day 3Propose interview times
01

Tell us what you need

Send the role, stack, seniority, required experience, working-hour overlap, team size, and expected start date.

02

Get matching profiles

Within three working days, we send relevant profiles with CVs, project experience, English level, availability, and rates.

03

Interview the developers yourself

Use your own technical interview and selection process. Meet the people who would actually join the team and reject anyone you are not confident about.

04

Start working together

Once you choose, we handle the contract and onboarding. Your developers join your repositories, standups, tooling, and delivery process.

Choose the engagement model that fits the gap.

You can hire software developers through an outsourcing model that matches how much ownership, capacity, and flexibility your team needs. Most clients start with one engineer and grow. Roles and stacks are further down the page.


01

Ad-hoc staff augmentation

One engineer or several, embedded in your team and managed by you. The most common way clients start with us.

Best for a named capability or capacity gap you already understand.

Speed
Profiles in 3 days
Pricing
Per hour
Managed by
You
02

Dedicated team

A complete team for a product, a module or a roadmap stream — engineering, QA, DevOps and design as the work needs it.

Best for stable delivery capacity without hiring every role in-house.

Speed
2–4 weeks to assemble
Pricing
Monthly per person
Managed by
You, or jointly with our lead
03

Recruitment

We recruit for a skill set we do not have on the bench, against your requirements, and the person joins on your contract.

Best for a niche stack, a rare seniority level, or a role you keep failing to fill locally.

Speed
2–4 weeks
Pricing
Per hire
Managed by
You
04

Build, operate, transfer

We hire and run the team in Poland or Ukraine, then hand it over to you as your own staff for direct contracts when you are ready.

Best for opening a development centre in Europe without setting one up yourself first.

Speed
3-4 weeks to build
Pricing
Monthly per person, plus a transfer fee
Managed by
Us, then you

The reason to outstaff is speed. The reason to stay is quality.

Netguru, a 500-person Polish consultancy whose own clients include UBS, has staffed projects with our engineers for more than 8 years. They could hire anyone.

Staff augmentationNetguru, 2018-ongoing

Read the Netguru case study
8+years

Netguru has staffed projects with our engineers

500+people

at Netguru, whose own clients include UBS

Where our engineers built and took over iOS apps.

Both were staff augmentation. UbiGo was an iPhone app our engineer rebuilt on their own; at Photoweb, the iOS app was one of the apps our team took over.

Mobility appUbiGo

A Swedish mobility app rebuilt from scratch in Swift after a review of its first version

1 engineerTeam
2020 - ongoingPeriod

UbiGo's app bundles car sharing, bike rental and public transport passes in a Swedish city. Its first version came from another team. After a thorough analysis the app was rebuilt from scratch, with our engineer advising on requirements.

Read the UbiGo case study
3days

From your requirements to matching profiles with CVs

90%

Of our developers have 5 to 20 years of experience

6years

Our longest continuous engagement, still running

10+

Time zones, with working hours flexed to match your team

What it is like to have our engineers on your team.

“I have worked with ImproveIT for more than 3 years, as a mobile product manager for Photoweb and now as a director of Piiics. In both, the technical challenge is quite high. The dev team has been highly motivated and professional.”

Clement PoursacPhotoweb Group · France

“We work with ImproveIT Solutions for years. Thanks to their support with new talents/developers we were able to proceed with many new projects. For sure we value their employees, we are happy to have them with us and we always do our best to keep them as long as we can in our projects.”

Barbara KucharczykNetguru · Poland

“Their attention to detail is great, and they question us if they think it might be better to solve the issue in a different way. They really care about the product they're building.”

Michael KolomenkinEyeToAi · Israel

“Their ability to advise and provide professional guidance made them a go-to partner. The engineering team demonstrated outstanding dedication and technical skills.”

Yannick BlondeauHotel-Spider · Switzerland

“They understand the needs and manage the project seamlessly. They stand out for their professionalism, skills, and the quality of the candidates they provide.”

Andrew NolanAnitech Solutions · Ireland

“Great app that works with functionality exactly like we want it. Internal stakeholders are particularly impressed with the quality of deliverables. They take ownership beyond their contractual obligations.”

Alok AlstromBeyond Liberum AB · Sweden

“Within one year we reached a 99% crash-free user ratio on both operating systems, which was one of our goals. Within two years we reworked all our apps and improved our conversion rate by 50%.”

Axel BouthorsPiiics · France

“All tasks are done on their side, they've always delivered on time, and their code quality is good. The developer assigned to us is always available.”

Luka SikicOnpreo GmbH · Germany

“We were very impressed with the wide range of experts. We've been able to significantly speed up the development of a number of our projects on a very reasonable budget.”

Martin Enderleintencio s.r.o · Czech Republic

“Exceptional service delivery: in-time, on-budget, with high quality and professional advice.”

Marcus ZedlerCamyylyon · Switzerland

“With a limited budget, we have been able to master 3 new tools: Rich Snippet, Rating-Widget, Survey. A good outcome that helped me and my lead frontend developer.”

Carsten SchaeferTrust · Germany

“Developers are experienced. They can discover the main potential issues and are able to solve them beforehand.”

Romain CoiraultLalalab · France

“A highly adaptive team that offers helpful insights and delivers work at reasonable rates.”

Didier GromaireCedemo · Monaco

Questions about hiring an iOS developer.

Will users be asked to allow tracking?

Only if the app, or an SDK inside it, collects data about people and shares it with other companies to track them across apps and websites. Apple then requires the App Tracking Transparency prompt first, and saying no may not cost anyone a feature, content or reward. The developer checks what each SDK does before App Review finds out for you.

Who answers for the SDKs inside the app?

You do, as far as Apple is concerned: an app is responsible for all the code its SDKs bring in. So the developer reads each SDK's privacy manifest before adding it, keeps the SDKs Apple lists on signed versions Xcode can verify, and removes the ones the app no longer uses.

Can a widget change without anyone opening the app?

Yes, within limits. A widget shows entries from a timeline the app prepares in advance, the app can ask for a reload when its data changes, and WidgetKit push notifications let your server prompt an update. Reloads count against a budget iOS sets to protect battery life, so the developer decides which changes are worth one.

Can our app appear in CarPlay?

Only in the kinds of app Apple supports there, among them audio, messaging and calling, navigation, EV charging, fuelling, parking, quick food ordering and driving tasks, and only once Apple grants the CarPlay entitlement you request. Where the app qualifies, the developer builds its CarPlay screens from Apple's templates. Widgets and Live Activities can appear in CarPlay without a CarPlay app.

How long does App Review take, and what if it rejects the build?

Apple reports that 90% of submissions are reviewed within 24 hours, though each rejection adds a round. The developer reads the guideline the rejection cites, replies in App Store Connect when the reviewer has missed something, and changes the build only when the rule applies. Expedited review is meant for critical bug fixes, so release dates are planned without it.

Should new screens be built in SwiftUI or UIKit?

SwiftUI for most new screens, UIKit where it still does a job better, such as some complex lists, rich text editing or a custom camera view. The two run side by side in one app, so nothing has to be rewritten to start. Your minimum iOS version matters too, because newer SwiftUI features need newer iOS versions.

Can the same developer build the iPad and Apple Watch versions?

The iPad version, usually yes: it is the same app, with layouts that adapt to larger screens, Split View and Stage Manager. An Apple Watch app is a separate target with its own interface, its own data sync with the phone and tight limits on battery and background time, so it is scoped and estimated as separate work. The profiles we send say which of the two a developer has shipped.

Can the developer take over an Objective-C codebase?

Yes. Swift and Objective-C compile into the same app through a bridging header, so nothing has to be rewritten before work starts. Objective-C is replaced file by file as features change, starting with the code that changes most often, and left alone where it is stable and rarely touched. A full rewrite is seldom worth what it costs, and we will say so.

Can we start with one senior developer?

Yes. Many clients start with one senior engineer to cover a specific capability or capacity gap, then add specialists only when the roadmap requires them.

Can we scale the team up or down?

Yes. Adding an engineer follows the same route as the first, and you interview them. Reducing the team follows the notice period agreed in the contract, and the work is handed over in your repository before anyone leaves.

Will the developer work as part of our team?

Yes. You manage priorities and day-to-day work directly, in your own channels and delivery process.

Do we interview the developer before they start?

Yes. You interview every candidate using your own process and make the final decision about who joins the team.

Are the developers your employees or freelancers?

Our engineers are ImproveIT employees and long-term contractors working through our teams in Poland and Ukraine. We are not a freelance marketplace and do not resell developers from other vendors.

What if the developer is not the right fit?

Replacement terms are defined in the contract upfront, so it does not become a negotiation.

Who owns the code and intellectual property?

You do. IP assignment is included in the contract, and we can sign an NDA before discussing the project.

How do you handle security, access and NDAs?

We sign an NDA before discussing the project, and confidentiality and IP assignment are part of the contract. Engineers work in your repositories, cloud accounts and tools with the access your team grants, so you can narrow or revoke it at any time.

Can your developers work with our timezone?

Yes. Our engineers work with teams across Europe and the US. We agree the required working-hour overlap before matching candidates.

How is their English?

Our developers work in English with international product and engineering teams every day. English level is included in the candidate information you receive before the interview.

What does it cost to hire a developer?

Rates depend on the role, seniority, experience, and engagement model. You receive the rate, availability, and candidate profile in writing before making any commitment.

What are the minimum engagement and notice period?

Both are agreed before the engagement starts and included in the proposal and contract. We are flexible in that and usually agree on the terms suitable for a client.

Besides the iPhone app?

An iPhone app seldom stays alone: an Android version has to keep pace, the next app may suit a delivery team better, and every build needs tests that run on their own.

Tell us which engineers you need.

Stack, seniority, how many and when. We come back with matching profiles, availability and rates within three working days.

You interview them with your own process, and you reject anyone you are not sure about.

  • 1Send the requirements
  • 2Get profiles with CVs, availability and rates in 3 days
  • 3Interview, choose, and start within a week

We sign an NDA before discussing anything in detail. We reply within 24 hours.

Request profiles

Or book a call and skip the form.Your details are handled under our privacy policy.