Android Basics: User Inputs

with Udacity

The three main apps I built during the multi-hour course

I finished the first section of the Android Beginner’s Nanodegree just under 2 weeks ago primarily feeling like I wasn’t making a whole lot of progress towards making any kind of real app. That has definitely changed now.

The pace and pressure of the course definitely stepped up, with a significant portion of the last 2 sections on Object oriented Java involving quite a bit of “add this thing we never told you how to do using the resources we have taught you to use.” It’s a nice touch to have, ensuring the student can navigate the android developers pages as well as utilize StackOverflow for help. The classes can never teach every last thing, and any developer has to be well versed in discovering things for themselves.

However, the presentation surrounding the materials is still rather boring, if not childish at times.

Meet the instructors…(sigh)

But teachers will always have a hard time trying to keep things fun, even when they don’t need to, so I’ll just move on to talking about the 3 main apps I made during this course.

Jiu Jitsu Sparring Scorekeeper App

Throughout this course, you’re primarily working on a very basic “coffee ordering app” which I will get to as my second app. However, you regularly do take breaks away from this to toy with some other features or even make a whole other application with some of the new tools.

This starts with the guided build of a basketball score keeping app with a simple interface and buttons that increment a score for both teams. After this is built, the first app project is issued and requires making an additional scorekeeper app. A student could get away with meeting the rubric for the project making something nearly identical to the guided app, but I pushed myself to utilize a slightly more advanced layout.

The guided scorekeeper build, and my custom JiuJitsu scorekeeper app

At this point in time, handling EditText for entering fighter names was unknown, even the methods for handling the updating of the score TextView was unexplained and, instead, just provided as a copy paste. This left the main work in simply creatively working with the layout to give a more dynamic feel and information exchange.

If this were to be made into a real app that people could reasonably find some utility from, adding a timer in the open white space would be the next major step. Sparring is done in short time spurts (of 5 minutes) so a timer is always on hand, and having that built into this app would give it the basic utility to be useful. However, that’s well above my level right now!

GongCha MilkTea Orderer

The main app being built in a guided manner is this Coffee Ordering app. However, I really dislike coffee, probably making me not cut-out to be a developer. I do love milk tea though, so I decided my app would be for ordering milk tea instead!

By the end of this guided build, a student learns using more input focused views like CheckBox and EditView, as well as learns how to identify views, push information to them, and read from them. This begins with just simple buttons for ordering more coffee, and later taking the customers name and preferred toppings.

Finally, students also learn how to add multiple language support (I added Korean) and push out content to another app. As this is still early on, to “order” the coffee, an order summary is just pushed out to an email app to complete the order. The layout is still simple and the “design” aspect of making apps is only barely touched on.

Ingrained Korean language support, although most of that hangeul is just English anyway

Plastic Waste Quiz App

As the final project of the course, I was tasked with building a basic quiz application, taking in the users responses and comparing them against the answers and producing a final score.

Technically, I failed to meet the standards of the project rubric, but since I’m not actually paying for the Nanodegree, no instructor or evaluator sees my work anyway. While the rubric calls for using Radio buttons, CheckBoxes and EditText views to collect answers, I used only Radio buttons, as it felt better with the design I had in mind, which would be a single screen with changing questions and answers instead of a long scrolling layout, like was clearly expected.

I dove into AdobeXD to come up with a visual design I was okay with, and consulted with the material guidelines and color guides. This was really helpful as it gave me a much stronger idea what what my goal was than going directly into Android Studio, or bothering to draw my idea on paper, like is often suggested. I decided to add many more features than were specifically requested, like a ProgressBar and a Floating Action Button.

The Adobe XD prototype of the Plastic Waste Quiz

I had ended up choosing this topic as my girlfriend is a super big fan of the environment, and we regularly talk about the issues of plastic waste. Korea recently even banned the giving out of plastic straws without special customer request, so this is particular relevant to our lives.

With this mockup done, I started in Android Studio setting up the single page layout. I had to google quite a bit to learn new things, like using vector assets, ProgressBars, adding shadows to text, and how to even MAKE a Floating Action Button.

After an hour or so of trying to figure out the FAB and failing again and again, I wrote it off as a lost cause — just another thing I’ll figure out how to do later. Getting the RadioButtons to behave properly under this unconventional usage was also a challenge, and did require a bit of background compensating for their quirky behaviors that don’t seem to make a lot of sense.

I persevered and produced a working quiz app, similar to how I imagined, which you can see towards the end of this video showcasing all the apps from this project with a tiny bit of my commentary.

All the apps I made in this course!

The next course is on making apps that have multiple screens, so next time my apps might be a bit more useful than they are now!