August 15, 2025
I made an iOS app
Posted by Lorenzo
I have been programming and developing for the web since several years. But I never built an iOS app. Until now.
I was scared by the complexity of iOS development: Swift, getting a developer account, the App Store review process, etc.
But now, I vibecoded and app and published it on the App Store.
It's a simple app that colorizes black and white photos with AI.
It's called ColoriseAI. You can download it from the App Store here.
The idea
Lately I have been watching videos from Adam Lyttle, he talks about making a living and publishing apps on the App Store.
One of the most important things is to go very niche and focus on a single feature. It's better to have a simple app that does one thing well, than a complex app that does many things poorly, or no app at all.
Another push came from RevenueCat scheduling their Shipathon hackathon in the same dates.
For the app, I wanted to use an AI model that was specific for one task.
Browsing Replicate, I found the Flux Kontext Restore model that was fine-tuned on colorizing and restoring old black and white images. It was perfect for the job.


Lunch atop a Skyscraper, 1932


Flatiron, 1902
How I built it
The main workflow is this:
- the user selects a black and white photo
- the photo is sent to a specific AI model via the Replicate API to be colorized
- the colorized photo is sent back to your phone
I created a new Xcode project and vibecoded the app in a couple of hours. Initially I used the Replicate API token directly in the app to make sure everything was working.
In JS and Python you normally use environment variables to store sensitive data. In Xcode you can't do the same as the API token will be stored together with the app. Anyone skilled enough can easily reverse engineer the app and get the token. I needed to find a better solution.
So I created a small web server using Hono to authenticate users, add rate limiting, and act as a proxy to the Replicate API. This gives me the ability to change the API token without having to re-release the app.
With everything working, I could proceed with the App Store submission. This was the longest part of the process, taking more than a week: Review, Rejection, Correction, and finally Approval. Everything is still quite confusing, but it has improved a lot in recent years. I remember when my brother released his apps 10 years ago, it was a pain.
New model in town
Soon after my app was published, Google released the Gemini 2.5 nano model, which gives great results when modifying images. I tried giving it a prompt for image colorization and it worked great, even better than the Kontext/Restore model.
I switched the AI model to Google's nano. The cost is the same ($0.04 per image) and the speed is similar. The results are better.
I didn't have to re-release the app, I just changed the API endpoint in my proxy server code.
Launch and downloads
The app was available on the App Store. Only about 15 people downloaded it.
Frankly, I was hoping for more downloads.
Adam Lyttle in his videos said that Apple gives more views to new apps, so in the first couple of weeks you get a boost of downloads. This hasn't happened, the rules have changed and new apps are not getting any visibility boost. He recently published a video about the new strategy to get downloads, which involves paying for ads.
Still, I am happy with the result. My goal was not to get many downloads, but to prove to myself that I can build an app and get it published on the App Store. This means that in the future, whenever I get a better idea, I can build it and get it published on the App Store.
Now I have a working app that lives on my phone that I can actually use and show to my friends.
Try ColoriseAI for yourself - Download it from the App Store and let me know what you think! Have you built any apps? I'd love to hear about your development journey.