iOS Swift

Boxwise

A purpose-driven educational platform for boxers — delivering structured learning in financial literacy, personal development, and wellbeing. Endorsed by two-time world champion Billy Dib in partnership with the WBC.

Boxwise Logo
Available on Apple App Store & Google Play

Engineering

Tech Stack

Technologies and frameworks used to build the iOS client.

🎨
UI & Presentation

Built with SwiftUI throughout, leveraging declarative views, state-driven updates, and native Apple design patterns. Developed and debugged entirely in Xcode.

SwiftUI Xcode
🏛️
Architecture

Followed MVVM with Clean Architecture layering — separating Presentation, Domain, and Data concerns for long-term maintainability and testability.

MVVM Clean Architecture
🌐
Networking

API calls managed through Moya (built on Alamofire), providing a type-safe, protocol-oriented networking layer with clearly structured endpoint definitions.

Moya REST API
Concurrency & Reactivity

Used Swift Combine for reactive data streams and state propagation. Adopted async/await for structured concurrency in network and data fetch operations.

Combine async / await
▶️
Media Playback — AVKit

Integrated AVKit / AVPlayer to stream and play in-app educational video content — course lessons and training material delivered as on-demand video.

AVKit AVPlayer
🔔
Push Notifications

Implemented Push Notifications via APNs to re-engage users with course reminders, content updates, and subscription alerts.

Push Notifications APNs
🧪
Testing — TDD & Unit Tests

Applied Test-Driven Development (TDD) as a core practice. Unit tests written with XCTest, covering ViewModels, Use Cases, and Repository logic. The Clean Architecture layering made isolating units for testing straightforward and reliable.

XCTest TDD Unit Testing

Structure

Clean Architecture Layers

The codebase is structured around Clean Architecture principles, ensuring each layer has a single responsibility and dependencies only point inward.

Presentation Layer

SwiftUI Views & ViewModels. Observes state, dispatches user events. No business logic.

Domain Layer

Use Cases & Entities. Pure Swift — no framework dependencies. Fully unit-testable.

Data Layer

Repositories, Moya-backed API Services, local persistence. Maps DTOs to domain models.

Complete Stack

All Technologies

SwiftUI Xcode MVVM Clean Architecture Moya Combine async / await AVKit AVPlayer Push Notifications XCTest TDD Unit Testing APNs REST API

My Role

I was working at ICTechnology Pty Ltd as an iOS Engineer on the Boxwise project — responsible for building the native iOS app from the ground up using SwiftUI and Clean Architecture. Key responsibilities included implementing the video playback feature with AVPlayer, setting up the Moya networking layer, wiring Combine-based reactive state, writing unit tests following TDD, and integrating Push Notifications.