Skip to content

A modern cross-platform task management app built with Kotlin Multiplatform, featuring shared business logic, Jetpack Compose (Android), SwiftUI (iOS), Room database, and Clean Architecture principles.

Notifications You must be signed in to change notification settings

Alims-Repo/TaskFlow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

TaskFlow

A modern, cross-platform task management application built with Kotlin Multiplatform, supporting both Android and iOS platforms with a shared business logic layer.

πŸ“± Overview

TaskFlow is a full-featured task management application that demonstrates best practices in mobile development using Kotlin Multiplatform (KMP). The app provides a seamless experience across Android and iOS platforms while maximizing code reuse through a shared module architecture.

πŸ“Έ Screenshots

iOS

Android

πŸ”— Download APK

For testing the Android version, download the APK below:

πŸ‘‰ πŸ‘‰ Download TaskFlow APK

✨ Features

  • Task Management: Create, read, update, and delete tasks with ease
  • Task Organization:
    • Priority levels (Low, Medium, High)
    • Status tracking (Todo, In Progress, Done)
    • Due date scheduling with time selection
    • Search functionality
    • Filter tasks by status and priority
  • Rich Task Details:
    • Title and description
    • Priority indicators
    • Status badges
    • Due date with overdue detection
    • Creation timestamps
  • Statistics Dashboard: Visual overview of task metrics
  • Modern UI: Clean, intuitive interface with Material Design 3 (Android) and native iOS design
  • Offline-First: Local database storage using Room for data persistence

πŸ—οΈ Architecture

Project Structure

TaskFlow/
β”œβ”€β”€ composeApp/          # Android UI (Jetpack Compose)
β”‚   └── src/
β”‚       └── androidMain/
β”‚           └── kotlin/com/alim/taskflow/
β”‚               β”œβ”€β”€ core/           # Navigation, themes, components
β”‚               β”œβ”€β”€ features/       # Feature modules (screens)
β”‚               └── di/             # Dependency injection
β”œβ”€β”€ iosApp/             # iOS UI (SwiftUI)
β”‚   └── iosApp/
β”‚       β”œβ”€β”€ AddTask/                        # Add task feature
β”‚       β”œβ”€β”€ EditTask/                       # Edit task feature
β”‚       β”œβ”€β”€ TaskList/                       # Task list feature
β”‚       β”œβ”€β”€ TaskDetails/                    # Task details feature
β”‚       β”œβ”€β”€ Splash/                         # Splash screen
β”‚       β”œβ”€β”€ Core/                           # Core utilities/helpers
β”‚       β”œβ”€β”€ ContentView.swift
β”‚       β”œβ”€β”€ iOSApp.swift
β”‚       └── Info.plist
β”œβ”€β”€ shared/             # Shared business logic (KMP)
β”‚   └── src/
β”‚       β”œβ”€β”€ commonMain/    # Shared code
β”‚       β”‚   └── kotlin/com/alim/taskflow/
β”‚       β”‚       β”œβ”€β”€ data/          # Repository implementations, DAOs
β”‚       β”‚       β”œβ”€β”€ domain/        # Models, use cases, repository interfaces
β”‚       β”‚       β”œβ”€β”€ presentation/  # ViewModels
β”‚       β”‚       └── di/            # Dependency injection modules
β”‚       β”œβ”€β”€ androidMain/  # Android-specific implementations
β”‚       └── iosMain/      # iOS-specific implementations
└── gradle/               # Gradle configuration

Clean Architecture Layers

  1. Presentation Layer:

    • Android: Jetpack Compose with Material 3
    • iOS: SwiftUI with native components
    • Shared ViewModels for business logic
  2. Domain Layer (Shared):

    • Use Cases: Encapsulated business operations
    • Models: Core domain entities (Task, Priority, TaskStatus)
    • Repository Interfaces: Abstract data operations
  3. Data Layer (Shared):

    • Repository Implementations
    • Local Database (Room)
    • Data entities and mappers

πŸ› οΈ Technology Stack

Shared Module

  • Kotlin Multiplatform: Code sharing between platforms
  • Room Database: Local data persistence
  • Kotlinx Serialization: Data serialization
  • Kotlinx DateTime: Cross-platform date/time handling
  • Koin: Dependency injection
  • Coroutines & Flow: Asynchronous operations and reactive streams

Android (67.7%)

  • Jetpack Compose: Modern declarative UI
  • Material Design 3: Design system
  • Navigation Component: Screen navigation
  • Kotlin: Primary language

iOS (32.3%)

  • SwiftUI: Declarative UI framework
  • Swift: Native iOS development

πŸš€ Getting Started

Prerequisites

  • Android Development:

    • Android Studio Hedgehog or later
    • JDK 11 or higher
    • Android SDK (API 24+)
  • iOS Development:

    • Xcode 15 or later
    • macOS with Apple Silicon or Intel processor
    • CocoaPods (optional)

Installation

  1. Clone the repository:
git clone https://github.com/Alims-Repo/TaskFlow.git
cd TaskFlow
  1. Build the project:

For Android:

./gradlew :composeApp:assembleDebug

For iOS:

  • Open iosApp/iosApp.xcodeproj in Xcode
  • Select your target device or simulator
  • Click Run (⌘R)
  1. Run the application:
    • Android: Use Android Studio's Run button or deploy via Gradle
    • iOS: Run from Xcode

πŸ“¦ Modules

shared

Contains all shared business logic:

  • Use Cases: AddTaskUseCase, UpdateTaskUseCase, DeleteTaskUseCase, GetAllTasksUseCase, SearchTasksUseCase, FilterTasksUseCase, GetTaskStatisticsUseCase
  • Repository: TaskRepository interface and TaskRepositoryImpl
  • Database: Room DAO for local storage
  • ViewModels: TaskListViewModel, TaskDetailViewModel

composeApp

Android application with Jetpack Compose UI:

  • Screens: Main, AddTask, EditTask, TaskDetails, FilterTask
  • Components: Reusable UI components (TaskCard, StatisticsCard, SearchBar)
  • Navigation: Type-safe navigation using serializable routes

iosApp

Native iOS application with SwiftUI:

  • Views: TaskListView, AddTaskView, TaskDetailView
  • ViewModelWrapper: Bridge between Kotlin and Swift

🎨 Key Features Implementation

Task CRUD Operations

  • Create tasks with title, description, priority, status, and due date
  • View task details with all metadata
  • Update existing tasks
  • Delete tasks with confirmation

Search & Filter

  • Real-time search by task title
  • Filter by status (Todo, In Progress, Done)
  • Filter by priority level

Statistics

  • Total task count
  • Completed tasks tracking
  • Pending tasks overview
  • Progress metrics

πŸ“„ Configuration

Minimum SDK Versions

  • Android: API 24 (Android 7.0)
  • iOS: iOS 15.0+

Build Configuration

  • Target SDK: Latest stable Android SDK
  • JVM Target: Java 11
  • Kotlin Version: Latest stable

πŸ‘¨β€πŸ’» Author

Alims-Repo

πŸ™ Acknowledgments

  • Built with Kotlin Multiplatform
  • UI powered by Jetpack Compose and SwiftUI
  • Database management with Room
  • Dependency injection with Koin

Note: This is a demonstration project showcasing modern mobile development practices with Kotlin Multiplatform, Clean Architecture, and cross-platform code sharing.

About

A modern cross-platform task management app built with Kotlin Multiplatform, featuring shared business logic, Jetpack Compose (Android), SwiftUI (iOS), Room database, and Clean Architecture principles.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published