Skip to content

sparcs-kaist/app-ios

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

846 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Buddy

A comprehensive campus life companion app for KAIST students, integrating timetables, discussion boards, social feeds, and taxi coordination.

App Store Platform Swift License

Features

  • Timetable - Class schedule management with OTL integration
  • Boards - Campus discussion boards via Ara integration
  • Feed - Social feed with posts and comments
  • Taxi - Ride-sharing coordination with real-time chat
  • Search - Unified search across timetable, posts, and taxi rooms
  • Widgets - Lock screen and home screen widgets for quick access
  • Watch App - watchOS companion with complications
  • Siri Shortcuts - Voice command and automation integration for quick actions

Requirements

  • iOS 26.0+
  • watchOS 26.0+
  • Xcode 26.0+
  • Swift 6.2+

Architecture

The project follows Clean Architecture with a modular Swift Package Manager structure:

app-ios/
├── soap/                    # Main iOS app target
├── BuddyDomain/             # Domain layer (entities, use cases, repositories)
├── BuddyData/               # Platform-agnostic data layer
├── BuddyDataiOS/            # iOS-specific data implementations
├── BuddyFeature/            # Feature modules
│   ├── BuddyFeatureTimetable
│   ├── BuddyFeatureFeed
│   ├── BuddyFeaturePost
│   ├── BuddyFeatureTaxi
│   ├── BuddyFeatureSearch
│   ├── BuddyFeatureSettings
│   └── BuddyFeatureShared
├── BuddyUI/                 # Widget UI components
├── BuddyAppIntents/         # Siri Shortcuts integration
├── BuddyiOSWidget/          # iOS widget extension
├── BuddyWatchWidget/        # watchOS widget extension
└── WatchBuddy Watch App/    # watchOS companion app

Design Patterns

  • Repository Pattern - Abstracted data access via protocols
  • Dependency Injection - Using Factory for IoC container
  • MVVM - ViewModels with SwiftUI and Observation framework

Dependencies

Package Purpose
Factory Dependency injection
Moya Network abstraction
Alamofire HTTP networking
Socket.IO Real-time chat
Nuke Image loading
KeychainSwift Secure storage
Firebase Crashlytics & Push notifications

Getting Started

  1. Clone the repository:

    git clone https://github.com/sparcs-kaist/app-ios.git
    cd app-ios
  2. Open the project in Xcode:

    open soap.xcodeproj
  3. Resolve Swift Package dependencies (Xcode will do this automatically)

  4. Build and run the soap scheme

Configuration

Firebase Setup

Add your GoogleService-Info.plist to the soap/ directory for Firebase services.

Authentication

The app uses SPARCS SSO for authentication. Contact the SPARCS team for API access.

Localization

The app supports:

  • English (default)
  • Korean

Localization files are managed using Localizable.xcstrings.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Copyright 2025 SPARCS

About

Buddy for KAIST iOS

Resources

License

Stars

Watchers

Forks

Contributors 5

Languages