Ten years too late I decided to look into iOS development. It is too late, because the Klondyke era of becoming a millionaire on simple apps is probably over. On the other hand Swift has arrived and reached version 5 so it should be a good time to get started.
What I have is
- Mac OS 10.14.5
- Xcode 10.2.1
- iPhone 6s, iOS 12.2 to deploy to
- iPad 3, iOS 9.3.5 (obsolete by Apple standard)
- 20 years of programming experience
- Very limited experience with Swift 5
- No experience with Xcode, Objective-C or macOS development
I am mostly a backend-programmer, who have to do HTML/CSS/JavaScript as well. Xcode is creepy. I have thought about a few appoaches
- Buying a book (but a challenge to find a book with relevant complexity, mix of tutorial/reference, for Xcode 10 / Swift 5)
- Apples obsolete tutorial (but I was put off by the fact that it is written for Swift 3)
- Just playing around with Xcode (just kidding – that is too scary)
- Some online course, like Udemy (but it is not my way)
- A simple trumpet tutorial
I went for (5). It was good, because in a few hours it took me all the way from starting Xcode to running something on my iPhone.
Building for the simulator and running works. And I managed to deploy to my iPhone (it is actually quite self explanatory: connect the iPhone, select it as destination in Xcode, and later in the iPhone under settings -> general -> device management you allow the app to run).
The short version is that it all went well! But…
Obsolete iPad 3
I failed to build for my obsolete iPad 3. What happens is that all is fine, and then I come to this screen:
I type my password, and immediately it (building/signing) “Failed with exit code 1”. I can imagine two options right away
- I need a real developer license (not Personal Team) to do this
- I need an older version of Xcode to build for 9.3
(and in that case I might need to use older project format, and perhaps not even Swift 5, I don’t know) - I got some indication that with a Personal (free) developer license I can only deploy to a single test device, that would perhaps not include old devices
It actually only builds for Deployment target 12.2, no older versions in the list.
Update: Page 60 of the free Apple Book “App Development With Swift” tells clearly that a free account only supports a single device. So it is clearly a waste of time to ignore that restriction and try to deploy to my iPad.
Xcode
I have spent a few hours with this now. I wrote 4 lines of code. I have ctrl-clicked on things, dragged-and-dropped-things, added properties to things, added resources, opened panels and used shortcuts. If you are used to things like Visual Studio it will probably feel somewhat familiar. But for me, who mostly use Vim, it is very scary.
Update: Xcode turned out to use 100%+ CPU constantly. I completely removed it and reinstalled it, and it seemed to help.
Computer Requirements / Performance
I did these experiments on a MacBook Pro 6,2 (that officially does not support macOS 10.14). It has an SSD drive and 8GB or RAM. Building takes almost 10 seconds, but starting the simulator and loading the app takes almost a minute. The computer clearly gets warm. Neither Xcode nor the simulator consumes much memory (Activity Monitory says about 200Mb each). Obviously, if you run the simulator much in your daily work, a faster CPU is worth it.
I think my 1440×900 display may be the biggest problem if I want to do anything real thought.
Conclusion
I have mixed feelings, it could be worse and better. I clearly need to find a way to be quickly guided through building different types of apps. I think I need a few days being guided through Xcode until both Xcode and the different project artifacts feel somewhat natural.
I have a simple app I want to build for myself, but right now it feels much to intimidating.
I found that Apple has released a free online book (available in their Books application) called App Development with Swift. That seems to be a good option.
0 Comments.