All Blog Posts

Freeish Time: Android Developer Fundamentals

As you will know, we love innovation, and in particular our very own innovation time or “Freeish Time” as we like to call it. For those that don’t know, “Freeish Time”, is the opportunity for our Cubes to work on passion projects outside of their work projects. This is an extra-special edition as we sit down with Georga, our apprentice Android Developer and overall coding rockstar!

Development

As you will know, we love innovation, and in particular our very own innovation time or “Freeish Time” as we like to call it. For those that don’t know, “Freeish Time”, is the opportunity for our Cubes to work on passion projects outside of their work projects. They have an entire week to identify a problem, build and create a solution, then present it to the rest of the crew during our Friday Happy Half Hour meeting.

This is an extra-special edition as we sit down with Georga, our apprentice Android Developer and overall coding rockstar! Georga is our first apprentice and has been an absolutely fantastic addition to the team. We wanted to find out what Georga got up to in her latest Freeish Time… 

What inspired your innovation time?

Being at 3 Sided Cube for a while now, I have been working on some absolutely amazing projects. However, going from a React Native project to a native Android project, I realised that I wasn’t quite as confident at the latter as I wanted to be. I thought it would be useful to use my Freeish Time to get up to speed with the current capabilities of native Android as it is an ever-developing language.

Talk us through what you did

With that in mind, I started to look for courses and managed to find the Android Developer Fundamentals course provided by Google Developers. This seemed perfect as it included code labs, theory documentation, accompanying videos – basically everything you’d want from a course!

The course consisted of four units including;

Unit 1: Get started

This looked at installing Android Studio, understanding project structure, building your first app, creating activities, testing your apps, and using the Android Support Library. This was a pretty easy introduction to all things Android, and covered the basics of getting started, so it was nice to go over stuff I already knew before starting some of the more in-depth parts of the course.

Unit 2: User experience

This unit covers how to get input from the user, implement navigation strategies, use themes and styles, test your user interface, and follow Material Design principles. It was really interesting to cover elements like this, as usually I just have to implement pre-made designs, so now I know a bit more about the factors to consider from a design and user perspective when I create my own app!

Unit 3: Working in the background

I think the practicals for this unit will be especially useful as his unit covered how to do background work, how to schedule tasks, and how to trigger events. It covers the performance implications of executing work in the background, as well as best practices for reducing battery drain. This unit is as far as I’ve been able to get in the course, but I’ve definitely already learned loads!

Unit 4: Saving user data

In this unit, you learn how to use shared preferences to save simple key-value pairs, then you learn how to use the Room database to save, retrieve, and update user data. I am looking forward to eventually covering this unit as I feel the theory in this will be beneficial to me as I haven’t yet learned much of what the unit covers in as much depth as the course will go into. I’ll definitely have a lot of notes to make when covering the theory as well as the practical!

What were the key learnings?

At the start I set out three goals: to better understand how things work, learn any new features that have been added and also to refresh on anything I had forgotten.

I have been able to fulfil all of these goals, which has made me feel quite a bit more confident in my skill set. Doing this course has also given me time to learn the “why” of Android development, as in “why are things done in a certain way?” as opposed to just “this is how you add this feature”. I’m hoping that by understanding the “why” I will have gained an even better understanding of Android best practices, so I hope to see an improvement in my development style and also my confidence.

Once I’m done with this course I hope to take a look at the Kotlin version of the course. I do want to learn Kotlin eventually, so hopefully, this will be a helpful introduction to the language, and it will also be interesting to see how differently Java and Kotlin Android approach the implementation of the same types of features. 

We really love it when our Cubes use their Freeish Time to extend their skills so that they can develop themselves but also the team!

Published on August 27, 2020, last updated on October 12, 2020

Give us the seal of approval!

Like what you read? Let us know.

20

Tags