SwiftUI iOS App: from Development to Release
Is SwiftUI ready for production? Can I start developing Apps using SwiftUI? Do I have all the UI components available in SwiftUI? How much time do I need to deliver an App using SwiftUI? Those was the kind of questions I had on my mind, but you will know better when you start reading.
SwiftUI is the newest Apple technology for building native UI for all Apple platforms, I’ll not talk about it in details since I’m going to take you on my journey of building and publishing a full iOS application using SwiftUI.
When did it all begin?
I love challenges and trying out new technologies in iOS development. That is why I started my side project 5 days ago exactly on Sunday, October 13th evening, when I was at the end of SwiftUI by Example tutorial on Hacking with Swift.
I used to spend 3 hours daily in the evening learning new iOS development topics, and I decided to make use of this time in building and releasing a side project without moving away from the goal of learning.
Tell me and I forget. Teach me and I remember. Involve me and I learn. - Benjamin Franklin
The App Idea
Dozens of ideas jumped to my mind, and I was very puzzled on how to choose between them. Then I decided to narrow them based on many factors. And Finally I chose to develop a currency converter, very simple one with a currencies list and a conversion mechanism. I have my back end ready and now I’m focusing on building the iOS App.
Starting the Development
It is very exciting to start a new challenge specially when you will learn too much things. With the fact that you don’t have many references to look into, you will have to explore things on your own.
I started my project by preparing my environment, I have Xcode 11.1 running on MacOS Catalina 10.15. Also I had my wireframes ready with Adobe XD designed some time ago, with no dark theme back then. With a help of some other tools like Github I was on green light.
Although the biggest challenge was the lack of the SwiftUI resources, even Apple didn’t finish it’s full API documentation. But that was the thing which kept me motivated, to do things for the first time and find approaches to create your own ways of doing things.
When you’re doing something for the first time, you don’t know it’s going to work. — Jonathan Ive
How much did the development take?
On the first day, I started by defining the project design architecture and creating my models. I decided to do things that I know first, to avoid getting blocked by the blurry things. After that I went into the amazing part of developing the UI with the brand new trend (SwiftUI).
The App was consist of 3 tabs, The converter, the countries list where you can look up for a country and see its currency name and code and an about tab. So I created a mockup of the three views with a text only and embedded them in a tab view. The in Xcode preview had saved me lot of time, with almost no need to run the app in the simulator/device to see how the UI looks like.
After 3 days and about 4 hours a day, I thought I was ready to deliver my first release.
Preparing to Release
As I was learning I wanted to shorten the release process so I used Flycricketto design and host a free landing page, and it also helped me to design a cool looking screen shots for the App Store.
I logged into iTunes Connect and created my App there, I uploaded my screen shots for iPhone and iPad and filled up all the required App information. Then I merged my branches into the master branch, and Finally I was ready to release.
The Release Process
At the late Wednesday evening of October 16th, I started to archive my product from within Xcode. The archive process took about 4 mins in a MacBook Pro 15" Mid 2014, with a 2.2 GHz Quad-Core Intel Core i7 Processor and a 16 GB 1600 MHz DDR3 Memory.
When the archiving finished I chose to distribute my App for the App Store, and after finishing the signing and its steps then I clicked the upload button and I thought I’ll wait for at least 15 mins as with the regular storyboard or Swift/Objective-C App. But I was amazed with the 2 mins waiting time for the upload process to finish with just a 1.10 Mbps upload speed. And Within another 2 mins I was able to chose the build in iTunes Connect, then I submitted my App to review and went to sleep.
In the next morning I was able to see my Currency Magic App in the App Store, and guess what its size was just 1 MB.
Follow me here or in Medium or let's connect to see my latest publishings on LinkedIn, and comments are very welcomed!