10 Lessons that I learned and the Journey To First Published iOS App
I am an iOS Developer and in this article, I will describe the journey of my first iOS App on AppStore 🤩 👨🏻💻
So it all started when I came across the fact that if you have published your OWN App on Apple AppStore, it adds a lot of brownie points in your CV.
As a developer for “design” I was always dependent on the designer. I never did any design thinking by myself, I just copied the UI from Sketch or Figma and made the functionality provided by the manager or the client. Even though I was good at making UI and animations and keeping up with client requirements. Whenever there was a scenario in which I have to make a UI by myself I was VERY BAD at it. It always looked like this is the first time I am making UI.
Me and my best friend from college luckily both work in the same organisation. He is a front end(web) developer but he always has a thing for making designs. He did some freelancing for design also and had an Instagram page for design stuff also.
Lesson 1: Where to start is unexpectedly Difficult.
My friend and I had multiple discussions on what we could make. We both were from frontend and we both didn’t know much about backend. We concluded that we will use free APIs to make a MVP (Minimum Viable Product). We looked into multiple APIs and we were unable to make any sense out of it what an app can be with those APIs.
Lesson 2: Nothing is “Easy”
We both settled for an idea that we could make a Weather App that would get data from the API based on Location and get data for city name entered by the user. It sounded very simple but we were unaware of the rollercoaster ride it had stored for us.
Lesson 3: Make your “Estimates” Wisely
“Most people overestimate what they can do in a day, and underestimate what they can do in a month.” — Matthew Kelly
We overestimated our potential for how fast we can develop a product. We both started looking at famous and fun weather apps and thought it’s so easy to make them and decided that we will complete the design this weekend and start development in the next week. Weather Apps don't have many screens just one City Detail Screen and City Search Screen.
Lesson 4: Just start Prototyping
3 weekends passed by and we have not started yet. Then one weekend end we both had a long call in which we both got on the screen share and made the first prototype. We were extremely happy with it at that time but now it looks very so 🤮. I was very excited about the development part and I just started developing the app and making UI.
Lesson 5: Respect the Development Cycle
One day out of nowhere the Figma file was deleted. I called my friend wassup with the designs. He said it just didn't felt right he changed everything overnight and came up with new designs but I was pretty much done with UI in the app. We both argued and found out that he was not final on his part. Then he showed the designs and they were a lot better and scaleable. It happened 2 more times. Then I discarded my work each time and waited for the new designs to be completed.
Lesson 6: You can learn from anything if you will to do so
I also started to give some suggestions and find some inspiration and brainstorming with my friend. Slowly and steadily we both came to the final design. We both learned from each other’s way of work and design thinking. I took up the design of the search screen and made it all by myself.
Lesson 7: Failure is temporary, Guilt is permanent
It was nearly 3 months from the time we took up the project. We both were very out of willpower and were disheartened by the fact that we couldn't complete such an easy app. We gave up and continued to the boring office work. But there was always guilt inside me of not completing what I started. I use the folder on my desktop everyday. Then after some 4 months, I gathered all the willpower and took a pledge to complete the app.
Lesson 8: There is nothing bad in asking for some Help
There is feature in the app that the background changes accordingly to the AQI of the City. It Changes from Blue Gradient to Mud Brown Gradient. I asked a designer from my organisation to make these gradient for me and it took him just 7 minutes to do it. It really speeded up the process and pushed us one step closer in the process.
Lesson 9: Biggest Challenges are the most exciting one
The Google Places API is now paid and we were unable to do the city search feature. Google gives the first 300$ free for the Places API but it needs my Card details. I gave the my card details but due to some reason they were not accepting my card each time 1 Rupee was deducted from my account but verification failed every time.
Then I started looking for other options for the city search. Nothing seems to be working and it was very difficult to get something to work. Then I gave up again and started after few weeks.
I came across a website that provided a database for City Name and their Latitude and Longitude which is exactly what we needed but the data was in CSV form and I have never worked with CSV before and after a lot of head-scratching and headache I found a way to use CSV files in Swift 😁 and completed the city search feature.
Lesson 10: Bad Things happens in the most Unexpected Times
The App was Rejected by Apple after 2 days. The reason Apple gave was “Binary Rejected : Minimum Functionality”. This means you App doesn't do much and everything your App does can be done on a web app on Safari.
I got really angry 😡 and sad at the same time 🙁. I researched a lot about it and unable to find much. It wanted to add more functionality which I didn't want to do. Then I mailed Apple about this and didn't get a satisfactory reply.
Then Finally after doing some tweaks in the App WebView I resubmitted the App on AppStore and crossed my fingers again 🤞🏻 and this time it was Approved and I was really happy 😁 and relieved 😮💨.
I hope you like the journey and thank you very much for reading. If you like what you read please smash that clap button in the bottom as many times as you want 👏🏻 which motivates me to make content like these.
And lastly the A-Team