{"repo":"che1404/RGViperChat","free":true,"listed":false,"github":"https://github.com/che1404/RGViperChat","clone":"git clone https://github.com/che1404/RGViperChat.git","description":"An iOS chat app written following a VIPER architecture and BDD","language":"Swift","stars":64,"topics":["swift","viper","viper-architecture","bdd","tdd","chat","firebase","ios","ios-app"],"license":"MIT","category":"mobile-apps","readme_excerpt":"RGViperChat An iOS chat app written following a VIPER architecture and BDD With this project I'd like to gather all the best practices I can find when working with a VIPER architecture and a BDD approach. VIPER is the Uncle Bob's Clean Architecture implementation, and it pushes the SRP (Single Responsibility Principle) to the limit . Although it works seamlessly on linear and simple apps, there are always cases in which VIPER doesn't fit perfectly without thinking a bit further: inter module communications, or working view containers like UIPageViewControllers, UITabBarControllers, or Burger menus. The dependency injection is another challenge, particularly for those cases in which a service is reused across different modules of the app. Here you can find a presentation of a talk I gave about VIPER and BDD: https://robertogarrido.com/wp-content/uploads/2017/06/Clean-Architectures-and-BDD-on-iOS-GitHub.pdf References Here you can find a list of interesting readings about VIPER and BDD: IOS ARCHITECTURE PATTERNS: https://medium.com/ios-os-x-development/ios-architecture-patterns-ecba4c38de52 ARCHITECTING IOS APPS WITH VIPER: https://www.objc.io/issues/13-architecture/viper/ ARCHITECTING MOBILE APPS WITH (B)VIPER MODULES - A STRUCTURED ENGINEERING APPROACH FOR BIG MOBILE APPS: http://digital.travelport.com/blog/architecting-mobile-apps-with-bviper-modules VIPER ARCHITECTURE: OUR BEST PRACTICES TO BUILD AN APP LIKE A BOSS: https://cheesecakelabs.com/blog/best-practices-viper-archi","default_branch":null,"files":null,"tree":[],"storefront":"/r/che1404","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/che1404/RGViperChat/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}