🌀 FIG – Client app using the Giphy API (http://giphy.com) for trending & search. Create a daily story of GIFs that match your mood.
- iOS 9.0
- XCode 8
- Swift 3
- Cocoapods
Install dependencies via Cocoapods (http://cocoapods.org):
$ pod install
Open GiphyClient.xcworkspace, and run the app! 😎
- Trending GIFs 📈
- Search GIF by term 🔍
- Caching GIFs for fast access 🏃
- Post Gifs + text to your daily story 🌞
- Local persistence of your story 🌊
Implemented this app in MVC, using a Model to handle retrieving JSON for trending and search queries. Images are loaded async as needed, and cached in the model. Upon creating a post, Realm (https://realm.io) handles persistent storage & retrieval of today's posts, in descending order by date, like a story in Snapchat or Messenger.
- Paging search results is more memory efficient (currently loads 500 GIFs fairly quickly) 📃
- Error handling 🐞
- Unit-testing 🤓
- Consider MVVM / ReactiveCocoa for larger projects
- Design for icons, animations, etc.
- PureLayout [API for iOS & OS X Auto Layout]: https://github.com/PureLayout/PureLayout
- SwiftyJSON: https://github.com/SwiftyJSON/SwiftyJSON
- FLAnimatedImage [Performant animated GIF engine for iOS]: https://github.com/Flipboard/FLAnimatedImage
- Realm [Open-source object database management system]: https://realm.io
- CHTCollectionViewWaterfallLayout: https://github.com/chiahsien/CHTCollectionViewWaterfallLayout
- String / Dictionary Extensions [Percent Encoding, String from HTTP Params]: http://www.ietf.org/rfc/rfc3986.txt
- Search Phrase Extension: https://stackoverflow.com/questions/24200888/any-way-to-replace-characters-on-swift-string
- UITextView Placeholder Extension: https://finnwea.com/blog/adding-placeholders-to-uitextviews-in-swift