For a long time I had wanted to do an app, a quote app to be specific, for this great sage of Arunachala, Ramana Maharishi. This dream came true on 4 Jan 2017 when the App Store, after rejecting the binary twice and asking me to add more of their APIs, said 'Congratulations! Your app is now ready for sale!'
My coding journey started a couple of years ago with Gamesalad, which didn't help, besides they were charging for just downloading and playing around with it.Then I bought a book on Python, which led me to take a few courses on Udemy where I found more courses on Ruby and Rails, which made me abandon Python. While learning Rails there and OneMonth, I discovered Swift and Xcode.
This seemed like an environment where I could build my dream app for Xcode came with drag and drop storyboards and Swift was a bit similar to Ruby. After taking multiple Swift courses, I found one that came close to what I was looking for on Udemy. After trying a few more, I started building my app based on the first course. Luckily there was a more updated version in Treehouse. I built a simple app with an image of the saint above and a randomly generated quote that would appear below, with a button below that. Clicking that would produce a different quote each time while changing the background colour.
Submitting is not an easy process the first time around. That took a while, maybe about an hour, for the app to be uploaded to the App Store. Received wisdom was that it would take a week to hear from them, and it was way off the mark. They got back within a day, saying it didn't meet the requirements,
4.2 minimum functionality, more specifically.
So I added a map and decided to embed multiple pdf files. Which was a challenge, as there were not many lessons on embedding pdf files with Swift 4, the latest version. Swift is an evolving language which meant what worked with Swift 3 would break in a later version. I managed to find one on YouTube (which, by the way, has many kind souls who have uploaded many useful videos on Swift) that showed how to embed one file using WebView. I needed more. So from another lesson on building a music app on Udemy, I figured out how to use similar methods to implement what I wanted. Now I had a quote page (screen, if you will), a Map view, a page with 3 pdfs, and another page that displayed a pdf.
This time, App Store said it looks more like a PDF app, and asked me to add more APIs and make it more of an app users will want for entertainment. And they said it should work on iPad as well, even if the app is specifically for iPhones!
Went back to the drawing board/laptop, and started looking for ways to add videos and audio files. Some Udemy lessons came in handy for embedding audio files, while a few YouTube lessons helped me with embedding videos. I added a page that displayed 5 videos. It was working ok. But I wasn't 100% satisfied.
Then I discovered a life-saving framework, SafariSevices, which helped me embed not just a few videos but link a button to playlists and websites without taking the user out of the app.
So added that, cleaned up the app, and re-submitted on 3 Jan. Within a few hours as usual App Store got back saying the sound files don't play on iPad on their end. I rechecked at my side, on all simulators, and informed them that all was working fine.
Next day, I woke up to the most encouraging and memorable email ever. 'Welcome to the App Store' said the subject line, and the email proceeded with: 'Congratulations! We are pleased to let you know that your app Ramana Maharishi has been approved for the App Store'.
Done! If any of you are interested in the teachings and life of Bhagwan Ramana, you can download it here. It's free.
PS: I'm in the process of updating the app with swipe gestures and clean up the UI a bit.
Tips, tricks and even full lessons
Have a problem? You are not alone.
For creating app icons and image resizing across screen sizes