Nearby Eats is my third project and the first published on the App Store, originated from my love for dining out and the need for a simple solution to discover local restaurants by distance and cuisine type. It marks my journey into manipulating real-time user location data and interactive maps, enhancing my understanding of user experience and technical implementation.
As I continue to refine the app, I plan on doing some future updates to enrich user engagement and provide detailed insights into dining options. They will include integrating the Google Places SDK to add photos, ratings, and reviews, while allowing different types of sorting, making the app a comprehensive dining guide.
UIKit • Auto Layout • Core Location • MapKit • Core Data
Upon launching the app, users are greeted with a search screen where they can set a radius and select their preferred cuisine type. After clicking the search button, it is displayed a list of places to eat matching their criteria.
When a user selects a place from the list, they are taken to a detailed restaurant screen with options to add it to favorites. Users can access, add, or remove restaurants anytime from the Favorites tab.
After making the search, users can view the restaurant results in a list or on a custom map for a more visual experience. By clicking on a map annotation, they can access the same detailed restaurant page.
Choose your route: users are able to get the directions with precision to the restaurants via Apple Maps or Google Maps directly from the restaurant detail screen for easy navigation to the dining destinations.
Using MapKit was an exciting aspect of development, although it came with its challenges, particularly when handling custom annotations for different types of places and drawing overlays that needed to update with user location changes. Initially, the overlays would accumulate on the map as the user moved, leading to clutter. I developed a method to remove old overlays and create new ones as the user's location changed, which kept the map view clear and functional.
And I must say this journey did not end with the app development; submitting the app to the App Store presented a new set of challenges. With no prior experience in app submission, I struggled to navigate the complexities of joining the Apple Developer Program, including issues with payment and account setup. These hurdles were significant, but overcoming them was a crucial part of my learning process.
Developing this app expanded my skills in iOS development, especially in utilizing Core Location and MapKit. This project not only taught me about handling real-time geolocation data but also introduced me to building user-friendly map interfaces and efficiently query and display location-based restaurant data. Additionally, the process of preparing and submitting the app to the App Store provided me with insights into app distribution, from meeting Apple's guidelines to managing app updates.