WindRider-iOS: A SwiftUI app focused on cyclist comfort by analyzing headwinds on routes, with features for tracking and a lock screen widget for instant wind updates.
WindRider is an iOS application that helps cyclists determine the best time to ride based on the current and forecasted wind conditions. The app analyzes a predetermined bike path and calculates the direction of the bike throughout the journey. It then compares this with real-time weather data to determine the amount of headwind or tailwind a cyclist will encounter on any given day or moment.
Bike Path Analysis: Create a predetermined path between two points (e.g., home and university campus), and the app will calculate the direction of travel at equal points along the path.
Weather Impact Analysis: The app retrieves real-time weather data and determines what parts of the trip will be against the wind (headwind) and what parts will be with the wind (tailwind).
Comfortability Score: Based on the wind direction and speed, the app determines the comfortability of cycling in those specific weather conditions, helping you decide if it’s a good day to cycle or not.
The project consists of several Swift files:
ContentView.swift
: The main view of the app, which includes a map view and buttons for various functions such as adding a new path, selecting a route, analyzing the weather impact, and deleting paths.
RouteConditionPreviewView.swift
: A view that displays the calculated weather impacts on the selected path. It shows the temperature, wind speed, and percentages of headwind, tailwind, and crosswind.
WeatherImpactAnalysisEngine.swift
: A class that handles the analysis of weather impact on a given cycling path. It fetches weather conditions for the path, calculates the impact on each coordinate, and provides a holistic score representing the weather impact on the path.
Please refer to the comments in the code for more detailed explanations of each function.
This project is licensed under the MIT License.