Skip to content

A modern native iOS mobile fitness workout planner made with Swift for the Leuphana University.

License

Notifications You must be signed in to change notification settings

WebMo21/webmo21-mobile

Repository files navigation

🏋️ Fitness Time - Workout Planner Mobile App

A modern mobile application enabling users scheduling and organization of fitness activities.

🌐 VISIT LIVE WEBSITE

🎨 VISIT FRONTEND REPOSITORY

🖥️ VISIT BACKEND REPOSITORY

📱 VISIT MOBILE APP REPOSITORY

Preview Mobile App

✨ Features

  • CRUD for workouts
  • CRUD for weekly workout plans
  • Add, View, Update, Remove assigned workouts within their weekly workout plan
  • Various filters and search functionalities
  • Some CRUD for users based on authorization role
  • Different functionality for role user and admin
  • Language support for German and English

🤖 Tech

  • Modern client-side based on Swift through Xcode
  • Lightweight and modular front-end framework UIkit
  • CoreDataStack was implemented to persist structured data locally as an Array of JSON

🎨 UI

  • Responsive contraints for iOS operated mobile devices (Iphone Xr, 11, 11 pro, 11 pro max, 12, 12pro, 12 pro max)
  • Localization works in Apple way. So to change the language the language of the device has to be changed as it is derived of that.
  • Used Images
    • All used images are either CC0 free to use or their license has been purchased at Adobe Stock or flaticon

🏗️ Architecture & Design decisions

📁 File Structure

  • /Fitness_Time
    • Contains App directory with Views, Controllers and Models
  • /Fitness_TimeTests
    • Contains tests for business logic
  • /Fitness_TimeUITests
    • Contains tests for the User Interface
  • /Products
    • Contains the output of the builds

📏 Convention & Guidelines

📝 Authentication Decisions

For user authentication in the mobile app an email is used.

🐛 Downsides & Known Bugs

  • Not all functionality could been fulfilled for the mobile app due to time constraints

🏠 Getting Started

⏹️ Prerequisites

The following applications should be installed before running this software.

Git
Xcode

Run Mobile App locally

git clone <Frontend URL>
cd into project
Start Xcode
Use Xcode GUI to Start the App on a simulated target device

🧮 Organization

🔨 Tools

The Team (as visible below) worked together with a variety of different online tools to achieve the project outcome. Some of them are:

  • Xcode as code editor of choice
  • Discord for communication & screen sharing useful for digital pair programming
  • Git for working together on the codebase

🌊 Git flow

We used Git Flow to merge code into the codebase with a structured order and keep feature of the software concise. Our design is the following:

  • main branch (production environment)
  • develop branch (develop environment)

👨 Team

Jakob Holz Onur Menekse Artur Kamrad Sascha Majewsky

🔑 License

License under MIT License. See LICENSE for further information.