Photo by Sigmund on Unsplash

Why using Hilt?

When it comes to Dependencies Injection in Android development, we don’t have many choices:

  • Use a 3rd party library like Dagger or Koin

Despite Dagger's power of auto-generating code for DI, the learning curve is still a big problem for new learners.

Understand that pain point; Hilt was built on top of Dagger to simplify the configuration (which is quite much and complex) and let the developers focus on declare dependencies definition and…


Photo by Philipp Katzenberger on Unsplash

As an Android developer, you probably want to encrypt your application data at some points for security reasons. Those sensitive data can be varied from personal identifiable information (PII), financial records, to enterprise-related data.

By using Jetpack Security (JetSec), you can easily encrypt Files and SharePreferences locally to protect your sensitive information.

Include JetSec into the project

To use JetSec in your project, just simply adding the dependencies below in your app’s build.gradle:

dependencies {
implementation "androidx.security:security-crypto:1.0.0-rc03"
}

Key Generation

JetSec library uses the 2-part system for key management:

  • Master Key: the key to encrypt…


What is Clean Architecture?

Clean Architecture is a software design philosophy that separates the software into many ring levels:

The Clean Architecture by Robert C. Martin (Uncle Bob)

Each of the circle represents different layers of your software and must follow 2 important rules:

  • Abstraction Rule: The more inward you go, the more abstraction the source code is. In another word, inner circles are business logic while outer circles are concrete implementation.

What is the purpose of Clean Architecture?

Like many other architecture patterns, the main purpose of Clean Architecture is separating concerns. So that:


Photo by Pathum Danthanarayana on Unsplash

1. What is ANR?

ANR stands for Application Not Responding, which is the state that your application cannot process user input events or even draw.

The root cause of ANR is when the application’s UI thread has been blocked for too long:

2. Some common cases that cause ANR

  • Perform long-running tasks (IO, heavy computation,…) on main thread
  • Main thread is blocked by a long execution task in another thread
  • Main thread is doing asynchronous binder call with another process…

Trinh Le

Glasses 👓 Geek 💻 Backpacker 🎒 Climber 🧗‍♂️

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store