This project has been developed in XCode 8.3.2 and deployed to minimum OS iOS 8. Please use XCode 8.0 or greater for storyboard compatibility.
Please clone or download this repository [Master Branch] and run this project using XCode IDE. I have added a key in info.plist named 'NumberOfTopDisplayableTopicsInList' which represents how many topics will be shown on the home page. Please tweak the number as your convenience to test before making any build.
The application is started with a view where a user can give his/her username. Username can be changed when it come back to this view again. In the homepage, a user can publish topics and top 20 upvoted (I have not considered downvote here as in the requirement description, it was asked to consider topic's upvote.) topics to the list. If upvote is same for any two topics, the I have prioritized recent entry higher. Also, similar to Reddit, zero vote count has been shown instead of negative vote count for any topic.
please let me know if you need any clarification.