Wednesday, June 25, 2014

Google IO2014 - We live in a world of apps

Google IO2014 just started about an hour and a half ago with the Keynote introduction.

They set up a nice page to watch live stream. So far I am not impressed about what Google plans to release. The only interesting thing I saw was the L platform, which I expect to materialize in a new Android release. The L platform will add a big UI improvement especially when it comes to graphics and animations and some interesting improvements in performance. Seems that in the Google is ready to switch to ART runtime so we should expect in the next Android release that ART runtime will be enabled by default. The performance graphs shown during Keynote presentation promise a big improvement compared to Dalvik runtime.

Another topic presented was about wearable smart watches. This didn't impressed me much. I have mixed feelings about smart watches. What they shown in presentation looks nice and cool but I can't image how a battery on such a small can last more then a few hours. Based on the feedback from colleagues who tried smart watches I'm not gonna rush to buy one yet.

Google also worked on an SDK for integrating your Android smartphone with your car computer. They shown a few features, like voice searching, turn by turn direction, message sending but nothing that impressed me.

Android TV was another topic that was presented during Keynote. Google apparently struck some deals with a few producers of smart TV's to produce the next generation of their TV's with Android on them. I'm curious if these deals will actually materialize or the major hardware producers will decide to implement their own solutions. So far Samsung has done this with their smart TV application and in my opinion this has not been a good experience for the users. I own such a smart TV and the "smart" part of lacks a lot of features and functionality.

Google Chromecast sounds promising but we'll see if it will catch momentum or it will be just another soon to be forgot tentative by Google to tap into the huge world of television. I have to admit that the price of 35$ is tempting enough to give it a try on my old Samsung Smart TV. Maybe with this little stick, I can actually use the smart part of my TV :)

Google Chromebook was another topic presented during the Keynote. I never really saw the benefit of owning a Google centered laptop with limited functionality. The features presented didn't impressed me enough to consider it as a possible acquisition for the future. I'm still going to stuck to my old and trusty laptop because it's allows me to run a much wider range of applications. Especially when it comes to development of applications, I don't see how a Chromebook could ever replace the laptop.

If I were to summarize in two words this year Google IO, those would be "Apps everywhere". On your smartphone, car, TV and laptop, Google wants to run their apps from Google Play. For every platforms they provide SDK trough which a developer has access to API's so it can create his own apps. Maybe it's just me, but apart from a few apps that I use on a regular basis on my smartphone, I haven't installed new ones in a long time.

We'll see if what future awaits...

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!

Wednesday, June 04, 2014

Is freelancing an option?

Recently I decided to give another try to freelancing.

The first platform that I will use to test if freelancing is an viable option or not is I came across it while searching on Google for freelancing possibilities. Since I am still rather new into Android world, I'm not thinking yet of changing my career so I thought that once I gain a bit more experience, I will try my newly acquired skills in real world. There is one thing to sit comfortably behind your desk and study a new programming language, working on some simple applications and another thing to be under the pressure of reaching a set of milestones agreed with a customer.

I was rather surprised when I tried to make an account on, because they told me my email address was already in their database. Initially I thought I was a victim of a scam and someone else used my email address to create an account on my name. After requesting to reset the password by email, I realized it's in fact my old account on RentACoder. I already had some reputation based on a few small projects I did a few years ago so I decided to give it another try.

Rather then being another faceless figure on an website, I decided to invest some time into creating a sold profile, enumerating my achievements, education, diplomas and portfolio. To my surprise, the list of achievements was not as big as I expected. My portfolio for example contains only a small Android application that I created as part of my recent study. The website has an interesting experience and credit based system where you progress quite fast in the beginning by completing various tasks. This guided me on completing the profile and earned me some credits that I decided to use to take two free level 1 certifications. The exams taken were C Level 1 and Numeracy Level 1, which according to the commercials I saw on the website will increase my chance to win some projects.

Now that the profile is finalized comes the difficult part of winning projects. uses a system of bids to win projects. An freelancer, as myself, bids on various projects posted by other people. A project that is posted only for a day or so has usually 10 or more bids. Without a good rating and a strong network of former employees, winning a project will be quite a challenge. This was the reason I stopped using the website in the first place. After spending several days making bid after bid on smaller projects, to gain some reputation, I kept failing to win them. I got demotivated and gave up.

Let's hope I will find a way to overcome this major step and make a way to put my newly acquired skills as Android developer to a good use.

For those interested, here is a link to my profile.