Skip to content

semerda/CodePath-Yelp

Repository files navigation

Project 2 - Kraken Yelp

Kraken Yelp is a Yelp search app using the Yelp API.

Time spent: hours spent in total

User Stories

The following required functionality is completed:

  • Search results page
    • Table rows should be dynamic height according to the content height.
    • Custom cells should have the proper Auto Layout constraints.
    • Search bar should be in the navigation bar (doesn't have to expand to show location like the real Yelp app does).
  • Filter page. Unfortunately, not all the filters are supported in the Yelp API.
    • The filters you should actually have are: category, sort (best match, distance, highest rated), distance, deals (on/off).
    • The filters table should be organized into sections as in the mock.
    • You can use the default UISwitch for on/off states.
    • Clicking on the "Search" button should dismiss the filters page and trigger the search w/ the new filter settings.
    • Display some of the available Yelp categories (choose any 3-4 that you want).

The following optional features are implemented:

  • Search results page
    • Infinite scroll for restaurant results.
    • Implement map view of restaurant results.
  • Filter page
    • Implement a custom switch instead of the default UISwitch.
    • Distance filter should expand as in the real Yelp app
    • Categories should show a subset of the full list with a "See All" row to expand. Category list is here.
  • Implement the restaurant detail page.

The following additional features are implemented:

  • Using Custom Fonts - OpenSans.
  • Added Navigate using Maps from Restaurant Detail view.
  • When image fails, loads the Kraken Failed placeholder image.
  • Added MBProgressHUD for API calls.
  • Added Infinity Scroll.
  • Used DZNEmptyDataSet - for showing empty datasets whenever the view has no content to display.

Please list two areas of the assignment you'd like to discuss further with your peers during the next class (examples include better ways to implement something, how to extend your app in certain ways, etc):

  1. Filters view and expanding sections.
  2. Location Services - when to call, best practises for avoiding battery drain while maintaining good location coordinates.

Video Walkthrough

Here's a walkthrough of implemented user stories:

Kraken Yelp Video Walkthrough

GIF created with LiceCap.

Open-source libraries used

  • AFNetworking - a delightful networking framework for iOS, OS X, watchOS, and tvOS.
  • MBProgressHUD - an iOS drop-in class that displays a translucent HUD with an indicator and/or labels while work is being done in a background thread.
  • DZNEmptyDataSet - for showing empty datasets whenever the view has no content to display.
  • SevenSwitch - drop in replacement for UISwitch (upgraded to Swift3)
  • INTULocationManager - easily get the device's current location on iOS.

License

Visit www.ernestsemerda.com

Copyright 2016 Ernest Semerda (http://www.ernestsemerda.com/)

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

About

Kraken Yelp is a Yelp search app using the Yelp API.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published