Skip to content

NikolaGrujic91/Apollo-iOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Apollo

PlatformIOS SwiftUI Language Maintenance License: GPL v3 style: swift lint style: swift formater

Table of contents

General info

Apollo is a running tracker app.

Available on iOS.

Features

  • Running plans:
    • 0 to 2K
    • 0 to 5K
    • 5K to 10k
    • Weight Loss: Level 1
    • Weight Loss: Level 2
    • Weight Loss: Level 3
  • Distance tracking
  • Calories burned
  • Integrated with Apple Health for reading weight
  • Works completely offline
  • Dark theme
  • Languages (en, nl)
  • Swipe between tabs

Usage

Requirements

This project requires:

  • XCode 14
  • iOS 16 (device or simulator)

Architecture

Architecture of the application is based on the microapps/microfeatures architecture.

Meet the microapps architecture

Get started/Building at scale/µFeatures Architecture

graph TD
    subgraph "App"
      ApolloApp[ApolloApp]
    end

    subgraph "Feature"
      FeaturePlans[FeaturePlans]
      FeatureSettings[FeatureSettings]
    end

    subgraph "Foundation"
      FoundationData[FoundationData]
      FoundationLocation[FoundationLocation]
      FoundationAudio[FoundationAudio]
      FoundationImages[FoundationImages]
      FoundationLogger[FoundationLogger]
      FoundationLocalization[FoundationLocalization]
      FoundationStorage[FoundationStorage]
    end

    subgraph "Utility"
      UtilityExtensions[UtilityExtensions]
    end


    ApolloApp --> FeaturePlans
    ApolloApp --> FeatureSettings
    
    FeaturePlans --> FeatureSettings
    FeaturePlans --> FoundationData
    FeaturePlans --> FoundationLocation
    FeaturePlans --> FoundationAudio
    FeaturePlans --> FoundationImages
    FeaturePlans --> UtilityExtensions

    FeatureSettings --> FoundationData
    FeatureSettings --> FoundationLogger
    FeatureSettings --> FoundationLocalization
    FeatureSettings --> FoundationStorage
    FeatureSettings --> UtilityExtensions

    FoundationData --> FoundationStorage
    FoundationData --> FoundationLogger

    FoundationLocation --> FoundationLogger

    FoundationAudio --> FoundationLogger

    FoundationLocalization --> FoundationLogger

    FoundationLogger --> CocoaLumberjack
Loading

Fastlane

brew install fastlane

Available Actions

Navigate to fastlane folder and run actions from terminal.

Build debug

fastlane ios build_debug

Build release

fastlane ios build_release

Create screenshots

fastlane ios screenshots

Tests with code coverage

fastlane ios tests

Dependency graph

Detailed dependency graph can be found at:

./DependencyGraph/html/emerge.html

It is generated using the emerge

Install emerge:

./Scripts/emerge/install_emerge.sh

Generate new dependency graph:

./Scripts/emerge/run_emerge.sh

License

This project is licensed under the GNU GPL v3 License - see the LICENSE.md file for details.