It’s hard to believe it has been a year since I set up my apple dev account. To distribute iOS and macOS apps you need to have a mac, XCode and an Apple developer account.
If you want to play around with XCode Apple has a free program. With the free program you can get XCode, software downloads, sample code, access to forums and test on your own device. One caveat though, it will only work on your own device for one week. After a week you will have to push it back on your device. This can be a pain, so last year when I started this I opted to pay the $99.
With my developer account I made one commercial app, WeatherMany. I wanted to make an app that showed weather in a ton of locations at once. This was so I could see weather along my way when traveling to and from the beach.
When I submitted the first version it got rejected. It made no sense since the app did not have anything in it that was mentioned in the rejection. I submitting an appeal pointing out that my app did not have any of the features mentioned in the rejection and got another rejection for a totally different set or reasons.
I was discouraging and let my app sit for a couple of months and then submitted again and it immediately got approved. Pretty weird.
The first two weeks
Once you app is approved you can release it manually or on a schedule. Once it is released it will show up higher in the queue for about two weeks. It is important that your app gains traction in these first two weeks. If it doesn’t it will drop to its normal place in the queue. This was what happened to me. It was high in the queue for a while, probably because I asked my friends to buy it, and then dropped down.
App Store Connect
You manage your app through App Store Connect. The main screen looks like below. Here you can set up various things. The most important thing you need to set up is your agreement, tax and banking information. Without this you will not be able to submit to the app store.
Once you have an app, the sales, trends, and app analytics are interesting things to explore.
Clicking on My Apps will give you a list of your apps. Currently I only have my app WeatherMany in the store. Soon Apple will run iOS apps on the Mac too which is pretty cool!
When you submit your app you also submit screen shots that will be displayed in the app store. I choose to do screen shots for a 6.5″ iPhone and 12.9″ iPad Pro.
My impressions of XCode and Swift
I struggled with Swift. In particular I was frustrated by string manipulations. In Swift strings are Char Arrays and you had to add extensions two do simple concatenation, searches etc. That is just silly, improve Apple! Swift of course is built with objective C, aka small talk, which is just a horrible language.
Alternatives to XCode
There are other alternatives to Swift to develop your apps. The two big ones are react native and Flutter. Both of these can create apps for iOS and Android. They still require XCode to compile the final app so you will need a mac.
Flutter is the one I am using now. To use Flutter you add it to Android Studio. Flutter uses a language called Dart which is very similar to Java. One of the nice features that Flutter has that Xcode doesn’t is hot reload. Hot reload allows you to make quick changes and they show up instantly on your simulator or connected device.
Setting up the UX in flutter is very similar to web development where you set up rows, columns and grids. So you should be pretty comfortable with that experience.
I haven’t tried react native yet but will when I get good at react.