Top 10 Places App

An iOS Application that's provide you the top 10 places in your location. All of the places are sorted by distance within your current location.

Appendix

This project is written on:

  • Swift
  • Pure SwiftUI
  • Xcode 14.3

Installation

In order to run this you need to have:

  • Preferrably Xcode 14.3 but you can try to use Xcode 14.xx.
    • This is to avoid issues when running this project on lower versions of xcode and macOS.
  • macOS Ventura since this is the version where the Xcode 14 series will run.
  • (Optional) Sourcetree for easier cloning but you can clone this using Git terminal.

After cloning the project, make sure that you select main as the main branch. After selecting the branch, you can open the project by:

  • Opening xcode 14.3
  • Selecting "Open a project or file"
  • Browse using the path that you save during cloning
  • Find the .Top10Places.xcodeproj file then open it Then in order to run the project you can simply press ctrl + R on your keyboard to build and run.

Upon opening the simulator, make sure that you have set the location to custom location since it will only simulate that.

To simulate location on a Simulator,

  • select Features menu > Location, then select custom location.
  • You also set a predefined location in this.
    • Select Debug menu > Simulate Location, then you will see a list of location options you can simulate.

No need to do additional libraries installation since this project isn't dependent on any 3rd party libraries or package dependency such as Swift Package manager or Cocoapods.

Features

  • [Top-left] Status view to show the current status of retrieving/processing the top 10 places.
  • [Top-left] List button to show the top 10 places in your location
  • [Bottom-right] Current Location Button to go to your current location
  • [Bottom-right] Refresh Button to update the top 10 places within your current location
  • Pin Annotations on the map that shows the current rank based on the distance between the place and your location.
    • Upon tapping, it will show a callout that shows the place information.
      • The current rank of the place
      • The name of the place
      • The full address of the place
      • The distance between the selected place and your location in terms of meters.
      • The latitude and longtitude of the place
  • Info Annotation on the map that shows the number of places that have the same coordinates. All of the annotations that have the same coordinates are combined into one annotation.
    • Upon tapping, it will show the list of places that have the same coordinates.
      • Selecting the place on the list will show the callout.
  • Pre-fetching/pre-cache of top 10 places
  • Light/dark mode

Screenshots (IPhone - Portrait)

App Screenshot App Screenshot App Screenshot App Screenshot

Screenshots (IPhone - landscape)

App Screenshot App Screenshot App Screenshot

Screenshots (IPad - Portrait)

App Screenshot App Screenshot App Screenshot App Screenshot

Screenshots (IPad - landscape)

App Screenshot App Screenshot App Screenshot App Screenshot