With a well-designed support for structured concurrency, cancelling should be easy, and calling job.cancel()
will do the trick, right?
Get notified when bound client is dead
In Android, a client can bind to a Service
running in a different process and even a different APK, but how could the bound service know the remote client is killed by the system and release the resources?
New York Times: Asians 'vividly overrepresented'
Asian Americans are doing a fantastic job in the Winter Olympics. But instead of celebrating the success, New York Times decided to launch a new round of racial attacks.
[Read More]New Bluetooth permissions in Android 12
In this article, I will discuss the new Bluetooth permissions introduced in Android 12.
[Read More]Understanding BLE throughput on Android
We have been told that the BLE can reach a throughput of 1 Mbps (or 2 Mbps with Bluetooth 5.0). But why do we always feel it’s extremely slow in practice? In this article, I will try to explain this, and how to improve throughput on Android.
[Read More]Getting started with Kotlin Multiplaform Mobile (KMM)
Kotlin Multiplatform Mobile (KMM) is a cross-platform framework to share code for Android and iOS apps.
[Read More]Model-View-Intent Design Pattern on Android
Model-View-Intent (MVI) is one of the latest design patterns for Android, which relies heavily on reactive and functional programming.
[Read More]All Democratic Senators voted for racial discrimination against Asians in higher education
Yes, you read it right: today, all Democratic Senators voted to allow racial discrimination against Asians in higher education. And yes, all Republican Senators voted against the discrimination.
[Read More]Three Programming Paradigms
In this article, we talk briefly about the three programming paradigms that are widely used: structured programming, object-oriented programming, and functional programming.
[Read More]How US Respond to Coronavirus in Early Days
Here is the timeline on how US responded to Coronavirus from middle January to end of March.
[Read More]