How I learned Android App Development
About me
My name is Drew Gallagher and I am a Computer Science and Engineering graduate from The Ohio State University. I have been teaching programming on three different websites for over two years now for Chegg Inc, VarsityTutors, and TutorMe.
I have accumulated over 500 positive reviews from students with a 97% positive lesson rate. I have taught a wide range of subjects including Mobile App Development with Android, HTML, CSS, AngularJS, PHP, XML, Java, JavaScript, Cordova, Basic Algorithms, C#, Node Js, and much more!
I have worked for several companies doing software development including TicketFire and Liberty Mutual Insurance. I love teaching people, I love learning, and I love building things!
Link to Clockwise Smart Alarm App:
https://play.google.com/store/apps/details?id=com.clockwise.epochsoftware.clockwise
Why I wanted to learn Android App Development
I wanted to learn how to build a fully stacked product using Android as the frontend piece and I wanted to create something meaningful and exciting. A friend of mine and I came up with the idea to develop a smart alarm app called Clockwise that spoke to you news, weather, and more to make waking up easier. I thought this would be a great opportunity to build something we thought people would value while learning how to build Android apps.
How I approached learning Android App Development
I started by going on YouTube, Stack Overflow, and the Android docs website to learn how to make Android apps. I had some experience beforehand but nothing anywhere near what I needed to complete this project.
I went through the Android doc tutorials, and tutorials on YouTube and constructed features in Android Studio using Java and XML, two technologies I was very familiar with.
I tested my app on various android emulators both in GenyMotion and within the studio as well as on my device. Asking my friend I was developing with for help was huge in learning as well. Collaboration is the easiest and most rewarding way to learn anything!
Challenges I faced
There were many challenges throughout our development cycle. One challenge was working with services in the background of the app. We wanted to schedule notifications to wake users up at the time they set their alarm which was the core of our app. To do that we had to learn about broadcast receivers, local notifications, and services. It took a long time to grasp the concepts but once we got it to work it was great.
Learning about Text To Speech as well as setting up callback functions with Promises was also key to making our app function properly. We needed to fetch from several different news, humor, weather, sports, etc services and then put that into a string to be spoken to the user. We had to make sure the string came back whole and in order and that if any API endpoint failed then the whole thing wouldn't fail. We managed to figure that out with good time.
Key takeaways
I learned a lot building this app over a two year period with several iterations of the app. I learned that it is better to build and fail fast while getting user input to improve your product, rather than waiting to release code months down the line without any input.
Rapid development alongside rapid feedback is the best way to make a product people will actually use. I learned how to build Android apps which was awesome! That is a skill that I can always use and I am grateful for learning how to do it.
I learned how to collaborate with a teammate remotely to dish out a solid product. We rarely met in person for this app and accumulated over 10k downloads in our second iteration of the app which was an incredible achievement.
We learned how to pitch to a funding agency and how to create a message that resounds with our target audience to maximize conversions which is incredibly valuable.
Tips and advice
I would advise anyone learning Android development to work your hardest to become a fast learner who is eager to ask for help. Without asking for help, extra resources, and exploring the web there is no way I would have been able to create a product. I would also encourage people to fail fast and pivot quickly in order to focus on solving problems that matter most. Focus is key in creating a startup product.
Final thoughts and next steps
My next learning goal is to become a more effective educator of technologies. I already am a great learner but I want to become a better teammate and educator so I can share my knowledge and be a part of more success stories.