Let’s see how we can apply Joshua Bloch’s Effective Java in the Kotlin world, starting with Creating and Destroying Objects.
[Read More]Kotlin Coroutines: Flows
Kotlin Coroutines enables us to asynchronously return a single value, but how about multiple values?
[Read More]Kotlin Coroutines: Structured Concurrency
In the previous article, we discussed the basics on how to Kotlin Coroutines. Now, let’s continue to the topic of structured concurrency.
[Read More]Kotlin Coroutines: The Basics
Starting with the 1.3 release, Kotlin provides a nice and flexible way to do asynchronous or non-blocking programming: Coroutines.
[Read More]Kotlin Standard Functions: apply, also, let, with, and run
Kotlin has provided several powerful functions in Standard.kt. Let’s go through them here quickly.
[Read More]What You Should Know About SharedPreferences
Shared preference is a built-in key-value store for primitive data types. It’s very easy to use, but there are some hidden mines that you may want to know.
[Read More]Wrapping Existing Code With RxJava
We are using RxJava in Android a lot, with good reasons. However, we still need to use code that is not built with RxJava, so let’s wrap them.
[Read More]Create Chooser Intent with Packages Excluded
It’s extremely easy to share with Intent on Android. However, there are some apps that capture the ACTION_SEND
intents, but doesn’t allow the app to pre-fill text set with EXTRA_TEXT
, resulting in poor user experience.
Write Own Osmosis Plugin
Osmosis is a command line application for processing Open Street Map data, with the souce code available here. The tool provides e.g. ability to generate and read data dumps, extract data inside a bounding box, etc. You can also easily write your own plugin to convert OSM data to e.g. formats your application understands.
[Read More]BLE on Android
Android supported Bluetooth Low Energy / Bluetooth Smart since 4.3 / API level 18. However, it’s not nice, in many ways.
[Read More]