Making Android apps: “Hello World”, why so complicated? pt. 1
Getting into a new language or technology often has a ridiculous barrier to entry. Ancillary setup tasks and gotchas have long since been done and forgotten by the teachers. Factor in different environments per user, ever-changing tools versions, and the unknown unknowns (what’s a “JDK”?), and many potential novices are scared away before they’ve typed a line of code. If you don’t have some programming background, even the most considerate YouTube lecturer might be incomprehensible.

And I’m as guilty as any developer — my raging filesystem frustrations and questions about IDE dependencies vanish like so many StackOverflow browser tabs, Ctrl+W’ed away in the joy of getting a personal app running. Only when friends and acquaintances ask about getting into building apps do those repressed Googlings come back, and I’m frustrated anew at how hard beginning Android development is.
Goal: Get “Hello World” running on your phone (or emulator)
Making apps is extremely fun and satisfying, and the tools have gotten very good. It’s just a really tough road at first. So here I will try to act as a sympathetic, seasoned guide to making a simple app. But first, let me be a complete hypocrite and assume you’ve jumped through the non-trivial hoops to get Android Studio up and running. Android Studio is the official IDE (text-editor for code + tools for running code) for Android.

Open Android Studio. Right off the bat, we have fiveoptions and two overflow menus. Could be better, but not too bad for a newbie’s eyes. Let’s try that top item.

Lots of potential questions and no guidance.
Your Application name doesn’t really matter; this is not locking in your app name.
Package name: If you’re a beginner, this probably won’t be the app you publish, so make up any old thing like FirstnameLastnameTesting.com
If you do want to publish an app Package name is very important and a pain to change. If you own a domain, use that, as there are potential tie-ins web links and organizational conveniences with Privacy Policies and Terms of Service, requisite webpages for publishing apps.
C++ support is usually for app components that need to run really fast and / or make use of the GPU. If you’ve read this far, you won’t need it.
Project location is the place on your filesystem that this project lives. If you’re not a compulsively organized person, leave it alone. Next…

Pick Phone and Tablet.
←This is stupidly complicated. The Android platform has variations (not to be confused with SDK versions) for different hardware, like cars and watches. Within those top-level categories are the SDK versions, which are the regular updates to the platform, introducing fixes and features. For our inconvenience, there are 3 names to keep track of: an API number, an Android version with a decimal, and a dessert. I keep a printout of this chart at my desk.
If you just want to get something running on your phone, you can set the Minimum SDK to match your phone (Settings -> About device -> Android version). But you’re ok to leave this all alone and not worry about the “fewer features available” thing. Next…

Choose Empty Activity. If you have another tutorial with Activity code you’d like to paste in, you could go with Add No Activity, but we will have to part ways regarding this article.
If you have a very specific app in mind, and it has scrolley news-feeds and pages of recipes and fits nicely in every promotional Android / iOS video, this page is for you. Personally, I hate this page because it assumes high knowledge and low interest in implementation, but you may find it helpful to try each one out. Next…

This is partially our fault for asking for a new Activity. The Activity Name doesn’t matter, nor does the Layout Name. You can keep all the defaults checked, or you could uncheck Backwards Compatibility, unless you have 4+ year-old phone. Finish!
We did it! It’s unclear what the app code is or how to get it on a device, but one of the files / settings / buttons must do it. We’ll explore it next post.

