An iOS search client for StackOverflow using Stack Exchange API v2.2.
SeachOverflow is an iOS app that provides a simple interface for its users to search StackOverflow. With SearchOverflow, you can also view individual question details (includes a display of answers). Currently, all questions are sorted, in descending order, based on their "score" which is the net of that question's up/down votes. All answer lists will show answers with the accepted answer (if available) first, then sorted by score.
- Search StackOverflow using the Stack Exchange API
- Inifinite scrolling of questions found
- Question details page to see the answers for specific questions
- Markdown View to show question/answer bodies
- Simple Unit Tests
- iOS 11.0+
- Xcode 10.0+
- Cocoapods
Clone or download this repo.
CocoaPods is neccessary to run SearchOverflow
.
Using the terminal, navigate to the directory of this project and run:
pod install
I chose to use three 3rd party libraries via cocaopods, all of which are for UI:
- Down - "Blazing fast Markdown (CommonMark) rendering in Swift, built upon cmark v0.28.3."
- Kingfisher - "a powerful, pure-Swift library for downloading and caching images from the web."
- NVActivityIndicatorView - "is a collection of awesome loading animations."
Below (in Future Improvements), I've listed some additional improvements to make to this project. Being more descriptive: I would like to add additional units test to the view controllers (specifically looking at you infinite scroll), as well as UI Testing and integration testing. On the topic of inifinite scroll, this technique can have the potential to create a massive array of question arrays which would not be very effecient. I would like to refine this technique into something that might only have ~100 (or some fixed number) questions available at a time. Improvements can also be made to give the UI a little bit more a "feel."
- Refine infinite scroll to not have the potential for MASSIVE arrays
- More Unit Tests
- Search filtering by tags
- Search ordering by views, score, date, etc
- Refine UI
- Splash to Home animation