My Audible Library

[Frequently updated]

I’ve been an Audible listener since 3/7/2016. On 3/28/2020 I finally reached Master rank with over 500 hours of reading time!

My current library of over 70 books is below. I listen to books about business (leadership, career skills, startups), marketing, motivation, psychology, science, and technology.

Read More

You are now a Google Certified Associate Android Developer

Congratulations! You passed all of the requirements for the Associate Android Developer Certification exam!

I recently took a break between terms of Udacity’s Android Developer Nanodegree program so that I could take Google’s Associate Android Developer exam. Finally, the results are in! Pretty happy to pass it on the first try. Queue the emojis! 😜😁

There are currently only 156 of us in the alumni directory for all of North America.

(I have also since graduated from Udacity!)

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

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

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

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