Expertise

iOS and Swift Expert

iOS is a platform with high user expectations: a fluid interface, battery efficiency, privacy and App Store rules must all be satisfied together. I run native development with Swift and SwiftUI, integration with existing systems and store processes end to end.

What does an iOS software expert do?

Developing an iOS app goes beyond writing the interface and business logic in Swift; it covers compliance with the Apple ecosystem's rules, privacy, performance and post-release maintenance.

  • Designs the product flow. Screens, roles, states and error scenarios become clear.
  • Develops with Swift. Chooses SwiftUI or UIKit according to the project's needs.
  • Sets up the architecture. Builds a testable, modular structure that is open to growth.
  • Integrates. Existing APIs, authentication, payments, notifications and device features.
  • Manages privacy. Data minimisation, permission texts and storage policies.
  • Publishes to the App Store. Review rules, privacy declaration, release management and maintenance.

SwiftUI or UIKit?

In new projects SwiftUI is a strong default for speed and maintainability. But when complex animations, older iOS version support or existing UIKit components are required, UIKit still has its place.

Real projects often go to a hybrid structure where both are used together: new screens in SwiftUI, critical or legacy components in UIKit. The important thing is connecting the two worlds without visible seams.

The topics that determine quality on iOS

  • Apple ecosystem compliance: device sizes, dark mode, dynamic type sizes, accessibility.
  • Privacy: which data is requested, why, and how long it is kept must be clear.
  • Performance and battery: background work, location tracking and network calls should not strain the device.
  • Secure storage: keeping sensitive data in the Keychain and the encrypted file system.
  • Store compliance: payment rules, the account deletion requirement and review rejection risks.
  • Observability: crash reports, version-based bug tracking and logging in critical flows.

When is native iOS the right choice?

If you are shipping to two platforms together, Flutter gives faster results in most projects. Native iOS stands out in these cases:

  • Apple-specific experience: widgets, App Clip, Watch, Shortcuts or deep system integration.
  • Hardware and performance: camera, audio processing, AR or flows requiring intensive computation.
  • Existing iOS codebase: enterprise investments that must be preserved.
  • iOS-only target: products focused on a single platform.

You can find the cross-platform comparison in the article Flutter or native.

Experience

Swift was used on the iOS side of the survey and location-based reporting apps developed for FMCG field teams at Açık Deniz Bilgi. The apps required ERP integration, offline operation and resilience in field conditions.

On DoktorAsistan's mobile side, user flows, secure session management and notifications came to the fore. In projects like these you see concretely at which point a native approach needs to drop down to the platform channel.

How does an iOS project progress?

  1. Discovery and technical plan. Scope, roles, integrations and out-of-scope items are written down.
  2. Architecture and technology decision. The SwiftUI/UIKit balance, data model and API contracts become clear.
  3. Skeleton and first flow. A working vertical slice is produced.
  4. Development and testing. Unit tests, device tests and automation of critical flows.
  5. App Store and handover. Privacy declaration, review process, source code and a maintenance plan.

I explained the staged delivery approach in the article why work should be done in stages.

Common mistakes

  • Reading App Store rules too late. A payment or account deletion flow added later changes the architecture.
  • Copying privacy texts. A declaration that does not match the data the app actually collects is rejected.
  • Testing only on the newest device. Performance and memory problems appear on older devices.
  • Skipping accessibility. Dynamic type and screen reader support are hard to add later.
  • Not making an update plan. New iOS versions and store rules require regular attention.

Frequently asked questions

Swift or Objective-C for an iOS app?

For new projects Swift is clearly the right choice. Objective-C only comes up for integration with legacy codebases or third-party components whose maintenance has not been dropped.

Should SwiftUI or UIKit be used?

For new screens SwiftUI is usually faster and more maintainable. If complex animations, older version support or existing UIKit components are required, a hybrid structure is built.

Native iOS or Flutter?

If there is an Apple-specific experience, deep hardware integration or an iOS-only target, choose native; if shipping to two platforms together, Flutter is more efficient in most projects.

How long does App Store review take?

Usually 1-3 days. For a first release, topics such as the privacy declaration, account deletion flow and payment rules may require additional review.

Can features be added to an existing iOS app?

Yes. The existing codebase and architecture are reviewed; risky areas are identified and the new feature is added without breaking the existing structure.

How does iOS app maintenance work?

New iOS versions, store rule changes and security patches require regular attention. The maintenance plan covers a release calendar, crash tracking and critical updates.