IvanBogdantsev / Toilet-Radar-Paris

A convenient app to find public toilets in Paris

Home Page:https://apps.apple.com/fr/app/toilet-radar-paris/id6448686615

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Toilet Radar Paris

iOS 13.0+

Like this project? Give it a star! 🌟

Link to App Store

https://apps.apple.com/fr/app/toilet-radar-paris/id6448686615

General concept

Toilet Radar Paris is an application that provides tourists and locals with a convenient way to find public toilets in Paris. The application features easy-to-use functionality including creating routes on the map, calculating time and distance from the user to the point and then changing this data as the user approaches their destination, as well as showing the details in an intuitive way. The application is fully localized to 9 most common languages spoken in Paris including Italian, Spanish and simplified Chinese.

How it looks?

Idle

Map view with constructed route

Details revealed in the bottom sheet

Prompting user to enable location services

Typical user flow

Screen_Recording_2023-05-07_at_15_53_40_AdobeExpress-2

Technical Notes

Toilet Radar is a MVVM application that uses RxSwift as a reactive backbone of the MVVM pattern. RxSwift operators and traits are extensively used in the application.
The map SDK of my choice is MapboxMaps. I used some techniques that are not covered in SDK documentation such as displaying device orientation and wrapping Mapbox classes in reactive API.
The application uses Mapbox Directions for polyline constructing and getting calculated distance and time. Distance and time are dynamically recalculated with each location update.
The app demonstrates conformance to SOLID principles, good View-ViewModel coupling and uses a rich arsenal of tools that come with the Swift language.
Feel free to benchmark any practices used in this app in your own projects.

3rd Party Libraries

  • RxSwift - RxSwift is used to make reactive bindings between View and ViewModel
  • Alamofire - Alamofire is used to make API calls
  • MapboxMaps - MapboxMaps SDK is the engine used for displaying map
  • MapboxDirections - Mapbox Directions is a powerful navigation SDK for routing and working with locations, polylines, route legs, routes etc.

About

A convenient app to find public toilets in Paris

https://apps.apple.com/fr/app/toilet-radar-paris/id6448686615


Languages

Language:Swift 100.0%