Coder Social home page Coder Social logo

alicele2710 / gocycling Goto Github PK

View Code? Open in Web Editor NEW

This project forked from anthonyh93/gocycling

0.0 0.0 0.0 18.84 MB

Intuitive cycling tracker app for iOS built with SwiftUI using Core Location, Core Data, MapKit, CloudKit and Combine. Features live route tracking, live metrics, storage of past cycling routes and statistics.

License: MIT License

Swift 100.00%

gocycling's Introduction

GoCycling

Available on the iOS App Store

https://apps.apple.com/app/go-cycling/id1565861313

App Icon

alt text

About

Go Cycling is a cycling tracker app built exclusively for iOS with SwiftUI. It is intended to be extremely easy to use for cyclists of all levels.

A key part of Go Cycling is it's privacy stance, there is no requirement for a sign in of any kind and all data is solely stored on the user's device. It also does not contain any advertisements.

Go Cycling makes use of many of Apple's frameworks and API's including:

  • Core Location for location data
  • MapKit for embedded maps throughout the app
  • Core Data for persistent data storage of cycling routes and user preferences
  • CloudKit for iCloud storage and synchronization of routes, records and preferences
  • Combine for location update event processing

System Requirements

This app is designed to support all iPhones and iPads with iOS14/iPadOS14 and above due to the use of the latest SwiftUI features.

For iPads, this includes support for both landscape and portait modes along with Slide Over and multitasking screen sizes.

Usage

Note: For Go Cycling to track your current location, you must allow location access in Settings (the app will also ask for permission on the first launch). The location permissions must be set to "Always Allow" for location updates to occur while the app is not on the screen.

To use this app, first, start a new cycling route from the Cycle tab. The timer should start incrementing, you can choose to leave your device locked or unlocked.

While the route is ongoing you will see metrics on the Cycle tab of your current progress as well as your path on the map.

Once you are finished with your cycling route, you can compelete the route by using the stop button. The route will be saved to your device and is viewable in the History tab along with metrics about the route.

More routes can be created in this same way and they can all be viewed, sorted and deleted from the History tab.

App Features

Go Cycling has many features packed into four tabs; Cycle, History, Statistics and Settings. It also fully supports both light and dark mode, automatically setting the mode based on device settings.

Note: All screenshots shown were taken on an iPhone 12 Pro Max simulator.

Features of the Cycle Tab

  • Start, stop, pause and resume routes with the on-screen stopwatch
  • View current cycling metrics, including distance cycled, speed and altitude
  • Large map showing current location and path taken
  • Timer showing cycling time of the ongoing route
  • Assign your route to a new/existing category upon completion

Device Screenshots of the Cycle Tab

Cycle Tab Without Ongoing Route Cycle Tab Without Ongoing Route Dark Cycle Tab With Ongoing Route Cycle Tab With Ongoing Route Dark
alt text alt text alt text alt text

Features of the History Tab

  • View all past cycling routes in an easily readable list
  • Sort all of your routes by time, distance and date (all offering ascending or descending order)
  • Filter your routes by their category, rename your categories or recategorize individual routes
  • Click on a single route to view a full screen view including a map of the route as well as metrics
  • Each list entry is deletable by swiping to the left

Device Screenshots of the History Tab

Cycling History List View Single Cycling Route Detailed View Single Cycling Route Detailed View Dark Filter Cycling History
alt text alt text alt text alt text

Features of the Statistics Tab

  • View detailed charts of cycling activity of past week, 5 weeks and 30 weeks
  • Compare activity between present and past time frames
  • View records for single routes and cumulative cycling
  • Progress toward 6 alternate app icons unlocked at certain activity milestones

Device Screenshots of the Statistics Tab

Cycling Statistics Comparison View Cycling Statistics Past Week Chart Cycling Statistics Past Week Chart With Selection Cycling Records View Dark
alt text alt text alt text alt text

Settings Feautures Throughout the App

  • Customize the app theme and app icon to fit your preferences
  • Set your preferred units and customize the metrics view on the Cycle tab
  • iCloud synchronization can be turned on or off
  • Option to reset all settings back to the defaults and delete all stored cycling routes
  • Selected sort order in the History tab will persist through future usage

Device Screenshots of Settings Features

General Settings View General Settings View Dark Changing App Icon to Default Setting Cycling History Sort Order
alt text alt text alt text alt text

Future Development

This app has been an immense amount of fun to develop and I have greatly enjoyed using SwiftUI! I am planning on continuing to add features as time permits and some ideas that are on my roadmap are listed below:

  • Calorie tracking within the app as an optional metric
  • Route generator feature where a user could enter the distance they want to ride and the app could suggest a route for them

Thank you very much for viewing this project!

gocycling's People

Contributors

anthonyh93 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.