Skip to main content


With the release of Android Q Preview at Google I/O 2019 this year I wanted to put together a tutorial on one of my favorite topics in mobile development, application networking. Specifically, in this tutorial, I will be covering how to detect network connectivity on an Android device from an application's perspective.

Java is a very concrete and powerful language.  In the last 20 years Java has become a staple in enterprise, mobile, and server side computing.  However, if you're coming over to Java from languages like Swift, Python, or Haskell you might say be wondering about different functional aspects of Java.  One question I had is, "How come Java does not support n-value heterogeneous return type tuples?"  The answer is that Java's methods are intended to have one return type per method call.