/criticalmaps-ios

Critical Maps iOS App 🚲✊

Primary LanguageSwiftMIT LicenseMIT

Critical Maps iOS App

CI Join TestFlight Localized Status

What's "Critical Mass"?

Critical Mass has been described as 'monthly political-protest rides', and characterized as being part of a social movement.

http://en.wikipedia.org/wiki/Critical_Mass_(cycling)

What's this app?

This iOS app is made for Critical Maps. It tracks your location and shares it with all other participants of the Critical Mass bicycle protest. You can use the chat to communicate with all other participants.

Where can I get the app?

Project Setup

The App uses Apple's Combine.framework for operation scheduling. The UI-Layer is built with The Composable Architecture and SwiftUI. Minimum platform requirements are: iOS 15.0

Modularization

The application is built in a hyper-modularized style. This allows to work on features without building the entire application, which improves compile times and SwiftUI preview stability. Every feature is its own target which makes it also possible to build mini-apps to run in the simulator for preview.

Getting Started

This repo contains both the client for running the entire Critical Maps application, as well as an extensive test suite. To get things running:

  1. Grab the code:
    git clone https://github.com/criticalmaps/criticalmaps-ios
    cd criticalmaps-ios
  2. Open the Xcode project CriticalMaps.xcodeproj.
  3. To run the client locally, select the Critical Maps target in Xcode and run (⌘R).

Optional Install fastlane with

make dependencies

Assets

The project is using type-safe assets generated with SwiftGen. If you add images to the project be sure to install it and run make assets from the root folder and add the changes to your PR.

Contribute

  • Please report bugs with GitHub issues.
  • If you can code please check the build & contribute guide below.
  • If you have some coins left you can help to finance the project on Open Collective.

How to contribute

In general, we follow the "fork-and-pull" Git workflow.

  1. Fork the repo on GitHub
  2. Clone the project to your own machine
  3. Commit changes to your own branch. Please add your changes also to the CHANGELOG. We're following the standard of Keep a Changelog
  4. Push your work back up to your fork
  5. Submit a Pull request so that we can review your changes

NOTES:

  • Be sure to merge the latest from "upstream" before making a pull request!

Open Source & Copying

We ship CriticalMaps on the App Store for free and provide its entire source code for free as well. In the spirit of openness, CriticalMaps is licensed under MIT so that you can use my code in your app, if you choose.

However, please do not ship this app under your own account. Paid or free.

Credits

lennet
Leo Thomas
headione
Norman Sander
mltbnz
Malte Bünz
fbernutz
Felizia Bernutz
i5glu
I5glu
maxxx777
Maxim Tsvetkov
zutrinken
Peter Amende
besilva
Bernardo Silva
stephanlindauer
Stephan Lindauer
jacquealvesb
Jacqueline Alves
huschu
Joscha
woxtu
Null
jkandzi
Justus Kandzi
ravi-tul-ios
Ravi Aggarwal
Freelenzer
Freelenzer
AlbanSagouis
Alban Sagouis
thisIsTheFoxe
Henry
k-nut
Knut Hühne
wacumov
Mikhail Akopov
StartingCoding
Loris

Copyright & License

Copyright (c) 2021 headione - Released under the MIT license.