Memestagram!
Memestagram is a light weight iOS Application that lets you browse through the different meme templates and view individual submissions for the same.
Design
The app uses a simple UITableView
for the home screen and a simple UICollectionView
to implement the grid on the submissions screen.
TagListView
The TagListView
library is implemented in each off the UITableViewCell
.
GridView
UICollectionViewCell
is dimensioned such that only 2 columns fit the frame. Each cell has one UIImageView
and two UILabels
for the top text and bottom text. The impact
font, generally used in memes is included in assets.
API
The Meme Maker API is used to get content. In particular, for the time being only the following functionality is being used.
- Get a Meme - used to get the memes based on the page number.
- Get Submissions - used to get all the submissions for a particular meme.
Optimization
- To save data consumption, the
Kingfisher
image caching library is used. It doesn't fetch the image repeatedly unless its contents are changed and only loads the image once. - To conserve the data consumption and also make queries load faster, the memes are fetched based on the page number. The furthur a user scrolls, the other memes are fetched and appended to the same TableView.
External Frameworks Used
NVActivityIndicatorView
- is a collection of awesome loading animations.Kingfisher
- is a powerful, pure-Swift library for downloading and caching images from the web.TagListView
- is a simple and highly customizable iOS tag list view.
Author
Acknowledgements
This project is part of an interview task. The author holds full ownership to any part of the project that may be used as part of another project.