“BikeParking” is an iOS application (MVP) built with Swift, SwiftUI, Google Maps SDK, and Firebase Storage. Its purpose is simple: display every bicycle parking location in San Francisco, with icons based on the parking type and an information window for details like racks, spaces, and address.
Demo :
Demo_BikeParkingApp.mp4
(Note : My TestFlight account being linked to my company, I unfortunately cannot share an .ipa here)
This project demonstrates how to:
- Load GeoJSON files stored in Firebase Storage
- Decode them into Swift models
- Plot markers on Google Maps iOS SDK
- Customize marker icons depending on the placement type (Sidewalk, road, garage, etc.) - Ability fo filter the different type of placements
- Display information using Google Maps’ default info windows
- Integrate Google Maps and Firebase, using Swift Package Manager on Xcode
BikeParking/
│
├── BikeParkingApp.swift
├── AppDelegate.swift
│
├── Models/
│ ├── BikeParkingSpot.swift
│ ├── GeoJSONModels.swift
│
├── Services/
│ └── FirebaseService.swift
│
├── ViewModels/
│ └── BikeParkingViewModel.swift
│
├── Views/
│ └── GoogleMapView.swift
│
├── Resources/
│ └── GoogleService-Info.plist
│
└── Assets.xcassets/
├── icon_sidewalk
├── icon_garage
├── icon_roadway
├── icon_parklet
├── icon_parcel
└── icon_default
- Xcode 15+
- iOS 15+
- Swift 5.9+
- Google Maps API key
- Firebase project with Storage enabled
- GeoJSON uploaded to Firebase:
Bicycle_Parking_Racks_20251116.geojson
git clone https://github.com/yourusername/BikeParking.git
cd BikeParking
open BikeParking.xcodeproj
Download GoogleService-Info.plist from your Firebase project, where you uploaded GeoJson datas from : https://data.sfgov.org/Transportation/Map-of-Bicycle-Parking/4w2j-vv4u.
In AppDelegate.swift:
GMSServices.provideAPIKey("YOUR_API_KEY")
Xcode → File → Add Packages…
Google Maps iOS SDK:
https://github.com/googlemaps/google-maps-ios-sdk
Firebase iOS SDK:
https://github.com/firebase/firebase-ios-sdk
Add ONLY:
- FirebaseCore
- FirebaseStorage
Connect your device or choose a simulator on Xcode. Press:
⌘R
San Francisco Open Data
https://data.sfgov.org/Transportation/Map-of-Bicycle-Parking/4w2j-vv4u
- Capacity for users to add new parking spots
- Capacity for users to report incidents (such as bicycle theft) at locations, in order to rate safety levels and generate a heat map
- Complete the unit tests - Of course, add other cities.
MIT License.
Built by yours truly.
Data: SF Open Data Portal (Thank you, that is awesome!)