Handling Orientation Changes in React Native

I’ve just returned to my JavaScript days and am trying to learn React Native again. One of the things I like to do is to produce a “perfect” app – one that will work on both tablet and phone in any orientation and that includes all the best practices. Things like my Notes App on…

Android Notes App: Content Providers

In my last blog post, I introduced a new app I am working on. It’s a typical notes app, but I’m writing it to use all the best practices and learn a lot of the internals of Android app writing. Todays lesson is basically “how do I access data”. My notes app has a Note…

Android Notes App: Master-Detail Walkthrough

I’ve been playing around with Android recently, most specifically to try and get some base applications that I can refer to for basic patterns. One of the patterns I want to play with is the master-detail pattern, which fortunately is a standard layout mechanisms that you can choose when you create a . The master-detail…

Layout Managers in Android: The Basics

Continuing my research into the Android world, I’m concentrating today on layout managers (or just layouts). The position of every single widget on the screen of the device is controlled by the layout manager. In some cases, the visibility (or lack thereof) is also determined by the layout manager. Fortunately, there are only a few…

The Things I Like (And Don’t Like) About Swift

Recently, I’ve given myself the task of learning the “native” mobile development platforms.  That means Java or Kotlin for Android and Swift or Objective-C for iOS development.  Kotlin is a ways behind Java for Android development and I already knew (somewhat) the Java language, so that one was relatively easy.  Swift is the new kid…

Simpler View Binding with Android

I recently wrote a couple of Android apps in the native Java language. One of the things I hated about this was the amount of boilerplate. First, I would create a UI element and give it an ID – something like: Then I would go to my activity and add a private variable for each…