Here I list down all of the high-quality blogs that I publish on my website.
I only create knowledge-packed content so that you get to learn about the following:
- How do things work in Android internally?
- How can you improve the performance of your Android Application?
- Mobile System Design
- Coding best practices
- Mastering Kotlin Coroutines - Mastering Kotlin Coroutines
- Why does an Android App lag? - Learn why an Android App lags
- OkHttp Interceptor - OkHttp Interceptor
- Caching in Android - Caching with OkHttp Interceptor and Retrofit
- How does the Android Image Loading library use the bitmap pool for responsive UI? - How does the Android Image Loading library use the bitmap pool for responsive UI?
- How does the Android Image Loading library solve the slow loading issue? - How does the Android Image Loading library solve the slow loading issue?
- How does the Android Image Loading library optimize memory usage? - How does the Android Image Loading library optimize memory usage?
- Dalvik, ART, JIT, and AOT in Android - Dalvik, ART, JIT, and AOT in Android
- Launch vs Async in Kotlin Coroutines - Launch vs Async in Kotlin Coroutines
- CoroutineContext in Kotlin - CoroutineContext in Kotlin
- Dispatchers in Kotlin Coroutines - Dispatchers in Kotlin Coroutines
- coroutineScope vs supervisorScope - coroutineScope vs supervisorScope
- What is Flow API in Kotlin? - What is Flow API in Kotlin?
- Cold Flow vs Hot Flow - Cold Flow vs Hot Flow
- StateFlow and SharedFlow - StateFlow and SharedFlow
- Suspending vs Blocking in Kotlin Coroutines - Suspending vs Blocking in Kotlin Coroutines
- HTTP Request vs HTTP Long-Polling vs WebSocket vs Server-Sent Events - HTTP Request vs HTTP Long-Polling vs WebSocket vs Server-Sent Events
- Context In Android Application - Context In Android Application
- Long-running tasks in parallel with Kotlin Flow - Long-running tasks in parallel with Kotlin Flow
- Retry Operator in Kotlin Flow - Retry Operator in Kotlin Flow
- Callback to Coroutines in Kotlin - Callback to Coroutines in Kotlin
- Retrofit with Kotlin Flow - Retrofit with Kotlin Flow
- Room Database with Kotlin Flow - Room Database with Kotlin Flow
- Room Database with Kotlin Coroutines - Room Database with Kotlin Coroutines
- Kotlin Flow Zip Operator for Parallel Multiple Network Calls - Kotlin Flow Zip Operator for Parallel Multiple Network Calls
- Instant Search Using Kotlin Flow Operators - Instant Search Using Kotlin Flow Operators
- Exception Handling in Kotlin Flow - Exception Handling in Kotlin Flow
- callbackFlow - Callback to Flow API in Kotlin - callbackFlow - Callback to Flow API in Kotlin
- Kotlin withContext vs Async-await - Kotlin withContext vs Async-await
- Terminal Operators in Kotlin Flow - Terminal Operators in Kotlin Flow
- Remove duplicates from an array - Remove duplicates from an array in Kotlin
- JvmStatic Annotation in Kotlin - JvmStatic Annotation in Kotlin
- JvmOverloads Annotation in Kotlin - JvmOverloads Annotation in Kotlin
- JvmField Annotation in Kotlin - JvmField Annotation in Kotlin
- inline function in Kotlin - inline function in Kotlin
- noinline in Kotlin - noinline in Kotlin
- crossinline in Kotlin - crossinline in Kotlin
- lateinit vs lazy in Kotlin - lateinit vs lazy in Kotlin
- init block in Kotlin - init block in Kotlin
- Retrofit with Kotlin Coroutines - Retrofit with Kotlin Coroutines
- Advantage of using const in Kotlin - Advantage of using const in Kotlin
- suspend function in Kotlin Coroutines - suspend function in Kotlin Coroutines
- Higher-Order Functions and Lambdas in Kotlin - Higher-Order Functions and Lambdas in Kotlin
- Parallel Multiple Network Calls Using Kotlin Coroutines - Parallel Multiple Network Calls Using Kotlin Coroutines
- MVVM Architecture - Android Tutorial for Beginners - MVVM Architecture - Android Tutorial for Beginners
- Why is it recommended to use only the default constructor to create a Fragment? - Why is it recommended to use only the default constructor to create a Fragment?
- AssociateBy - List to Map in Kotlin - Kotlin Collection Functions - associateBy that converts a list into a map
- partition - filtering function in Kotlin - partition - filtering function in Kotlin
- Avoid nesting by handling errors first - Avoid nesting by handling errors first
- Infix notation in Kotlin - Infix notation in Kotlin
- Open keyword in Kotlin - Open keyword in Kotlin
- Companion object in Kotlin - Companion object in Kotlin
- Use setRecycledViewPool for Optimizing Nested RecyclerView - Use setRecycledViewPool for Optimizing Nested RecyclerView
- singleTask launchMode in Android - singleTask launchMode in Android
- RxJava Subject - Publish, Replay, Behavior, and Async - RxJava Subject - Publish, Replay, Behavior, and Async
- dispose vs clear - dispose vs clear CompositeDisposable RxJava
- RxJava Interval Operator - RxJava Interval Operator
- RxJava Concat Operator - RxJava Concat Operator
- RxJava Merge Operator - RxJava Merge Operator
- RxJava Operator Map vs FlatMap - RxJava Operator Map vs FlatMap
- Pagination In RecyclerView Using RxJava Operators - Pagination In RecyclerView Using RxJava Operators
- How does the Kotlin Multiplatform work? - How does the Kotlin Multiplatform work?
- RxJava Zip Operator - RxJava Zip Operator
- RxJava Create and fromCallable Operator - RxJava Create and fromCallable Operator
- RxJava Defer Operator - RxJava Defer Operator
- RecyclerView Optimization - RecyclerView Optimization - Scrolling Performance Improvement
- Android Developer should know these Data Structures for Next Interview - Android Developer should know these Data Structures for Next Interview
- Google Android Developer Interview - Google Android Developer Interview
- Creating Flow Using Flow Builder in Kotlin - Creating Flow Using Flow Builder in Kotlin
- Unit Testing ViewModel with Kotlin Coroutines and LiveData - Unit Testing ViewModel with Kotlin Coroutines and LiveData
- Unit Testing ViewModel with Kotlin Flow and StateFlow - Unit Testing ViewModel with Kotlin Flow and StateFlow
- ThreadPoolExecutor in Android - ThreadPoolExecutor in Android
- Creating Custom Annotations - Creating Custom Annotations
- App Startup Library - App Startup Library
- Instant Search Using RxJava Operators - Instant Search Using RxJava Operators
- Jetpack DataStore Preferences - Jetpack DataStore Preferences
- Optimization Using ArrayMap and SparseArray - Optimization Using ArrayMap and SparseArray
- StrictMode in Android Development - StrictMode in Android Development
- Android Development Best Practices - Android Development Best Practices
- SnapHelper - SnapHelper
- Android NDK and RenderScript - Android NDK and RenderScript
- Android App Performance Metrics - Android App Performance Metrics
- Difference between == and === in Kotlin - Difference between == and === in Kotlin
- React Native vs Flutter - React Native vs Flutter
- Database Normalization vs Denormalization - Database Normalization vs Denormalization
- Extension function in Kotlin - Extension function in Kotlin
- data class in Kotlin - data class in Kotlin
- String vs StringBuffer vs StringBuilder - String vs StringBuffer vs StringBuilder
- Parcelable vs Serializable - Parcelable vs Serializable
Thanks
Amit Shekhar
Co-Founder @ Outcome School
You can connect with me on: