Skip to content

mwshubham/AndroidPlayground

Repository files navigation

AndroidPlayground

Android Playground Samples

This repository contains implementations of various system design patterns and concepts commonly used in Android development. Each topic demonstrates real-world scenarios and best practices for building scalable, maintainable Android applications.

Development Tools

This project uses several tools to maintain code quality and consistency:

  • ktlint = formatting & style (auto-fixable)
  • Detekt = code quality, correctness & architecture (non-trivial fixes)

Project Setup

To set up the project and enable automatic code quality checks:

  1. Clone the repository:

    git clone <repository-url>
    cd "Android Playground"
  2. Install the git pre-commit hook:

    ./gradlew installGitHooks

    Or set up the entire project at once:

    ./gradlew setupProject

Additional Git Hook Management Commands

  • Check git hook status: ./gradlew checkGitHooks
  • Uninstall git hooks: ./gradlew uninstallGitHooks

The git hook will automatically run code quality checks (ktlint formatting and Detekt analysis) before each commit, ensuring code consistency across the project.

System Design Topics

1. Image Upload App (Work in progress)

Design a system for uploading images during a session

Features:

  • Image selection and preview
  • Progress tracking during upload
  • Error handling and retry mechanisms

TODOs:

  • Preprocessing & Postprocessing
  • Pausing, retry, batching

2. News Feed App (Work in progress)

Design a news feed system that shows personalized content to users

Features:

  • Real-time content updates
  • Infinite scrolling with pagination
  • Content caching and offline support

3. Analytics SDK (Work in progress)

Design a comprehensive analytics SDK for tracking user behavior and app performance

Features:

  • Event tracking and logging
  • Data batching and network optimization
  • Privacy-compliant data collection

4. Chat App (Work in progress)

Design a real-time messaging application with multiple users

Features:

  • Real-time messaging
  • Message persistence
  • Online/offline status indicators

5. Stock Trading App (Work in progress)

Design an application for real-time stock trading and monitoring

Features:

  • Real-time price updates
  • Portfolio management
  • Trading order execution

6. Pagination Library (Work in progress)

Design a reusable pagination library for large datasets

Features:

  • Efficient data loading
  • Memory management
  • Customizable UI components

7. Hotel Reservation App (Work in progress)

Design a system for hotel booking and reservation management

Features:

  • Search and filtering
  • Booking management
  • Payment integration

8. Google Drive App (Work in progress)

Design a cloud storage and file management system

Features:

  • File upload/download
  • Folder organization
  • Sharing and permissions

9. YouTube App (Work in progress)

Design a video streaming platform with upload and discovery features

Features:

  • Video streaming and playback
  • Content discovery algorithms
  • Upload and processing pipeline

Note: This is a work-in-progress project. Each system design topic will be implemented with detailed architecture, code samples, and best practices.

About

Android Playground

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •