The application allows a Twitter user to be searched by their username, and if found, displays the most recent tweets from that user. And it presents a possible evaluation of feelings in relation to this tweet, which can be classified into three possible feelings: sad, neutral and happy, when it is selected from the list, showing three possible emojis to represent these feelings.
This sample app to demonstrate some aspect of clean architecture using MVVM-C pattern, RxSwift, dependency injection, unit testing, and some of the best practices used in modern iOS programming using Swift.
CocoaPods
for dependency management;RXSwift
for asynchronous and reactive communication;Swinject
for dependency injection;Moya
for communicating with APIs;ObjectMapper
for mapping the serialization of API responses;lottie-ios
for animations;SwiftSpinner
for loading;BRYXBanner
to display temp messages alert;RxBlocking
for help in the testing layer.
- API REST from Twitter (https://developer.twitter.com)
- API REST from Google Natural Language (https://cloud.google.com/natural-language)
Run the pod install
command
The keys for both the Twitter API and the Google API are still functional for testing, so just run the application and everything should work.
If it no longer works, it will be because the keys have already been intentionally disabled, and you need to update them within Resources/Configuration.plist