What I learned from building and publishing my first app
I recently released my first app for Android and iOS and it was an incredible experience!
I set out to create an app that would be used for about 30 teenagers that I mentor at my local church. The goal was to create a tool that would foster deep conversations about life and build relationships with each other. And it was a success!
I originally had the idea for the app in October of 2017. We do a camp up in Big Bear for Winter and during Summer. I started working on the app in mid October but ran out of time to use it for winter camp as I was learning React Native along the way. So during early 2018 I started to take a few deep React-Native tutorial courses by Stephen Grider on Udemy and Spencer Carli at Handlebar Labs to work on a few other apps first. Based on what I learned, I scrapped the first version of the app and began with version 2 and only brought in pieces from the first version of the app that worked well.
From there I used Expo to help build the app and test simultaneously on my Android phone and on the iOS simulator. I was able to create components based on the early designs that I created. Changes were made to reflect what React-Native was able to do. After learning how react-navigator worked I also changed how the app would be navigated. I implemented a bottom tab navigator to get to the different screens quickly and easily no matter what device a person was using.
The app revolves around 4 screens primarily. One is the home screen which has images as buttons that lead to the 3 other screens. It is kind of redundant because of the tab navigator but I like the way it looks so I kept it there. The second screen is for discussion questions. I used Redux to manage the state so that when a person clicked on the save button it would appear above the text input box and can be referenced in group discussions later. Learning Redux and state management was the hardest concept to get my mind around. I went through a couple tutorials to try and understand it and I was able to get it to work for the app. I was stuck on how to get that to work for months. I was also pointed in the right direction by going to a local Meetup for React Native.
After that I finished the Camp Schedule screen as we got closer to the Summer camp date and also put together a screen that showed who all of the leaders are and some trivia about them. This would help the kids who didn’t know who the leaders were to know each leader a little bit better and make the leaders more approachable.
I also used Google Firebase to allow authentication into the app and I used it’s database feature to show what the events were each day on the schedule.
I completed the app about 10 days before camp started. I then went through the app publishing process for Android and iOS. The process for Android was a breeze and it was accepted into the Play Store the next day. The iOS version actually made me a little bit nervous. I had heard that Apple is a bit more stringent with what they let in. My first go around it did get rejected for having too vague of a description for the app. I fixed the description and then it was accepted! I was driving to my friends house when I checked (At a stop light) to see if it was accepted and it was! I hit the blue release button as seen here:
and my reaction to releasing it is at the bottom of this post!
I was and am pretty excited that I released the app. It ended being loved by the teenagers and it fulfilled its purpose. I have grown a lot as a developer through this process and I hope to release more apps in the future!