Useful articles and videos

Material Icons

As a part of their Material Design Google has released a great set of icons. You can import the whole library or just the icons you need for you project. The icons come in many sizes, so it is easy to cover different size screens.

Google: Color palette

A main focus of Google has been Material Design, these color palettes work well with other projects also. It’s easy to find a nice shades in different colors, that you can use together.

Live Templates in Android Studio: Using and Creating Them

A video from the Android Developers YouTube channel about live templates, which are snippets of code you can easily use again. Only write the correct start and then press start.

Pivotal Ep 0: When Building Apps the Wrong Way Can be the Right Way

A video from the Android Developers YouTube channel about practical app development and trying out things first before being too concerned with the right architecture of the program.

Udacity: Android – Courses and Nanodegree Programs

Udacity is a site with free and paid online courses on a variety of software development topics. The content is made in co-operation with Google and is very clear and informative. The courses include exercises and downloadable projects. The courses are also a lot less verbose than some online courses, so it’s more actual coding and less watching videos.

Analyzing code with lint

Lint is a tool that analyzes your code for several different purposes. You can start the built in lint tool from Analyze > Inspect Code. Which prompts a selection where you can select the part of the project you want to inspect.

lint
Select what to analyze

You can customize the Inspection Profile to a great degree and make different kind of inspection profiles. The default profile is a good place to start, because it will cover many different aspects of the project and covers certainly for someone starting to use lint.

 

lint-inspections
Configuring inspections

After you run lint, you will get the results in the bottom. You can go through the lists and select individual errors, if you right click the error, lint offers you few options for example exclude or suppress lint annotation. Suppress lint for example will add an annotation, so in the future lint will not report the same error if it was unnecessary.

lint-tool
Lint categories

Lint is a great tool, especially for finding unnecessary code and other pretty straightforward errors. In practice you will often see errors that are not actual errors, so proceed using lint with care. It is first good to fix one error at a time and run the app after the fixes so you get a feel for what kind of errors lint is best suited for. You will get quite a bit of unnecessary error reports also, by running lint in a few different projects you will get to know what lint is best suited for.

Preview multiple screens

When you select a layout xml-file, you can either see the layout as text or design. In design view you can see how the layout would look on the phone screen. And here you can select a certain phone model and then switch between portrait and landscape modes.

At the absolute bottom of selecting the screen size there is a really nice feature, Preview All Screen Sizes, where you can see all the Nexus phones at the same time. Here you can also switch between portrait and landscape layout even though it takes quite some time and in that sense it is not very practical.

preview different
Preview all screens

Instant Run

So you’ve pressed Shift+F10 again (Run > Run ‘app’) and the emulator is painstakingly slow. Not to worry, because there is Instant Run, a feature that makes the emulator go from a member of the tortoise family to Usain Bolt in a matter of seconds. Plus you get a pretty neat lightning next to you run icon.

instant-run-2
Lightning

First go to

File > Settings > Build, Execution, Deployment > Instant Run

and check Enable Instant Run.

Now when you run your app, then make changes to the code, you can keep the emulator open and so the changes will update a lot faster. You do not need to close the emulator between changes, and the changes made in the code will appear in the emulator almost instantly, thus the name Instant Run.

instant-run
Settings

To get more information about this check out Android Developers Blog post about it.

SDK Manager

In Android Studio there are plenty of new updates to the IDE and tools, appearing quite frequently, especially if you are using the canary channel. Canary channel features the latest new features, and while it’s not a stable release, it usually does not have any major bugs so it’s very handy in everyday use.

If you username is Thaddeus (a common name among you young whippersnappers out there). SDK Manager can be found under:

C:\Users\Thaddeus\AppData\Local\Android\sdk\SDK Manager.exe

Then you are treated to this whimsically grey little marvel.

sdk-manager
SDK Manager

Android Studio prompts you with small boxes to update when you open the IDE, but the updates are usually things that are better done with this separate SDK Manager than the one inside the IDE.

Change apk-file name

So you’ve build your first nifty little app in Android Studio and now you want something a little more original than app-debug.apk as your file name. I made a simple todo app, so I will use a mind-bogglingly quirky out-of-box name and I will go ahead call my file todo.apk.

You can use the following in build.gradle (Module: app).

Build.gradle (Module: app)

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            output.outputFile = file("$project.buildDir/outputs/apk/todo.apk")
        }
    }
}