chore: sync content to repo (#10334)

Co-authored-by: nilbuild <4921183+nilbuild@users.noreply.github.com>
This commit is contained in:
github-actions[bot]
2026-09-17 10:07:17 +02:00
committed by GitHub
co-authored by nilbuild
parent 3cba37fa74
commit 2febaab0ab
59 changed files with 60 additions and 60 deletions
@@ -1,5 +1,5 @@
# Activity LifeCycle
The Activity lifecycle is a set of states and callbacks that an Activity goes through from creation to destruction. Key callbacks include onCreate, onStart, onResume, onPause, onStop, and onDestroy. Properly implementing these callbacks ensures the app handles interruptions like phone calls or screen rotations without data loss.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Activity
An Activity represents a single screen in an Android app with a user interface. Apps are typically made up of multiple activities that users navigate between. Activities have a lifecycle managed by the operating system, and handling that lifecycle correctly is essential for building stable apps.
Visit the following resources to learn more:
@@ -1,6 +1,6 @@
# Animations
Animations, in a broad sense, are visual effects that give the impression of movement by rapidly displaying a sequence of images or frames. In the context of user interfaces, animations enhance the user experience by providing visual feedback, guiding the user's attention, and making the interface feel more responsive and engaging. They help communicate changes in state, indicate loading progress, and add polish to an application's overall look and feel.
Animations, in a broad sense, are visual effects that give the impression of movement by rapidly displaying a sequence of images or frames. In the context of user interfaces, animations enhance the user experience by providing visual feedback, guiding the user's attention, and making the interface feel more responsive and engaging. They help communicate changes in state, indicate loading progress, and add polish to an application's overall look and feel.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Apollo-Android
Apollo Android is a GraphQL client for Android and Kotlin that generates type-safe Kotlin models from a GraphQL schema and query files. It handles query execution, caching, and subscriptions, and integrates with Kotlin coroutines. Apollo-Android allows working with GraphQL APIs in a structured, compile-time-safe way.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# App Components
App components are the building blocks of an Android application. The four main types are Activities, Services, Broadcast Receivers, and Content Providers. Each serves a different purpose and has its own lifecycle managed by the Android system.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Asynchronism
Asynchronism in Android refers to running operations outside the main thread to prevent blocking the UI. Android provides several tools for this: Kotlin Coroutines as the modern recommended approach, Threads for low-level concurrency, RxJava and RxKotlin for reactive streams, and WorkManager for deferred background tasks.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Authentication
Firebase Authentication provides backend services for authenticating users with email and password, phone numbers, or federated identity providers like Google, Facebook, and Apple. It manages tokens and session state securely. On Android, it integrates with the Firebase SDK to handle sign-in flows with minimal boilerplate.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Basics of Kotlin
The basics of Kotlin cover the syntax and core concepts needed to write Kotlin programs. This includes variables, data types, control flow, functions, lambdas, classes, and Kotlin-specific features like null safety and extension functions. A solid grasp of these fundamentals is required before working with Android-specific APIs.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Bitbucket
Bitbucket is a Git repository hosting service by Atlassian. It integrates with other Atlassian tools like Jira and Confluence, making it a common choice for teams already using Atlassian products. Bitbucket supports pull requests, branch permissions, and CI/CD pipelines through Bitbucket Pipelines.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Broadcast Receiver
A Broadcast Receiver is a component that listens for system-wide broadcast announcements. Common broadcasts include events like device boot, network connectivity changes, or battery status updates. Receivers can also facilitate communication between different parts of the same app.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Chucker
Chucker is an in-app HTTP inspector for Android. It intercepts OkHttp network requests and responses and displays them in a dedicated UI within the app during development. Chucker helps developers inspect API calls, headers, payloads, and response times without needing an external proxy tool.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Cloud Messaging
Firebase Cloud Messaging (FCM) is a cross-platform messaging service for delivering push notifications and data messages to Android apps. Notifications can target individual devices, device groups, or topics that users subscribe to. FCM supports both foreground and background message delivery and is free to use.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Common Services
Common Services covers widely used Google and third-party platform services that Android apps integrate with. These include Google Maps for location and mapping, Google Play Services for platform features, AdMob for advertising, and Firebase for a range of backend services.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Content Provider
A Content Provider manages access to a structured set of data and provides a standard interface for sharing data between apps. Platform apps like Contacts, Calendar, and Media Store expose their data through content providers. Custom content providers are used to share data with other apps or between processes within the same app.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Coroutines
Kotlin Coroutines are a concurrency framework that allows writing asynchronous code in a sequential, readable style. They are lightweight, support structured concurrency, and integrate with Android Jetpack through lifecycle-aware CoroutineScopes. Coroutines replaced older patterns like AsyncTask and are now the preferred approach for async work in Android.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Create a Basic Hello World App
Creating a Hello World app is the starting point for hands-on Android development. It involves setting up a new project in Android Studio, writing a simple activity, and running it on an emulator or physical device. The exercise introduces the project structure, the Gradle build process, and how the UI connects to code.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Dagger
Dagger is a compile-time dependency injection framework for Java and Kotlin. It generates efficient DI code based on annotations, avoiding reflection at runtime. Dagger has a steep learning curve but is widely used in large Android codebases for its performance and reliability.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Data Structures and Algorithms
Data structures and algorithms cover how data is organized and processed efficiently in code. Common structures include lists, maps, sets, stacks, and queues; common algorithmic topics include sorting, searching, and recursion. Understanding these is necessary for writing performant apps and for technical interviews.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# DataStore
DataStore is Jetpack's modern replacement for Shared Preferences. It provides two implementations: Preferences DataStore for key-value storage and Proto DataStore for typed, schema-based storage using Protocol Buffers. DataStore uses Kotlin coroutines and Flow, making it asynchronous and safer to use than Shared Preferences.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Debugging
Debugging in Android involves identifying and fixing issues in app behavior, performance, and memory usage. Android Studio provides a built-in debugger, and specialized tools like Jetpack Benchmark, Chucker, LeakCanary, and Timber address specific categories of issues.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Dependency Injection
Dependency Injection (DI) is a technique where objects receive their dependencies from an external source rather than creating them internally. In Android, DI frameworks manage the creation and lifecycle of dependencies across the app, improving testability and reducing coupling. Common solutions include Dagger, Hilt, and Koin.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Detekt
Detekt is a static code analysis tool for Kotlin that identifies code smells, complexity issues, potential bugs, and style violations. It is more configurable than Ktlint and covers a broader range of quality checks. Detekt reports can be integrated into CI pipelines to prevent problematic code from being merged.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Development IDE
Android Studio is the official integrated development environment for Android development. It is built on IntelliJ IDEA and provides tools for code editing, debugging, performance profiling, and device emulation. It also integrates directly with the Gradle build system and the Android SDK.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Distribution
Distribution covers how Android apps are packaged and delivered to users. This includes generating a signed APK or AAB for release, and publishing through channels like the Google Play Store or Firebase App Distribution for internal testing and staged rollouts.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Factory Pattern
The Factory pattern provides an interface for creating objects without specifying their exact class. It centralizes object creation logic, making it easier to swap implementations without modifying calling code. In Android, factory patterns appear in ViewModelProvider.Factory for creating ViewModels with custom constructor arguments.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# File System
The Android file system allows apps to read and write files to internal storage, external storage, and cache directories. Internal storage is private to the app, while shared storage is accessible to other apps through proper permissions and scoped storage APIs. File system access is used for raw files, media, and documents.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# FireStore
Firestore is Firebase's scalable, flexible NoSQL cloud database. It stores data as collections of documents and supports real-time listeners that push updates to connected clients instantly. Firestore provides offline support through local caching and automatically syncs data when connectivity is restored.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# GitLab
GitLab is a DevOps platform that includes Git repository hosting, CI/CD pipelines, issue tracking, and a container registry in a single product. It can be used as a cloud service or self-hosted on private infrastructure. GitLab CI/CD is particularly useful for automating Android build and testing workflows.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Google Maps
The Google Maps SDK for Android allows apps to embed interactive maps, display markers, draw routes, and access geolocation data. It is used in apps that require navigation, location search, or geographic visualization. The SDK integrates with the Fused Location Provider for efficient and battery-aware location access.
Visit the following resources to learn more:
@@ -1,8 +1,8 @@
# Google Play Services
Google Play Services is a background service that provides core Google APIs to Android apps, including authentication, location, maps, and in-app payments. It is automatically updated on compatible devices and required for many Android platform features. Most apps that use Google APIs depend on Play Services being installed on the device.
Visit the following resources to learn more:
- [@official@Google Play Services](https://developer.android.com/google/play-services)
- [@official@Google Play Services Documentation](https://developers.google.com/android/guides/overview)
- [@official@Google Play Services Documentation](https://developers.google.com/android/guides/overview)
@@ -1,5 +1,5 @@
# Google Playstore
The Google Play Store is the official marketplace for distributing Android apps to users worldwide. Publishing an app requires a Google Play developer account, a signed AAB or APK, and compliance with Google's developer policies. The Play Console provides tools for staged rollouts, A/B testing, crash monitoring, and user review management.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Intent Filters
Intent filters declare what types of intents a component can receive. They are defined in the AndroidManifest.xml file and describe the actions, data types, and categories a component supports. The system uses intent filters to determine which activities or services can respond to a given implicit intent.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Java
Java was the original language for Android development and remains supported on the Android platform. It is a statically typed, object-oriented language that runs on the JVM. Many existing Android codebases and libraries are written in Java, so familiarity with it is still valuable even for developers working primarily in Kotlin.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# JUnit
JUnit is the standard testing framework for unit testing Java and Kotlin code on Android. Unit tests run on the local JVM without needing a device or emulator, making them fast to execute. JUnit is used to verify the logic of ViewModels, Repositories, and other non-UI components.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Kotlin
Kotlin is a statically typed programming language developed by JetBrains and officially endorsed by Google for Android development. It runs on the JVM and is fully interoperable with Java. Kotlin features concise syntax, null safety, coroutines for asynchronous programming, and extension functions that reduce boilerplate.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Ktlint
Ktlint is a Kotlin linter and formatter that enforces the official Kotlin coding style. It can run manually, as part of a Gradle build, or as a pre-commit hook. Ktlint has minimal configuration by design and focuses on formatting rules like indentation, spacing, and import ordering.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Leak Canary
LeakCanary is an open-source memory leak detection library for Android. It automatically monitors objects that should be garbage collected and reports leaks with a detailed analysis showing the reference chain causing the problem. LeakCanary is typically included only in debug builds.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# LiveData
LiveData is a lifecycle-aware observable data holder from Android Jetpack. It delivers updates to UI observers only when they are in an active lifecycle state, preventing crashes from updates sent to stopped components. LiveData is commonly used to expose ViewModel state to the UI layer.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# MVC
MVC (Model-View-Controller) is an architectural pattern that divides an application into three components: the Model holds data and business logic, the View renders the UI, and the Controller handles user input. Android does not map cleanly to traditional MVC, as Activities and Fragments often act as both View and Controller simultaneously.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# MVI
MVI (Model-View-Intent) is an architectural pattern where user actions are modeled as Intents that flow into the Model, which produces a new immutable State rendered by the View. It enforces strict unidirectional data flow and makes application state predictable and easy to test. MVI pairs well with Kotlin coroutines and Jetpack Compose.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# MVP
MVP (Model-View-Presenter) is an architectural pattern where the Presenter acts as a mediator between the View and the Model. The View delegates user actions to the Presenter, which processes them and updates the View through an interface contract. MVP was widely used before MVVM and ViewModel became the recommended approach.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# MVVM
MVVM (Model-View-ViewModel) is an architectural pattern that separates the UI layer (View) from the business logic and state layer (ViewModel). The ViewModel exposes state and events, and the View observes and renders them reactively. Google recommends MVVM for Android apps and provides official support through ViewModel, LiveData, and StateFlow.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Observer Pattern
The Observer pattern defines a one-to-many dependency where multiple observers are notified automatically when a subject changes state. In Android, this pattern is the foundation of reactive data streams implemented through LiveData, Kotlin Flow, RxJava, and RxKotlin.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Pick a Language
Android development primarily uses Kotlin and Java. Kotlin is Google's officially preferred language since 2019, but Java remains fully supported and is still present in many existing codebases and libraries.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# remember / State
remember is a Compose function that retains a value across recompositions within a composable. Combined with mutableStateOf, it creates a state holder that triggers recomposition when its value changes. Local state managed with remember is suitable for UI-only state that does not need to survive configuration changes.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Remote Config
Firebase Remote Config allows developers to change the behavior and appearance of an Android app without publishing an app update. Configuration values are stored in the cloud and fetched at runtime. It is commonly used for A/B testing, feature flags, and gradual feature rollouts.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Room Database
Room is an Android Jetpack library that provides an abstraction layer over SQLite. It uses annotations to define database entities, Data Access Objects (DAOs), and queries, and it verifies SQL at compile time. Room integrates with coroutines and Flow for reactive, asynchronous database access.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# RxKotlin
RxKotlin is a lightweight Kotlin extension library for RxJava. It adds idiomatic Kotlin extension functions and DSL-style utilities for working with RxJava observables. Developers use RxKotlin to write more natural Kotlin code when building reactive streams in Android.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Services
A Service is an app component that performs long-running operations in the background without a user interface. Services handle tasks like playing music, downloading files, or processing data while the user interacts with other apps. Android provides foreground services, background services, and bound services depending on the use case.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Signed APK
A signed APK is an Android application package that has been digitally signed with a developer's certificate. Signing is required before an app can be published to the Google Play Store. The signing process verifies the app's authorship and ensures that future updates come from the same developer.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# State Changes
State changes occur when an Activity transitions between lifecycle states due to user actions or system events. Common triggers include pressing the Home button, rotating the device, or receiving a phone call. Android developers must save and restore UI state during these transitions to prevent data loss.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Tasks & Backstack
A task is a collection of activities that the user interacts with to accomplish a goal, and the back stack keeps track of the order in which those activities were opened. When the user presses Back, activities are popped off the stack in reverse order. Understanding task and back stack behavior is important for building predictable navigation flows.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Testing
Testing in Android ensures that app code behaves correctly and that UI interactions work as expected. JUnit is used for unit testing business logic, while Espresso handles UI testing by simulating user interactions on a device or emulator.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# The Fundamentals
The fundamentals cover the core programming and tooling concepts needed before building Android apps. This includes understanding Kotlin or Java basics, object-oriented programming principles, data structures and algorithms, Gradle as the build system, and how to set up a working development environment.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Threads
Threads are the basic unit of concurrency in the JVM. Android runs UI operations on the main thread and requires network, database, and other slow operations to run on background threads. Developers use Thread, Handler, Executors, or HandlerThread to manage background work at the thread level.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Timber
Timber is a logging utility library for Android built on top of the standard android.util.Log API. It provides a cleaner logging interface, automatically includes class names in log tags, and makes it easy to control logging behavior per build variant. In release builds, logging can be suppressed or redirected to a crash reporting service.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# Version Control
Version control systems track changes to code over time and enable collaboration among developers. In Android development, Git is the standard version control tool, and platforms like GitHub, GitLab, and Bitbucket are used to host and manage repositories.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# What is and how to use Gradle?
Gradle is the build system used in Android projects to compile code, manage dependencies, and package applications. It uses Groovy or Kotlin DSL scripts to define project configuration. Android Studio generates Gradle files automatically, but understanding how to modify them is needed for adding libraries, setting build variants, and configuring app signing.
Visit the following resources to learn more:
@@ -1,5 +1,5 @@
# WorkManager
WorkManager is a Jetpack library for scheduling deferrable, guaranteed background work. It supports constraints like requiring network connectivity or charging, survives app restarts and device reboots, and allows chaining multiple tasks together. WorkManager is the recommended solution for background work that must run reliably regardless of app lifecycle.
Visit the following resources to learn more: