Skip to content

ivanscorral/CityTransportGuide

Repository files navigation

City Transport Guide

Workflow status

iOS starter workflow

Note: GitHub does not yet support Xcode 14.3 and iOS 16.4 so this project will keep failing builds until they add support

City Transport Guide is an iOS application that helps users explore the public transportation options in the city of Lisbon, Portugal. The app displays a map with custom markers for different public transport resources like bikes, scooters, metro stations, and more. Users can tap on a marker to view additional information about each resource, and even open the native Maps app for further navigation.

Features

  • Display a map centered on Lisbon.
  • Fetch and display markers for transportation resources (bikes, scooters, metro stations, etc.) from the provided API.
  • Show custom icons for each marker based on the companyID of the transportation resource.
  • Animate the markers when they appear on the map.
  • Update the markers on the map as the user moves around.
  • Limit the zoom level to a specific range.
  • Display an info window with the name and a short description of the resource when a marker is tapped.
  • Open the native Maps app with the selected location when the info window is tapped.
  • Handle errors gracefully by showing an error alert with relevant information.

Screenshots

Launch screen: Main map screen with custom icons Detailed view of an item: Map view of an item: Confirmation to open maps Error handling:

How to install

  • Clone the repository
    • git clone https://github.com/ivanscorral/CityTransportGuide.git
  • Make sure you have Cocoapods installed.
  • Run pod install on the project directory.
  • Open the newly generated .xcworkspace file.
  • Enter your API key in the Info.plist
  • Build and run the app

Tests

  • Unit tests for the ViewModel to ensure proper data fetching and filtering.
  • Unit tests for the MapElement class to verify the correct creation of MapElements and their properties.

Requirements

  • Xcode 14.3
  • iOS 16.4
  • Cocoapods for dependencies

Dependencies

  • Google Maps iOS SDK Library
  • Alamofire
  • Kingfisher

Contributing

No contributions will be merged and will be automatically denied as this is a personal project. However, feel free to fork the project making sure to respect the terms detailed in the LICENSE.md

Authors

  • Ivan Sanchez

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

Reference Links

About

App coding test for interview using Google Maps SDK

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published