Skip to content

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

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages