Android Developer Q&A

When one teaches, two learn. — Robert Heinlein

As of this writing, I’m in term 2 of Udacity’s Android Developer Nanodegree program. When I enrolled, I already had years of Android experience. Nevertheless, I expected to benefit from some formalized training. Plus, I really want that fancy certificate of completion. 😀

What I hadn’t anticipated, however, was the opportunity to help other students. After all, the best way to learn is to teach! What follows are a sampling of answers I’ve authored during interactions in their Q&A Knowledge Board and Student Hub. Hopefully others will find it helpful.

Read More

Jetpack Example with Service Call Canceling

I’ve been working hard to update my Android skills by using Dagger, Retrofit, Kotlin and architecture components. I’ve found that a great way to learn about this new world is to build upon two Google sample projects:

These demonstrate different approaches to Jetpack development. I’ve taken what I think are the best ideas from each and combined them to form a new sample project that others may find useful.

In addition, I implemented a design for canceling the underlying web service connection from Retrofit REST calls. I also introduced a means of adding intentional delays into these requests while testing.

Read More

Navigation Component with a Shapeshifting Fragment

I started playing around with the Navigation Architecture Component for Android. I work on an app with complicated navigation that relies on the back stack for nested fragments and deep links. Different users can experience different interfaces, reach areas through various paths and jump around from the drawer and bottom nav. There’s a lot of data passed in and out, and transitions can be overridden to keep everything pretty. Needless to say, I’m skeptical of anything flexible enough for all this.

Screenshot

As my first test, I wanted to try to use the Navigation Component for Fragment A going to Fragment B. The latter will be a form that has 4 states of its own—that is, it has text, fields and buttons that show or hide using animateLayoutChanges for effect. An example of this might be a product intro fragment (A), going to a fragment (B) that quadruples as the forms for signup (B1), signin (B2), forgot password (B3) and more-info (B4) screens.

The navigation graph can be represented as A->B1 [->B2->B3, ->B4].

Read More

Vert.x with Self-Signed SSL Cert

I recently noticed that my android app could no longer talk SSL directly to my Vert.x server (using a self-signed cert since it’s just for me). The client exception was:

    javax.net.ssl.SSLPeerUnverifiedException: Hostname example.com not verified

It turns out, Android 9 includes a documented change that requires certs to include a subjectAltName field.

Read More

Vert.x with IntelliJ on Windows

If you use Vert.x with IntelliJ, you may have found yourself frequently running jps and taskkill to clear out all of the extraneous io.vertx.core.Launcher processes. I do this every time I re-run my projects—seriously, is it just me?

But I may have just come up with a solution!

Read More