SlideShare a Scribd company logo
Daniela Jovanoska Petrenko
daniela@spotify.com
@denicija
VIPER
An (highly elementary)
introduction to
Daniela Jovanoska Petrenko
daniela@spotify.com
@denicija
VIPER
“It is not enough for
code to work.”
― Robert C. Martin, Clean Code: A Handbook of Agile
Software Craftsmanship
The search
for the holly
architecture
The search
for the holly
architecturemobile
Source:https://developer.apple.com/library/ios/documentation/General/Conceptual/DevPedia-CocoaCore/MVC.html
Source: Ugaya40 (Own work) [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0)], via Wikimedia Commons
Source: blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html
VIP(ER)
Source: https://medium.com/ios-os-x-development/ios-architecture-patterns-ecba4c38de52#.cqp3sgpj9
View
Display information to the user and
detect user interaction
Presenter
Contains the UI related (UIKit independent)
business logic.
Interactor
Performs business logic
 “Contains business logic related to the data (Entities) or networking, like creating new
instances of entities or fetching them from the server. Forthose purposes you’ll use
some Services and Managers which are not considered as a part ofVIPER module but
rather an external dependency.”
Entities
Plain data objects
“Not all models (transport data structures) are Entities”
Router/Wireframe
The router/wireframe is what glues all of
the otherVIPER components to one
another and handles navigating from one
view to another in the app.
Binding it all together
It’s up to you!
Conclusion
‣ Separation of concerns
‣ Increased testability
‣ Reusability
‣ Spagetti code
‣ Verbosity
‣ Onboarding time for new developers
Conclusion
‣ Separation of concerns
‣ Increased testability
‣ Reusability
‣ Spagetti code
‣ Verbosity
‣ Onboarding time for new developers
“There are two parts to learning craftsmanship:
knowledge and work.
You must gain the knowledge of principles,
patterns, practices, and heuristics that a craftsman
knows, and you must also grind that knowledge into
your fingers, eyes, and gut by working hard and
practicing.”
― Robert C. Martin, Clean Code: A Handbook of Agile
Software Craftsmanship”
Resources and further reading
‣ RubygemforgeneratingVIPERfiles(https://github.com/rambler-ios/Generamba
‣ Cleanarchitectureblog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html
‣ Testimonials
http://www.outware.com.au/insights/ios-architecture-real-life-viper/
https://medium.com/ios-os-x-development/ios-architecture-patterns-ecba4c38de52#.cqp3sgpj9
https://medium.com/brigade-engineering/brigades-experience-using-an-mvc-alternative-36ef1601a41f#.srtvevutv
‣ CleanSwift
http://clean-swift.com/clean-swift-ios-architecture/
Thankyou!

More Related Content

PDF
2016-08-20 02 Антон Ковалев, Антон Кормаков. Viper. Чистая архитектура для iOS
PPTX
Viper в ios проектах
PDF
Introduction to VIPER Architecture
PDF
iOS viper presentation
PDF
From mvc to viper
PPTX
VIPER - Design Pattern
PDF
Rambler.iOS #5: VIPER и Swift
PPTX
Software architectural design patterns(MVC, MVP, MVVM, VIPER) for iOS
2016-08-20 02 Антон Ковалев, Антон Кормаков. Viper. Чистая архитектура для iOS
Viper в ios проектах
Introduction to VIPER Architecture
iOS viper presentation
From mvc to viper
VIPER - Design Pattern
Rambler.iOS #5: VIPER и Swift
Software architectural design patterns(MVC, MVP, MVVM, VIPER) for iOS

Similar to An (highly elementary) introduction to VIPER (20)

ODP
VIPER
PPTX
VIPER Architecture
PDF
Infinum iOS Talks #2 - VIPER for everybody by Damjan Vujaklija
PDF
Common iOS Architecture: From MVC to VIPER, with Redux
PPSX
SOLID Principles and The Clean Architecture
PDF
Mobile architectures
PDF
App specific app architecture
PPTX
VIPER ( ? OR : AND) MVVM
PDF
PDF
Clean VIP (Clean Swift) architecture
PDF
Intro to iOS Application Architecture
PDF
Clean architecture workshop
PDF
Break the monolith with (B)VIPER Modules
PDF
software architecture
PDF
Clean Architecture
PPTX
Mobile Application dev architecture..pptx
PPTX
iOS Architecture
PDF
Creating An App for 650 million customers v.2.pdf
PDF
Clear the UIViewController Mess
PDF
iOS advanced architecture workshop 3h edition
VIPER
VIPER Architecture
Infinum iOS Talks #2 - VIPER for everybody by Damjan Vujaklija
Common iOS Architecture: From MVC to VIPER, with Redux
SOLID Principles and The Clean Architecture
Mobile architectures
App specific app architecture
VIPER ( ? OR : AND) MVVM
Clean VIP (Clean Swift) architecture
Intro to iOS Application Architecture
Clean architecture workshop
Break the monolith with (B)VIPER Modules
software architecture
Clean Architecture
Mobile Application dev architecture..pptx
iOS Architecture
Creating An App for 650 million customers v.2.pdf
Clear the UIViewController Mess
iOS advanced architecture workshop 3h edition
Ad

Recently uploaded (6)

DOC
证书学历UoA毕业证,澳大利亚中汇学院毕业证国外大学毕业证
PPTX
ASMS Telecommunication company Profile
PDF
6-UseCfgfhgfhgfhgfhgfhfhhaseActivity.pdf
DOC
Camb毕业证学历认证,格罗斯泰斯特主教大学毕业证仿冒文凭毕业证
PDF
heheheueueyeyeyegehehehhehshMedia-Literacy.pdf
PDF
Lesson 13- HEREDITY _ pedSAWEREGFVCXZDSASEWFigree.pdf
证书学历UoA毕业证,澳大利亚中汇学院毕业证国外大学毕业证
ASMS Telecommunication company Profile
6-UseCfgfhgfhgfhgfhgfhfhhaseActivity.pdf
Camb毕业证学历认证,格罗斯泰斯特主教大学毕业证仿冒文凭毕业证
heheheueueyeyeyegehehehhehshMedia-Literacy.pdf
Lesson 13- HEREDITY _ pedSAWEREGFVCXZDSASEWFigree.pdf
Ad

An (highly elementary) introduction to VIPER