Designed by our designer: Nagisa
RecipeFlicker allows you to make your own favorite recipe lists. Even if you can't come up with anything you want to cook for the night, RecipeFlicker offers random recipes from all around the world.
The GoogleService-Info.plist (Firebase) and API keys for Edamam Recipe Search API are not included for the security reason. Therefore you cannot use this app even if you clone and run it. However, the app is currently under the TestFlight process and published on the App Store very soon.
See this document to learn about the implementation details, user story, UML Class Diagram, etc.
Document: RecipeFlicker.pdf
- Keep good recipes
- Share good recipes with friends
- People who cook
- People who are in need of help to decide what to cook
Implement the core functions and publish the app without any trouble.
- Swipe to decide recipe(Tinder-like UI)
- Next random recipes are available at 7 am everyday
- Open up WebKitView to see the detail of the recipe
- List right-swiped recipes as the user's favorites
- Use Firebase as database for the later use
- Use Realm to store Firebase anonymous user id and everyday's random recipes
Implement full functionality.
- Firebase authentication (email / password, Facebook, Google)
- Register preferable and unpreferable ingredients
- Random recommendation of someone's collection shows up after the user swipes all recipes of the day
- Post URL with comment
- Follow / Unfollow people
- Save someone's recipe to the user's favorite
origin
├ master
|
└ develop
├ dev-master
├ developer1
└ developer2
Update app data on the app store.
Implement new functionalities.
Code which is ready to be merged into origin master.
The place where each developers actually create new features.
Follow this guideline. GUIDELINE.md
Language: Swift 4.2
Libraries:
- Alamofire: Simplifying networking process
- SwiftyJSON: Simplifying parsing JSON data
- KolodaView: Implement Tinder-like UI
- KingFisher: Download and cache images
API: EDAMAM Recipe Search API
Database: Firebase, Realm
We adopt simple MVC architecture so that we can keep the app simple. Additionally, MVC is easy to understand thanks to its simplicity.
root
├ users
| └ userId
| └ userId
|
├ favorites
| └ userId
| └ recipeId
| ├ firebaseId
| ├ image
| ├ isFavorite
| ├ originalRecipeUrl
| ├ realmId
| └ title
|
├ userCollections
| └ userId
| └ collectionId
| ├ collectionId
| ├ name
| └ image
|
└ recipeCollections
└ collectionId
└ recipeId (= firebaseId)
├ firebaseId
├ image
├ isFavorite
├ originalRecipeUrl
├ realmId
└ title
Project Manager, Leader, Developer - Kenta (Me)
Developer - Minami
Designer - Nagisa