All Blogs

Android System Design Interviews

Android System Design Interviews

Android System Design is the process of defining the client components, API requirements, and database tables of an app to meet the given requirements.

Write-Ahead Logging (WAL)

Write-Ahead Logging (WAL)

Write-Ahead Logging (WAL) is a database technique where every change is first written to an append-only log before the database files, to keep data safe in a crash.

Composite Index in Database

Composite Index in Database

A Composite Index is an index created using multiple columns of a table. It speeds up queries on those columns, and the order of the columns matters a lot.

CoroutineContext in Kotlin

CoroutineContext in Kotlin

CoroutineContext in Kotlin defines the environment in which a coroutine runs, using elements like Dispatcher, Job, CoroutineName, and CoroutineExceptionHandler.

Parcelable vs Serializable

Parcelable vs Serializable

Parcelable is an Android-specific interface that does not use reflection, so it is faster. Serializable is a Java marker interface that uses reflection and is slower.

String vs StringBuffer vs StringBuilder

String vs StringBuffer vs StringBuilder

String is immutable, StringBuffer is mutable and thread-safe, and StringBuilder is mutable but not thread-safe, which makes it the fastest of the three.

data class in Kotlin

data class in Kotlin

A data class in Kotlin is a class used to hold data. It automatically generates equals(), hashCode(), toString(), copy(), and more for us.

Extension function in Kotlin

Extension function in Kotlin

An extension function in Kotlin lets us add new functions to existing classes without modifying their source code. We will also learn how it works internally.

Database Normalization vs Denormalization

Database Normalization vs Denormalization

Database normalization focuses on reducing data duplication and keeping data correct, whereas denormalization focuses on making the queries faster.