My experience with developing my first Android App

 


    A lot of you have asked me about my experience and the time it took me to develop my first App, BubbleNum, which is available on Google Play so I decided to write a blog post about it. I will try to summarize my entire experience. 

How long it took me to develop BubbleNum

    Well, I started learning Android development in October 2020 but it was actually Android with Java. At that time I was taking CS50 course on EDX platform. This course had few tracks then: Web development, Android App development, IOS App development and Game development. Since I wanted to become an Android developer, I chose the Android with Java track. But it was very challenging and unfortunately I could not finish my first assignment. I even tried to take courses on Udemy which were about Android with Java and Java OOP concepts but still could not finish the assignment. The Udemy courses were great, though, I learned a lot about Android development and Java. After failing to finish the Android Track, I decided to focus on learning Kotlin, which is more concise than Java. I talked about the courses I studied here.

    On December 2020, I started building my app, BubbleNum. The app was just a way for me to practice my acquired skills and to learn more by doing an actual app. It was the best decision I made and I think I could have started earlier. When I first started, I did not know what I was supposed to do. I was kinda lost, actually. For example, what layout should I choose, Would I make an activity for each game screen, shall I use a fragment.... etc. The concepts were not that clear for me then; it was as if I have not been learning anything for the past two months. So, I just googled almost every single thing. The difference between constraint layout and relative layout, when to use each of them, what views are better for this feature.... etc. There were a lot of ups and downs in this journey. But I am glad I did it. Learning by doing is the best approach when it comes to learning programming. 

    I finished the main logic of the app in 3 weeks actually, but after getting feedback, I knew I still have a long way ahead. For example, More features needed to be implemented, which resulted in needing me to make classes to avoid repeating myself, which took forever actually. The concept of classes was still new to me then. But After I understood it and used it in my app, just wow. It was really great. It was so easy-to-use and implement. The amount of work that would be reduced after using classes was outstanding. I kept adding feature after feature. And of course, adding more features means having more bugs in your app. After that time, all I was doing was debugging. every day, I find a new bug, and fixing one bug introduces another one. It was so frustrating. I thought I am definitely doing something wrong, why do I have so many bugs! I always felt discouraged and wanting to stop developing. But gladly I had the best dev community on Twitter who were always supporting and encouraging me to fix the bugs and keep going! Honestly, doing the 100 days of code challenge and tweeting about it was a brilliant decision. I encourage you to do it if you want to commit to learning something. Gladly, I finally finished the app on April 2021 and uploaded the final version on Google Play. It took around 24 hours to get reviewed and approved. 

    So to summarize, It took me four months to develop the app from start to finish and Six months since I started learning Android development. 

Mistakes I made while developing my first App
Designed By Freepik

  1. Not designing the App before starting coding (Both UI/UX).
  2. Not deciding about the features of the App from the beginning. 
  3. Using more activities than needed. Since the activities have the same views but different content. 
  4. Not using classes from the beginning. 
  5. Not having the final UI elements before coding. 
  6. Not using a style resource file from the start. You will change only one line to change a view’s design or style.
  7. Not being patient to learn new things.
  8. Wanting to fix a problem right away.
  9. Giving up too soon when trying to fix a bug.
  10. I haven’t been convinced that it is normal not to know how to do things at the start and it is ok to either search or ask someone.

Helpful Tips



  • Testing Testing Testing is more important than you think. Several people testing a feature is a must not just one or two.

  • You have to simulate a normal user’s behavior or monitor the users while using your application to understand their behavior more & update accordingly

  • Don’t Don’t Don’t depend on your own assumptions when testing your application. The users probably have different behaviors from your own.


 Thank you for reading my post. You can follow me on Twitter to be the first person to read my new posts.

2 Comments

  1. Ryda. Thank you so much for the post. I learned a lot.

    ReplyDelete
    Replies
    1. I am glad you learned from my article! Thank you so much for reading!

      Delete