Skip to content

I was recently asked to build an iOS app for a client.

I was initially hesitant because I've always felt that mobile development inevitably boils down to writing disposable software for disposable hardware.

Many apps written today will be obsolete in just a few iOS updates or new iPhone releases.

Then I came across an interesting architecture- a lightweight frontend layer, written in Swift or Kotlin for iOS/Android respectively, then a bridge layer, and finally a C++ layer for the backend.

The same C++ backend can be compiled for any hardware, allowing you to write robust, perennial business logic that can be compiled for and run on any platform, for decades to come.

I'm personally using this architecture to build an iOS app for artists.

Essentially a real world, Photoshop eyedropper tool, that allows you to match any color in a photo to a real world oil paint color, mixing ratio.

I didn't want to build something strictly for the walled-garden of Apple (I don't even own an iPhone).

This is the stack I'm using:

  • Lightweight SwiftUI frontend
  • Objective-C++ bridge for intermediating and converting data between the frontend/backend
  • C++ backend for handling the colorspace calculations