Skip to content

jainvandit99/Memes-For-All

Repository files navigation

Memestagram!

Memestagram is a light weight iOS Application that lets you browse through the different meme templates and view individual submissions for the same.

GitHub version Platform badge-languages license Release

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

Vandit Jain GitHub followers
Twitter

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.