https://github.com/abd3lraouf/decompose-tutorial

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

https://github.com/abd3lraouf/decompose-tutorial

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.1%) to scientific vocabulary

Keywords

android clean-architecture compose decompose koin kotlin package-by-feature todo-app
Last synced: 6 months ago · JSON representation

Repository

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

Basic Info
  • Host: GitHub
  • Owner: abd3lraouf
  • License: mit
  • Language: Kotlin
  • Default Branch: master
  • Homepage:
  • Size: 4.07 MB
Statistics
  • Stars: 7
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Topics
android clean-architecture compose decompose koin kotlin package-by-feature todo-app
Created 10 months ago · Last pushed 9 months ago
Metadata Files
Readme License

README.md

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

```mermaid 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

```

Task Workflow State Management

```mermaid 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

```

Decompose Integration with Clean Architecture

```mermaid 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

```

📚 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.

Owner

  • Name: AbdElraouf Sabri
  • Login: abd3lraouf
  • Kind: user
  • Location: Egypt
  • Company: @stormideas @getstoryteller

Senior Android Developer 🌟 Google Certified Associate Android Developer 🌟

GitHub Events

Total
  • Watch event: 9
  • Push event: 24
  • Create event: 2
Last Year
  • Watch event: 9
  • Push event: 24
  • Create event: 2