Skip to content

dev-thalizao/sentimentify-ios

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CI Xcode Swift 5.3.2 iOS

Sentimentify, the app who analyze your tweets :)

The architecture was built using the concepts of Clean Architecture and the SOLID principles. The modularization was composed by:

  • SentimentifyEngine: Domain and presentation layers of Search and Analyze features plus abstractions of data layer, like HTTP client.
  • SentimentifyiOS: User interface implementation of Search and Analyze features using UIKit.
  • TwitterSearchInfrastructure: Infrastructure details of how to do a twitter request, how authenticate and how map the data. Implements the SearchLoader protocol and add behaviour of tweets search.
  • GoogleAnalyzeInfrastructure: Infrastructure details of how to do a natural language request, how authenticate and how map the data. Implements both AnalyzeLoader and AnalyzeClassifier protocol, and add behaviour of analyze sentiment and classify the content.
  • SentimentifyTestExtensions: Add extra behaviours specific for unit tests.
  • SentimentifyApp: The main module, that create features and inject the dependencies, control the navigation flow, add new behaviours trough decorators and adapters.
demo.mov

Features

  • Search and list the latest tweets
  • See the emotion result based on selected tweet

Non-functional features

  • Clean Architecture
  • SOLID Principles
  • Unit Tests using TDD
  • Modular projects using Frameworks
  • Design Patterns (Strategy, Proxy, Decorator and Adapter)
  • Twitter and Google Natural Language as infrastrucure details, adding the possibility to extend new behaviours
  • UITableViewDiffableDataSource
  • Child View Controllers (Plugin like)
  • Dark Mode
  • HTTP requests
  • Error Handling
  • CI using GitHub Actions
  • Swift Package Manager

Third-party dependencies

  • Kingfisher

Architecture Diagram

architecture

About

An app that uses Twitter Api and Google Natural Language APIs to analyze tweet sentiments.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages