Friday, June 20, 2014

My first project in Android

I found that there are several stages in the life cycle of a new personal project I set on.

  1. Initial rush - In this part everything is new and exciting. The world is full of endless possibilities an it seems like I can do everything. This is the part where I think that I can realize great projects and achieve greatness.
  2. Cooling part - This is the part where I realize that things are not so black and white as I initially thought. Usually the volume of information becomes overwhelming, I struggle with understanding some hard to grasp concepts and start to become demotivated. The initial goal of achieving greatness seems to distant itself more and more as the days pass. This is a critical part in the life cycle of a new project. If I find the motivation to pass over it, it will keep me going and I end up most of the time achieving what I initially proposed.
  3. Mastering - If I got to this part it means I have the necessary documentation materials gathered and organized and most likely something practical that drives my motivation to continue 

I haven't yet finish going trough all the materials I gathered about Android Development but I decided to work on my motivation to achieve the "Cooling part" I was mentioning above. The way I chose this was by implementing a rather silly idea I got a few weeks ago of making an app that will provide a collection of anthems from the various nations.

Maybe some will argue that you need to learn first what are the building blocks you can play with before you can start doing anything useful, but let's face it developing a real application instead of doing exercises based on a book it's much more fun. This method has it's drawbacks but for me it gets the job done and motivates me to go beyond the initial rush of taking over a new personal quest and keep on struggling to understand the new concepts.

I am still lacking crucial experience with some of the other aspects for the Android, like services, intents, broadcasts, but I plan to keep on studying in parallel with the projects I make. It's just that I found it much more rewarding to figure out new things as I struggle to implement something rather than following for weeks in a row a examples from a book.

After the first part of the book, dealing with fragments, viewpager, viewlist and making them all fit together nice and tidy, I found it extremely hard to reproduce it all over again in my new app. While I was coding the example app from the book, all was clear and I understood everything I did. When I had to do it all over again on my own in a different project, reality was different. In fact I failed miserably and realized that all I did so far was to try to memorize something that others have wrote it.

My new app is starting to get shape. It's using the Model-View-Controller architecture because I found if very useful to separate an application into distinctive layers. This makes the app maintenance much easier. I hope I will find the time to build the anthem database, which I am lacking at the moment. It's a very tedious job but it has to be done if I want to move forward with this project. After a day spent understanding Google Analytics, I think I have a fairly good idea of how to integrate it and in what way it can assist in understanding behavioral patterns of my future user base.

After I gather the anthem database and figure out how to make the sons play, the app with be ready to be launched on Google Play market as a beta release.

Wish me luck!

No comments: