-
Automatically adding build time to your Android app
When releasing an Android app, it can be useful to show your users the current version name (BuildConfig.VERSION_NAME) or code (BuildConfig.VERSION_CODE). Another nice feature is showing when this version of the app was built, to reassure users that features / bug fixes are being released frequently.
-
Creating a preference utility to safely handle Android SharedPreferences
Saving and retrieving shared preference values in Android is relatively straightforward, but doing it safely can be problematic. For example, you may set a default value, then accidentally use a different default value when retrieving!
-
Using PreferenceFragment to effortlessly handle user settings
Handling user settings in an Android app is initially quite straightforward. Most apps use SharedPreferences to save a few booleans or strings, then read these values when necessary.
-
How to define BuildConfig values (e.g. server URL) using both build flavor and build type
When creating an app, build variants are almost always used to some degree. For example, working on a debug build during development but publishing a release build. These buildTypes are a good way of distinguishing between multiple environments your app may run in. You’ll often have a QA buildType that talks to a different server than your live app. Setting server URLs for each buildType is a very common practice, and is usually enough.
-
How to add padding to an Android vector drawable
When adding icons to Android apps, you’ll generally be working with square icons. For example, the excellent built-in vector icon library (also available online) only contains perfectly square icons.
-
How to share dependencies in a multi-module Android app
Note: This post is a tidied up version of my answer to a StackOverflow question about structuring multi-module apps.
-
How to handle colours logically in a multi-flavour Android app
Handling colours in Android apps is generally pretty straightforward, as simple hex codes are used. However, standardising these across the entire app can be an easily ignored task, one which is essential for multi-flavour apps. Correctly utilising colours allows a single codebase to produce app flavours with radically different colours, e.g. to match company branding.
-
Android Developer Nanodegree enrollment closes soon!
Just a quick notice that entry to Udacity’s Android Developer nanodegree closes in around 32 hours after this post is published!
-
Using StickyLayoutManager to give your RecyclerView sticky headers
Once you’ve created a RecyclerView with headers and content, it’s often useful to have the headers “sticky”. Sticky headers will display over the top of your content, and help your app’s users keep track of which section they are currently in.
-
Creating a RecyclerView with multiple content types and layouts in Kotlin
RecyclerViews are a little bit complicated to get started with, but almost every app has one or two of them somewhere. One of the first problems you may encounter when using them is their lack of a built-in way to handle multiple content types. Creating and binding a single layout is very straightforward, but multiple layouts requires a slightly more complex setup.