From Zero to AppStore
6 min read

From Zero to AppStore

Max' adventurous ride from zero iOS/Swift knowledge into the Apple AppStore.
From Zero to AppStore

Max' adventurous ride from zero iOS and Swift knowledge into the Apple AppStore.


If you can read this post it means that I really made it. I got my App into the AppStore πŸŽ‰

β€Žfastbackward
Usually after snapping some photos, they will end up inside your Photo Library and slowly become forgotten. fastbackward is here to help. It shows all photos you took on this day during the past years. You can easily see where you took those memories and with which device by showing all kinds of EX…

But let's start from the beginning πŸ‘‡

Background

I started developing many years ago with C# on the Windows Platform. I mostly did Windows Applications for fun. Later I moved to the Web where I got familiar with node.js and now I'm a πŸ‘¨πŸ» Backend Engineer for almost 6 years.

I never touched any mobile App development environment. I'm an iPhone user since I used smartphones and the one time I looked into ObjectiveC scared me away.

In short: I had no clue what I'm doing as I started this journey πŸ˜€

Motivation

It's 2020 and I guess you know what happened this year. Fucking Corona. In Germany we got this Corona Warn App which was advertised as fully transparent and open sourced available for everyone to review:

corona-warn-app/cwa-app-ios
Native iOS app using the exposure notification framework from Apple. - corona-warn-app/cwa-app-ios
Corona Warn iOS App on Github

It's not that I don't trust our government, I was just curious how such an App has been built.

And this code kinda surprised me because it looked very readable and not like that Objective-C thing I saw some years ago πŸ˜€

That's what got me googling ... and I found these SwiftUI Tutorials from Apple teaching the basics of Swift(UI) in a nice and explanatory way.

But after the first few lessons my enthusiasm faded away because building just sample Apps doesn't cut it. I wanted to develop something useful which could eventually even end up in the AppStore.

Finding an App Idea πŸ’‘

Finding an Idea for an App which doesn't already exists is like searching for the holy grail or something. It looks like there is an App for everything.

This is what really killed my motivation. Every time I thought this is now the thing I found already something.

It took me a fair amount of time to understand that I don't have to build something that doesn't exist. I just have to be better.

It's cool if there is already competition because other people might have the same problem I'm trying to solve which means it could be an actual use case πŸ™‚

That's why I decided to build fastbackward.

The idea behind this App is to let you relive photos you've taken on this day one, two, three etc. years ago. The Idea is not new, even Apples native Photos App can do that ... but not exactly how I want it to work and look.

I had a pretty clear picture in my mind what the App should be able to do:

  • Provide photos for exactly this date (Apple is sneaking in a few days before and after)
  • Different years are easily distinguishable
  • Provide a look and feel as native as possible
  • Show extended photo details (location, Exif metadata...)
  • Get notified on days where I have memories to look back

There are also Apps for some of those points but none which tackles all of them.

That's why I decided to build my own version because it would have at least one user: Me πŸ™‚

Pricing πŸ’΅

Although most people still expect that digital goods are for free I decided to charge a little fee for advanced fastbackward features.

I chose to go the way of In-App purchases instead of charging the customer upfront. That way the potential customers can try the App and if they want to have more than one year of memories or extended metadata they need the Pro version.

It's hard to find the right price for my App. Therefore I asked some people if they buy Apps on the AppStore and if yes what's their pricing limit.

Most people don't even want to spend any money at all, and if they decide to buy the limit is between 1 and 2 Euros. Sad trombone

The other thing I learned is that almost nobody knows about the fees which apply to App Store sales.
They are not aware of the 99€/year which are required to actually get (and keep) your App inside Apples AppStore and the 30% (soon only 15%) cut you have to give to Apple for every purchase.

I decided to go with Apples Pricing Tier 2 (2,29€ in Germany currently), which will still return me more than an Euro after processing:

Pricing Tier 2:		2,29€
- 16% VAT*:		0,37€
- 30% Apple Fees:	0.58€
-------
πŸ’°			1,38€

*: Due to the Covid 19 Pandemic the German Government lowered the VAT from 19% to 16% until end of 2020.

As you can see above I would need at least 72 sales per year to break even πŸ˜€ But since this is only a side project, every purchase makes me happy and I'm totally grateful for it 😊

Building

Building fastbackward was actually pretty straightforward. It takes a moment until I got used to Swift / SwiftUI but there are tons of tutorials and courses out there which covers most of the common topics.

One of the best sources I've stumbled upon is Hacking with Swift by Paul Hudson:

Hacking with Swift – learn to code iPhone and iPad apps with free Swift 5.2 tutorials
Learn Swift coding for iOS with these free Swift 5.2 tutorials

The only thing which is important if you are looking on Stackoverflow for an answer: Scroll down πŸ˜€ Usually the accepted solution is some months/years old and in Swift years that's simply decades! Always look for the latest solution in Swift 5 or 5.2.

Submitted for Review

Everyone seems to be afraid of the AppStore review process. So was I.

I submitted fastbackward on the 20th of November for Review and in the late evening I got rejected 😱😭

The reason was that the reviewer wasn't able to properly test my App. fastbackward requires photos you took on the same day X years ago. For the first try I added a sample photo and wrote in the review notes that they have to set the test devices date to the 8th of August (creation date of the sample file). I guess that was a little too much of a hassle for them. I got rejected but was asked to provide a Screen recording of my App from a real device.

That's what I did and 2 hours later fastbackward has been approved πŸŽŠπŸŽ‰

What's next?

I have still a lot of ideas (and refactorings 😬) in my mind which will land in future versions of fastbackward. Check the roadmap on the project page if you're interested in more.

Timeline

  • 2020-10-20: Created a new Swift Xcode project
  • 2020-11-02: App submitted to Testflight for testing
  • 2020-11-20: App submitted to the AppStore for review
  • 2020-11-21: App has been approved and is ready
  • ... procrastination ...
  • 2020-12-07: Took me some time to write this all down πŸ˜…