A modern, cross-platform task management application built with Kotlin Multiplatform, supporting both Android and iOS platforms with a shared business logic layer.
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.
For testing the Android version, download the APK below:
π π Download TaskFlow APK
- 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
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
-
Presentation Layer:
- Android: Jetpack Compose with Material 3
- iOS: SwiftUI with native components
- Shared ViewModels for business logic
-
Domain Layer (Shared):
- Use Cases: Encapsulated business operations
- Models: Core domain entities (
Task,Priority,TaskStatus) - Repository Interfaces: Abstract data operations
-
Data Layer (Shared):
- Repository Implementations
- Local Database (Room)
- Data entities and mappers
- 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
- Jetpack Compose: Modern declarative UI
- Material Design 3: Design system
- Navigation Component: Screen navigation
- Kotlin: Primary language
- SwiftUI: Declarative UI framework
- Swift: Native iOS development
-
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)
- Clone the repository:
git clone https://github.com/Alims-Repo/TaskFlow.git
cd TaskFlow- Build the project:
For Android:
./gradlew :composeApp:assembleDebugFor iOS:
- Open
iosApp/iosApp.xcodeprojin Xcode - Select your target device or simulator
- Click Run (βR)
- Run the application:
- Android: Use Android Studio's Run button or deploy via Gradle
- iOS: Run from Xcode
Contains all shared business logic:
- Use Cases:
AddTaskUseCase,UpdateTaskUseCase,DeleteTaskUseCase,GetAllTasksUseCase,SearchTasksUseCase,FilterTasksUseCase,GetTaskStatisticsUseCase - Repository:
TaskRepositoryinterface andTaskRepositoryImpl - Database: Room DAO for local storage
- ViewModels:
TaskListViewModel,TaskDetailViewModel
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
Native iOS application with SwiftUI:
- Views: TaskListView, AddTaskView, TaskDetailView
- ViewModelWrapper: Bridge between Kotlin and Swift
- Create tasks with title, description, priority, status, and due date
- View task details with all metadata
- Update existing tasks
- Delete tasks with confirmation
- Real-time search by task title
- Filter by status (Todo, In Progress, Done)
- Filter by priority level
- Total task count
- Completed tasks tracking
- Pending tasks overview
- Progress metrics
- Android: API 24 (Android 7.0)
- iOS: iOS 15.0+
- Target SDK: Latest stable Android SDK
- JVM Target: Java 11
- Kotlin Version: Latest stable
Alims-Repo
- GitHub: @Alims-Repo
- 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.









