Tutorials
Free AI and technology tutorials, organised by subject so you always know what to learn next.
- 1. Android Unit Testing — Fundamentals — Android Unit Testing — Fundamentals
- 1. Testing Fundamentals and Strategy — Learn Android testing fundamentals from basic to interview level: software testing, manual vs automated testing, AAA test structure, test boundaries, testing pyramid, unit/integration/UI/E2E testing,…
- 2. Unit Testing with JUnit and Test Doubles — Learn Android unit testing from beginner to interview level using JUnit, local JVM tests, assertions, lifecycle annotations, parameterized tests, fakes, stubs, mocks, spies, MockK/Mockito, dependency…
- 4. Coroutine and Asynchronous Testing — Learn how to test Kotlin coroutines in Android using kotlinx-coroutines-test, runTest, test dispatchers, virtual time, coroutine scheduling, cancellation, timeouts, retries, exponential backoff, debo…
- 4. UI Testing with Espresso (Instrumented Tests) — 4. UI Testing with Espresso (Instrumented Tests)
- 6. Integration, Repository and Room Database Testing — Learn Android integration testing from beginner to interview level: test boundaries, repository strategies, fake and real data sources, cache-first and network-first behaviour, offline support, synch…
- 7. Retrofit API and Contract Testing — Learn how to test Retrofit APIs using MockWebServer: fake HTTP responses, request paths, headers, JSON bodies, successful and error responses, malformed JSON, timeouts, schemas, consumer/provider con…
- 8. Robolectric, ActivityScenario and Espresso — Beginner-to-advanced notes on local and instrumented Android tests, Robolectric, ActivityScenario, FragmentScenario, Espresso, RecyclerView testing, lifecycle testing, synchronization and custom Idli…
- 9. Jetpack Compose UI Testing — Learn Jetpack Compose testing from beginner to interview level: Compose test rules, semantics tree, node finders, matchers, actions, assertions, lazy-list testing, navigation, animations, mixed View/…
- Activity Lifecycle and Resource Management — Activity Lifecycle and Resource Management
- AIDL & Inter-Process Communication (IPC) — AIDL & Inter-Process Communication (IPC)Android study notes — concepts, diagrams, code, and interview preparation.
- Application Process — Application Process
- Android Deep Linking — explain it from Android developer point of view: concept first, then manifest setup, flow, App Links, testing, and common interview points.
- Android Interview Topics — Launch Modes1️⃣ standard (Default)Rule: Always creates a new instanceBack Stack A → A → AUse CaseProduct detailsFormsList → Detail screensInterview Line: Default mode, no reuse,...
- Android Keystore — Android Keystore
- Android Offline Support — Topics covered * Cache strategy * Stale-data indication * Synchronization * Conflict resolution * Source of truth
- Android Runtime: ART & Execution Model — Android Runtime: ART & Execution Model
- Android Testing and Gradle — Android Testing and Gradle
- Android View System Internals — Android View System Internals
- App Restart, State Restoration and Global Initialization — App Restart, State Restoration and Global Initialization
- Application Class — Application Class
- Background/ Started Service — Background/ Started Service
- Banking Android Application — Banking Android Application
- Bluetooth Classic + BLE — Bluetooth Classic + BLE
- Bound Service — Bound Service
- Clean Architecture — Clean Architecture in Android — Student Friendly Tutorial
- Comparison in Services — comparison
- Complete Kotlin Tutorial — Complete Kotlin Tutorial
- Compose Accessibility, Theming, Architecture and Testing — Compose Accessibility, Theming, Architecture and Testing
- Compose Lazy Layouts, Lists, Modifiers and Measurement — Compose Lazy Layouts, Lists, Modifiers and Measurement
- Compose Navigation, Interoperability, Animations and Gestures — Compose Navigation, Interoperability, Animations and Gestures
- Compose Side Effects, Lifecycle and Performance — Compose Side Effects, Lifecycle and Performance
- Configuration Changes, State Saving and Process Death — Configuration Changes, State Saving and Process Death
- Coroutine, Flow and LiveData — Coroutine, Flow and LiveData — Android Student-Friendly Tutorial
- Declarative UI, Composition, Recomposition and State — Declarative UI, Composition, Recomposition and State
- Deep Links, Navigation Component and Advanced Task Behaviour — Deep Links, Navigation Component and Advanced Task Behaviour
- Dependency Injection Using Hilt — Dependency Injection Using Hilt
- Examples and Summary — Examples and Summary
- First Non-Repeating Character — First Non-Repeating Character
- 5. Flow, StateFlow and SharedFlow Testing — Learn how to test Kotlin Flow, StateFlow and SharedFlow using runTest, virtual time and Turbine. Covers finite and infinite streams, operators, errors, cancellation, loading-success-error states, rep…
- Foreground and Background States — Foreground and Background States
- Foreground Service — Foreground Service
- Forground Service Vs WorkManager — Below are your 2 questions in 1 answer, with upload scenario, decision rules, pseudocode, and Kotlin examples.
- Fragment Object and View Lifecycle — Fragment Object and View Lifecycle
- Instrumentation Testing — Instrumentation Testing
- Introduction — Introduction
- Introduction — This section provides a brief introduction to Machine Learning, including its basic meaning, real-world use cases, and the major types of Machine Learning. It helps readers understand how machines le…
- Basic Data Types and Type Inference — Deep Kotlin tutorial covering Int, Long, Double, Boolean with examples, diagram, mistakes, and interview answers.
- if, when, Loops, and Ranges — Deep Kotlin tutorial covering if expression, when expression, for loop, while loop with examples, diagram, mistakes, and interview answers.
- Kotlin vs Java and Program Structure — Deep Kotlin tutorial covering Kotlin vs Java, file structure, packages, imports with examples, diagram, mistakes, and interview answers.
- Operators, Strings, and String Templates — Deep Kotlin tutorial covering operators, strings, string templates, comparison with examples, diagram, mistakes, and interview answers.
- val, var, and const val — Deep Kotlin tutorial covering val, var, const val, read-only reference with examples, diagram, mistakes, and interview answers.
- Common Kotlin Pitfalls in Android — Deep Kotlin tutorial covering !!, scope functions, shared mutable state, equality with examples, diagram, mistakes, and interview answers.
- Equality, Copying, and Shallow Copy Problems — Deep Kotlin tutorial covering ==, ===, data class copy, shallow copy with examples, diagram, mistakes, and interview answers.
- Any, Unit, and Nothing — Deep Kotlin tutorial covering Any, Unit, Nothing, type hierarchy with examples, diagram, mistakes, and interview answers.
- Nullable and Non-null Types — Deep Kotlin tutorial covering nullable types, non-null types, compiler checks, null handling with examples, diagram, mistakes, and interview answers.
- Reference Immutability vs Object Immutability — Deep Kotlin tutorial covering val, mutable object, immutable model, persistent data with examples, diagram, mistakes, and interview answers.
- Safe Calls, Elvis Operator, let, and Not-null Assertion — Deep Kotlin tutorial covering ?., ?:, let, !! with examples, diagram, mistakes, and interview answers.
- Safe Casts, Smart Casts, and Platform Types — Deep Kotlin tutorial covering as?, smart casts, platform types, Java nullability with examples, diagram, mistakes, and interview answers.
- Extension Functions and Scope Functions — Deep Kotlin tutorial covering extension functions, let, run, with with examples, diagram, mistakes, and interview answers.
- Functions, Parameters, Return Types, and Defaults — Deep Kotlin tutorial covering function parameters, return types, default parameters, named parameters with examples, diagram, mistakes, and interview answers.
- Lambdas, Function Types, Higher-Order Functions, and Closures — Deep Kotlin tutorial covering lambdas, function types, higher-order functions, closures with examples, diagram, mistakes, and interview answers.
- Contracts and Tail Recursion — Deep Kotlin tutorial covering contracts, tailrec, compiler hint, recursion with examples, diagram, mistakes, and interview answers.
- Destructuring, Operator Functions, and DSL Concepts — Deep Kotlin tutorial covering destructuring, operator, DSL, componentN with examples, diagram, mistakes, and interview answers.
- Inline, noinline, crossinline, and Reified Generics — Deep Kotlin tutorial covering inline, noinline, crossinline, reified generics with examples, diagram, mistakes, and interview answers.
- Value Classes and Type Aliases — Deep Kotlin tutorial covering value class, typealias, domain type, type safety with examples, diagram, mistakes, and interview answers.
- Classes, Constructors, and Properties — Deep Kotlin tutorial covering classes, primary constructor, secondary constructor, properties with examples, diagram, mistakes, and interview answers.
- Composition and Delegation — Deep Kotlin tutorial covering composition, delegation, by, repository interface with examples, diagram, mistakes, and interview answers.
- Data Classes, Enums, and Sealed Models — Deep Kotlin tutorial covering data class, enum, sealed class, sealed interface with examples, diagram, mistakes, and interview answers.
- Interfaces, Inheritance, and Polymorphism — Deep Kotlin tutorial covering interface, inheritance, open, override with examples, diagram, mistakes, and interview answers.
- Objects, Companion Objects, and Singletons — Deep Kotlin tutorial covering object, companion object, singleton, factory with examples, diagram, mistakes, and interview answers.
- OOP vs Functional Kotlin — Deep Kotlin tutorial covering OOP, functional style, pure functions, side effects with examples, diagram, mistakes, and interview answers.
- Lazy Sequences — Deep Kotlin tutorial covering Sequence, lazy processing, terminal operation, intermediate allocations with examples, diagram, mistakes, and interview answers.
- List, Set, and Map — Deep Kotlin tutorial covering List, Set, Map, ordering with examples, diagram, mistakes, and interview answers.
- map, filter, fold, and flatMap — Deep Kotlin tutorial covering map, filter, fold, flatMap with examples, diagram, mistakes, and interview answers.
- Mutable vs Read-only Collections and API Design — Deep Kotlin tutorial covering MutableList, List, read-only API, public API with examples, diagram, mistakes, and interview answers.
- Persistent Collections, Copying, Boxing, and Allocations — Deep Kotlin tutorial covering persistent collections, copying, boxing, allocations with examples, diagram, mistakes, and interview answers.
- Java Interop, Platform Types, SAM, and Checked Exceptions — Deep Kotlin tutorial covering Java interoperability, platform types, SAM conversion, checked exceptions with examples, diagram, mistakes, and interview answers.
- JVM Annotations, KAPT, KSP, and Reflection — Deep Kotlin tutorial covering @JvmStatic, @JvmField, @JvmOverloads, annotations with examples, diagram, mistakes, and interview answers.
- lateinit, lazy, Object Allocation, Lambda Capture, and Volatile — Deep Kotlin tutorial covering lateinit, lazy, object allocation, lambda capture with examples, diagram, mistakes, and interview answers.
- Visibility Modifiers, open, final, and internal — Deep Kotlin tutorial covering public, private, protected, internal with examples, diagram, mistakes, and interview answers.
- Kotlin Multiplatform: commonMain, expect/actual, and Platform Code — Deep Kotlin tutorial covering commonMain, platform source sets, expect, actual with examples, diagram, mistakes, and interview answers.
- Kotlin Multiplatform Project Structure and Limitations — Deep Kotlin tutorial covering supported platforms, project structure, dependency support, limitations with examples, diagram, mistakes, and interview answers.
- Mutex, Semaphore, and Concurrency Limits — Deep Kotlin tutorial covering Mutex, Semaphore, withLock, withPermit with examples, diagram, mistakes, and interview answers.
- Parallelism vs Concurrency — Deep Kotlin tutorial covering parallelism, concurrency, CPU cores, overlapping work with examples, diagram, mistakes, and interview answers.
- Processes, Threads, Tasks, and Concurrency — Deep Kotlin tutorial covering process, thread, task, concurrency with examples, diagram, mistakes, and interview answers.
- Race Conditions, Shared State, Synchronization, and Thread Confinement — Deep Kotlin tutorial covering race condition, shared state, synchronization, thread confinement with examples, diagram, mistakes, and interview answers.
- StateFlow, SharedFlow, Channels, State, and Events — Deep Kotlin tutorial covering StateFlow, SharedFlow, Channel, state with examples, diagram, mistakes, and interview answers.
- debounce, distinctUntilChanged, buffer, conflate, and collectLatest — Deep Kotlin tutorial covering debounce, distinctUntilChanged, buffer, conflate with examples, diagram, mistakes, and interview answers.
- Flow Operators: map, filter, combine, zip, merge, and flatMapLatest — Deep Kotlin tutorial covering map, filter, combine, zip with examples, diagram, mistakes, and interview answers.
- flowOn, retry, catch, Completion, and Cancellation — Deep Kotlin tutorial covering flowOn, retry, catch, completion with examples, diagram, mistakes, and interview answers.
- Testing Coroutines with runTest, Test Dispatchers, and Virtual Time — Deep Kotlin tutorial covering runTest, test dispatchers, virtual time, scheduler with examples, diagram, mistakes, and interview answers.
- Testing Flow, Turbine, StateFlow, SharedFlow, Retries, and Delays — Deep Kotlin tutorial covering Turbine, Flow testing, StateFlow, SharedFlow with examples, diagram, mistakes, and interview answers.
- Coroutine and Flow Performance Debugging — Deep Kotlin tutorial covering coroutine leaks, blocking detection, dispatcher misuse, context switching with examples, diagram, mistakes, and interview answers.
- Suspending vs Blocking, Continuations, and ANR Risks — Deep Kotlin tutorial covering suspending, blocking, continuation, state machine with examples, diagram, mistakes, and interview answers.
- coroutineScope, supervisorScope, and Structured Concurrency — Deep Kotlin tutorial covering coroutineScope, supervisorScope, parent-child relationship, structured lifetime with examples, diagram, mistakes, and interview answers.
- launch, async, and runBlocking — Deep Kotlin tutorial covering launch, async, Deferred, Job with examples, diagram, mistakes, and interview answers.
- Dispatchers, CoroutineContext, Jobs, and CoroutineName — Deep Kotlin tutorial covering Dispatchers.Main, Dispatchers.IO, Dispatchers.Default, CoroutineContext with examples, diagram, mistakes, and interview answers.
- Exception Handling, Cancellation, Timeouts, and Cleanup — Deep Kotlin tutorial covering exception propagation, CoroutineExceptionHandler, CancellationException, isActive with examples, diagram, mistakes, and interview answers.
- Lifecycle-aware Coroutines in Android — Deep Kotlin tutorial covering lifecycleScope, viewModelScope, Fragment view lifecycle, repeatOnLifecycle with examples, diagram, mistakes, and interview answers.
- Callback to Coroutine Migration — Deep Kotlin tutorial covering suspendCancellableCoroutine, callbackFlow, listener registration, awaitClose with examples, diagram, mistakes, and interview answers.
- Flow Builders, emit, collect, and Cold Execution — Deep Kotlin tutorial covering flow builder, emit, collect, terminal operator with examples, diagram, mistakes, and interview answers.
- Cold vs Hot Streams, Sharing, and Replay — Deep Kotlin tutorial covering cold stream, hot stream, shareIn, stateIn with examples, diagram, mistakes, and interview answers.
- Kotlin Interview Revision Roadmap — Deep Kotlin tutorial covering revision plan, topic order, common mistakes, answer structure with examples, diagram, mistakes, and interview answers.
- Phase 1 Kotlin Interview Question Bank — Deep Kotlin tutorial covering 150 interview questions, definition, example, trade-off with examples, diagram, mistakes, and interview answers.
- Longest Common Prefix — Longest Common Prefix
- Mobile Application Security — Mobile Application Security – OWASP MASVS
- Modularisation — Modularisation
- Move Zeroes — Move Zeroes
- MVI — Student-Friendly Tutorial with Lifecycle, Internal Working, Pros, Cons, Diagrams, and Use Cases
- MVVM — Here we are discussing for MVVM architecture with Examples and Dir
- Naive RAG vs Advanced RAG — Naive RAG vs Advanced RAG
- Network Security — Network Security
- Networking — Networking
- NFC Tag Connectivity and Wearable Watch Communication — NFC Tag Connectivity + Wearable Watch Communication
- Operators — Operators
- Process Importance and System Process Killing — Process Importance and System Process Killing
- Push Notification — I’ll explain it in the same style: concept, end-to-end flow, FCM setup, Android 13+ permission, notification channels, handling foreground/background states, and interview points.
- Variables, Expressions & Statements — Variables, Expressions & Statements
- RAG (Retrieval-Augmented Generation) — RAG (Retrieval-Augmented Generation)
- RAG Terminology — RAG Terminology
- RecyclerView & List Performance — RecyclerView & List Performance
- Reverse Words in String — Reverse Words in String
- Scenario-Based Use Cases — Scenario-Based Use Cases
- Secure Local Storage — This tutorial covers only: 1. Secure tokens 2. Encrypted data 3. Room database security 4. Avoiding password, OTP and MPIN storage
- Service — service
- Common Mistakes and Interview Questions — I’ll explain Android Services like a tutorial: first meaning and lifecycle, then Started/Foreground/Bound services, pseudocode, Kotlin examples, and scenario-based interview cases.
- SSL Pinning — SSL Pining
- Supervised Learning — Supervised Learning
- Tasks, Back Stack, Intents, Launch Modes and Flags — Tasks, Back Stack, Intents, Launch Modes and Flags
- Testing Room Database (DAO Testing) — Testing Room Database (DAO Testing)
- Token Management — Token Management
- Two Sum — Two Sum
- Type Inference, Data Types and String — Type Inference, Data Types and String
- 2. Unit Test with Example — Unit Test with Example
- val, var, and const val — Here we learn about kotlin variable declaration rules for var, val and const val
- Valid Anagram — Valid Anagram
- Variables, Expressions & Statements — Python - Variables, Expressions & StatementsVariablesThe major purpose of variable is to store a value from one part of program so that it can be used in other part of program....
- 3. ViewModel, State and Architecture Testing — Learn how to test Android ViewModels, UI states, user actions, one-time events, SavedStateHandle, state restoration, navigation, duplicate actions, MVVM state holders and MVI reducers using fake repo…
- WorkManager — WorkManager Tutorial — Student Friendly
- Zebra Android Scanner SDK — Zebra Android Scanner SDK