After only two weeks of learning Java and one week trying to get to grips with Android, Kate’s cohort was tasked with making an app. As with their previous project, they were given a choice of several briefs and a week in which to get as far as they could.
Both projects have been intense: you take everything you’ve learned in that module and combine it to make a functioning product. During the first project everybody was keen to prove themselves and stress levels were high as a result. As a cohort we had somewhat overambitious visions given the time constraints and were therefore a little disappointed with our projects. Looking back, we were being very hard on ourselves.
With the Java project, however, we’d settled into our learning and at this point in the course we’re much more confident of our abilities. As a result we approached the project with a clear sense of what it was really for: learning.
Of the various briefs, I settled on the food tracking app. I felt that it was the project with the most interesting potential extensions and that would best help me achieve my learning goals, which were as follows:
- Gain a deeper understanding of the components that comprise an android app, and how they hang together
- Learn how to implement a database for an app
- Research and learn about a couple of features of android that we were not shown in class
I think I met all of these goals and have come away from my project with a much better understanding of Android than when I went into it.
Building the app
Here’s a breakdown of my week putting together Pickle: A calorie free food tracker.
We were given the project briefs on Thursday and told to spend the day thinking about which one we’d like to do. The instructors gave us guidance on the direction each project would likely take and what we might have to learn for each one. I knew that I wanted to implement a database, something we hadn’t learned in class, and so I had to choose between the to-do list and the food tracker. By the end of the day I’d decided on the latter.
For the solo projects the instructors put us into planning teams according to which brief we choose. This is great because it means that you get to bounce ideas off your classmates before implementing your plans alone. The group of us making the food tracker each had very different ideas about the kinds of features we wanted so we spent Friday planning the shared elements and then gave each other feedback on the areas where we diverged. I always find this part of the project the hardest because I just want to get stuck into the programming, but the more planning done early on, the less heartache later.
Those of us who had decided to have a go at using a database for our app were advised to spend the weekend getting to grips with that. I spent some time reading through various resources but I learn best by just trying to build something that implements whatever it is I’m trying to understand. I bashed together a simple program that had a database in order to answer questions that my research had raised and then got going on the database for my actual app.
On Sunday I met up with some of my classmates to work at CodeClan, because it’s much nicer to work near others even if you’re not working together. I spent the morning setting up my project board so that I could keep track of what I had to do over the course of the week and putting the finishing touches on my database code.
It was the first nice weekend in a while so I also took some time off to take my daughter to the botanic gardens.
Of the whole week, Monday was the toughest day for me. Whilst on other days I implemented features that were hard and got stuck on difficult errors, I was always having fun. On Monday I struggled to focus, and berated myself for not getting enough done. Looking back on it now, I actually did manage to get a fair bit done that day, including getting the front page of the app displaying a list of foods that have been input by the user, and slightly restructuring my database so that foods could be grouped into meals.
Tuesday was the best day. I had a lot of what one of my classmates and I call “Power Lady Moments”™. Having struggled on Monday I decided to spend the first part of Tuesday planning to give myself a clear direction. I did this with a classmate who was also making the food tracker project and as a result we both had very successful days. I learned a new kind of UI layout which involved some fancy backend magic to get working. She worked on data visualisation and made some pretty awesome pie charts. It was a good day, everything progressed well and the high-fives were flowing.
Oh Wednesday. What to say about Wednesday? It was the day I decided that my app needed a menu. And not just any menu: a slide out “hamburger” menu. After a morning of research, trying out an initial solution, and then discussing my approach and the problems it was causing with one of the instructors I found that I’d need to restructure my whole app in order to make it work. I had a day left. “You can do it” my instructor said, so off I went. I forgot to take breaks, I didn’t eat lunch, and there was a point where everything was broken, but I had a blast and SPOILERS I did it.
After foolishly ignoring my basic human needs in favour of learning on Wednesday, I came into CodeClan on Thursday frazzled but buoyant. My code was a bit of a mess after working on the menu so it was time to refactor. After sneakily learning how to make pop up boxes I rearranged and edited some of the uglier bits of code, had the final code review with an instructor and ended the day with a beer.
Presenting the project
The Friday after handing a project in is always spent on presentations. Each person in the class speaks for around ten minutes, demoing their project, talking about the challenges they faced and explaining what they learned. With the Ruby project, everyone in the class made something relatively similar, but with the Android app we each pursued our own learning direction and ended up with quite different projects. This made the presentations even more interesting, as we got to learn from each other and understand features of Android that we hadn’t got to explore ourselves.
I am proud of the app that I ended up with when the week finished. I pushed myself to implement features in order to learn and had a lot of doing it. The best part of the week, though, was how my classmates and I worked together. Although we were building solo projects we were a great support system for each other, sharing ideas, giving pep talks or high fives depending on what was needed, and ensuring that no one was left to struggle alone. There are a lot of things I am getting from CodeClan, but the most important one is the network of supportive peers who have my back.