Skip to content

A comprehensive tutorial project showcasing Decompose for reactive UI component architecture in Kotlin Android development

License

Notifications You must be signed in to change notification settings

abd3lraouf/decompose-tutorial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

11 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Decompose Tutorial

Kotlin Compose Decompose

Organize Focus Don't Overwhelm Enjoy

Decompose helps you build applications that are organized, focused, not overwhelming, and enjoyable to develop.

A comprehensive tutorial project showcasing Decompose for building reactive, component-based architectures in Kotlin Android development. This project demonstrates how to create modular, maintainable, and testable applications with proper separation of concerns.

Todo State - Tasks Ready to Start

πŸ“± App Overview

This Todo app demonstrates Decompose's capabilities to manage component lifecycles, state, and navigation in a clean, predictable way. It follows reactive programming principles and showcases proper separation of concerns.

The app allows users to:

  • Create and manage tasks with different priorities
  • Track task progress through multiple states
  • View statistics about task completion
  • Customize the app appearance

✨ Key Features

  • Component-Based Architecture: Independent UI components with their own lifecycle
  • Predictable State Management: Immutable state and unidirectional data flow
  • Type-Safe Navigation: No more fragment transactions or intent flags
  • Multi-Module Support: Clean separation between features and layers
  • Composable-Friendly Design: Natural integration with Jetpack Compose
  • Workflow Management: Task state progression from Todo β†’ In Progress β†’ Done

πŸ“‹ Task Workflow Management

The app demonstrates a clear task progression workflow with different states:

Todo β†’ In Progress β†’ Done

Todo State - Tasks Ready to Start In Progress State - Active Tasks Productivity Tips for Task Management

The app provides smart workflow features:

  • Contextual tips for better productivity
  • Visual indicators for task status
  • Priority levels shown with color coding
  • Deadline tracking for time-sensitive tasks

πŸ› οΈ Task Management Features

Create Task Form Task Details View
Create New Tasks
Add titles, descriptions, tags, deadlines, and priorities
Task Details
View complete information and manage task status

πŸ“Š Statistics and Customization

Task Statistics Settings Screen
Productivity Stats
Track completion rates and task distribution
App Settings
Customize theme and app preferences

πŸ–₯️ Dark Mode Support

Task Details in Dark Mode Task Editing in Dark Mode

🧩 Technical Architecture

This application demonstrates Decompose's powerful capabilities for component-based architecture:

Core Architecture

graph TD
    A[Application] --> B[RootComponent]
    B --> C[TodoListComponent]
    B --> D[StatisticsComponent]
    B --> E[SettingsComponent]
    
    C --> F[TaskItemComponent]
    C --> G[TaskEditorComponent]
    
    style A fill:#f9f,stroke:#333,stroke-width:2px
    style B fill:#bbf,stroke:#333,stroke-width:2px
    style C fill:#dfd,stroke:#333,stroke-width:2px
    style D fill:#dfd,stroke:#333,stroke-width:2px
    style E fill:#dfd,stroke:#333,stroke-width:2px
Loading

Task Workflow State Management

stateDiagram-v2
    classDef todo fill:#ffcccb,stroke:#333,stroke-width:1px
    classDef inProgress fill:#ffffcc,stroke:#333,stroke-width:1px
    classDef done fill:#ccffcc,stroke:#333,stroke-width:1px
    
    [*] --> TODO : New Task
    
    TODO --> IN_PROGRESS : Start Task
    IN_PROGRESS --> DONE : Complete Task
    IN_PROGRESS --> TODO : Return to Todo
    DONE --> IN_PROGRESS : Reopen Task
    
    class TODO todo
    class IN_PROGRESS inProgress
    class DONE done
Loading

Decompose Integration with Clean Architecture

graph TD
    subgraph Presentation
        A[Jetpack Compose UI] -->|Observes| B[Decompose Component]
        B -->|Contains| C[Component State]
    end
    
    subgraph Domain
        E[Use Cases]
        F[Domain Models]
        G[Repository Interfaces]
    end
    
    subgraph Data
        H[Repository Implementations]
        I[Data Sources]
    end
    
    B -->|Invokes| E
    E -->|Uses| F
    E -->|Calls| G
    G <--Implementation--> H
    H -->|Accesses| I
    
    style A fill:#dfd,stroke:#333,stroke-width:2px
    style B fill:#bbf,stroke:#333,stroke-width:2px
    style E fill:#ffd,stroke:#333,stroke-width:2px
    style H fill:#fcc,stroke:#333,stroke-width:2px
Loading

πŸ“š Additional Resources

πŸ”§ Setup and Installation

  1. Clone the repository
  2. Open in Android Studio Iguana or later
  3. Build and run on your device or emulator

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

About

A comprehensive tutorial project showcasing Decompose for reactive UI component architecture in Kotlin Android development

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published