A full-featured goal tracking app built with SwiftUI, Core Data, and Clean Architecture. Published on the App Store. Designed, architected, and developed solo.
AimIt helps users break down long-term goals into milestones, organize work into dedicated workspaces, and track progress through interactive charts. It includes onboarding, push notifications for reminders, photo attachments, and custom illustrations throughout the UI.
| Layer | Details |
|---|---|
| UI | SwiftUI + selective UIKit for advanced customizations |
| Architecture | Clean Architecture, MVVM, SOLID |
| Persistence | Core Data |
| Concurrency | async/await, withCheckedContinuation, Actors |
| DI | Custom DI container using Factory pattern with Actor-based thread safety |
| Testing | XCTest unit tests |
| Notifications | UNUserNotifications |
Presentation Domain Data
┌──────────┐ ┌──────────────┐ ┌──────────────┐
│ SwiftUI │───▶│ Use Cases │───▶│ Repositories │
│ Views │ │ (Business │ │ (Core Data) │
│ │ │ Logic) │ │ │
│ ViewModels│◀──│ │◀───│ │
└──────────┘ └──────────────┘ └──────────────┘
The app follows a strict dependency rule — outer layers depend on inner layers, never the reverse. ViewModels talk to Use Cases, Use Cases talk to Repository protocols, and the Data layer provides concrete implementations backed by Core Data.
End-to-end ownership — sole developer from concept to App Store release, including architecture decisions, UI/UX design, data modeling, and deployment.
Clean separation of concerns — Repositories handle data access, Use Cases encapsulate business logic, ViewModels manage UI state. Each layer is independently testable.
Modern Swift concurrency — async/await throughout the networking and data layers, with withCheckedContinuation to bridge callback-based APIs and Actor isolation for thread-safe shared state.
Custom DI system — dependency injection container built on the Factory pattern, avoiding third-party DI frameworks while maintaining full testability.
Polished UI details — custom animations, hand-crafted illustrations, reusable component library, and onboarding flow. Follows Apple's Human Interface Guidelines.
git clone https://github.com/ldevdantesl/AimIt.git
cd AimIt
open AimIt.xcodeproj
# Cmd + R to build and runRequires Xcode 14.0+ and targets iOS 15.0+.
This project is shared for portfolio and educational purposes only. All rights reserved.
You may view and fork this repository for reference, but you may not copy, modify, distribute, or use any part of this code in your own projects — personal or commercial — without explicit written permission from the author.
Buzurgmehr Rahimzoda — ldevdantesl@gmail.com · GitHub