SlideShare a Scribd company logo
V.I.P.E.R.
Jacob Van Brunt
M.V.C.
• Majority of mobile applications.
• Cons
• Massive View Controllers
• Hard to test
• Duplicate Code
Model View Controller
V.I.P.E.R.
• View
• Interactor
• Presenter
• Entity
• Routing
View
• Displays view data from the Presenter.
• Never request data from the Presenter.
• Relays interactions to the Presenter.
Interactor
• Contains all business logic for a given use case.
• All business logic should be independent of the
user interface.
• Interactors should be independent of OS ie iOS
and Mac OS
• Simple object make for easy testing.
Presenter
• Contains logic for displaying view content.
• Reacts to user interaction and communicates between
the View and the Interactor.
• Converts results from the Interactor to an object the can
be displayed to the View.
• Simple data structures should be the only thing passed
from the Interactor to the Presenter ie Strings…
• Simple object easy to test.
Entity
• Basic model object.
• Should only be changed by the Interactor and
never passed to the Presenter.
• Simple object make for easy testing.
Routing
• Handles navigation logic for describing which
screens are shown in which order.
• Used to handle transitions from one view to
another.
Datastore (Optional)
• Handles retrieving and saving data to storage,
such as database, online, memory, etc.
• Handles conversion from entity to data record and
data record to entity.
• Should only be accessed by the Interactor.
• Simple Object
Pros & Cons
• Pros
• Can easily be developed with TDD.
• Easily testable
• Allows for cross platform business logic and data
storage.
• Each object has a single responsibility.
• Can be used along side Reactive frameworks.
Pros & Cons
• Cons
• Does not allow for fast prototyping.
• Adds a layer of complexity to small or simple
projects.
• Can cause circular references, be mindful of
strong references to other objects.
• Can be difficult to understand.
Viper
Testimony
Q & A
Sources
• Clean Architecture
• https://blog.8thlight.com/uncle-bob/2012/08/13/the-
clean-architecture.html
• VIPER for iOS
• https://www.objc.io/issues/13-architecture/viper/
• Clean Architecture Android
• https://speakerdeck.com/richk/clean-android-
architecture

More Related Content

PDF
Infinum iOS Talks #2 - VIPER for everybody by Damjan Vujaklija
PDF
Introduction to VIPER Architecture
PDF
iOS viper presentation
PPTX
Sexy Architecting. VIPER: MVP on steroids
PDF
Infinum iOS Talks #4 - Making our VIPER more reactive
PDF
Break the monolith with (B)VIPER Modules
PPTX
Moving From AngularJS to Angular 2
PPTX
Building Modern Websites with ASP.NET by Rachel Appel
Infinum iOS Talks #2 - VIPER for everybody by Damjan Vujaklija
Introduction to VIPER Architecture
iOS viper presentation
Sexy Architecting. VIPER: MVP on steroids
Infinum iOS Talks #4 - Making our VIPER more reactive
Break the monolith with (B)VIPER Modules
Moving From AngularJS to Angular 2
Building Modern Websites with ASP.NET by Rachel Appel

What's hot (20)

PPTX
Angular js for Beginnners
PDF
Web sockets in Angular
PPTX
Building Real Time Applications with ASP.NET SignalR 2.0 by Rachel Appel
PDF
PDF
Azure Container Apps
PDF
Component-based Front-End architecture
PDF
Angular 4 for Java Developers
PPT
Servicehost Customization
PPTX
ASP.NET 4.5 webforms
PPTX
Integrating Servlets and JSP (The MVC Architecture)
PPTX
Angular 4
PPTX
Asp.net mvc 5 course module 1 overview
PPTX
Introduction to angular with a simple but complete project
PPTX
Single page application 03
PPTX
Asp.Net Mvc
PDF
Angular2 Development for Java developers
PPTX
Introduction to ASP.Net MVC
PPTX
SenchaCon 2016: Enterprise Applications, Role Based Access Controls (RBAC) an...
PDF
Stateful pattern con Azure Functions
PDF
Angular js for Beginnners
Web sockets in Angular
Building Real Time Applications with ASP.NET SignalR 2.0 by Rachel Appel
Azure Container Apps
Component-based Front-End architecture
Angular 4 for Java Developers
Servicehost Customization
ASP.NET 4.5 webforms
Integrating Servlets and JSP (The MVC Architecture)
Angular 4
Asp.net mvc 5 course module 1 overview
Introduction to angular with a simple but complete project
Single page application 03
Asp.Net Mvc
Angular2 Development for Java developers
Introduction to ASP.Net MVC
SenchaCon 2016: Enterprise Applications, Role Based Access Controls (RBAC) an...
Stateful pattern con Azure Functions
Ad

Similar to Viper (20)

PPTX
Object-Relational Mapping and Dependency Injection
PPT
Hybernat and structs, spring classes in mumbai
PPTX
Spring
PDF
Unit 4 Internet of Things communication models.pdf
PPTX
Chapter - 1.pptx
PDF
Android meetup
PPTX
Manage your devices with Azure IoT...and more
PPTX
Thesis Defence: A Model Driven Architecture for the Web of Things
PPTX
A Model-Driven, Component Generation Approach for the Web of Things
PDF
MVP Clean Architecture
PDF
Distributed Data Flow for the Web of Things: Distributed Node-RED
PPTX
Architecting modern Android apps
PDF
DDD Tactical Design with Clean Architecture - Ivan Paulovich
PPTX
IoT heap 1
PPTX
Iot cloud service v2.0
PPT
Architectural peripherals of react by Vadym Zhiltsov
PPTX
Writing Testable Code in SharePoint
PPTX
Unit 4 Introduction to internet of Things.pptx
PPTX
IoT.pptx
PPTX
spring
Object-Relational Mapping and Dependency Injection
Hybernat and structs, spring classes in mumbai
Spring
Unit 4 Internet of Things communication models.pdf
Chapter - 1.pptx
Android meetup
Manage your devices with Azure IoT...and more
Thesis Defence: A Model Driven Architecture for the Web of Things
A Model-Driven, Component Generation Approach for the Web of Things
MVP Clean Architecture
Distributed Data Flow for the Web of Things: Distributed Node-RED
Architecting modern Android apps
DDD Tactical Design with Clean Architecture - Ivan Paulovich
IoT heap 1
Iot cloud service v2.0
Architectural peripherals of react by Vadym Zhiltsov
Writing Testable Code in SharePoint
Unit 4 Introduction to internet of Things.pptx
IoT.pptx
spring
Ad

Recently uploaded (20)

PPTX
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
PPTX
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
PDF
AutoCAD Professional Crack 2025 With License Key
PDF
Autodesk AutoCAD Crack Free Download 2025
PDF
How to Make Money in the Metaverse_ Top Strategies for Beginners.pdf
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Complete Guide to Website Development in Malaysia for SMEs
PDF
Nekopoi APK 2025 free lastest update
PPTX
history of c programming in notes for students .pptx
PDF
AI-Powered Threat Modeling: The Future of Cybersecurity by Arun Kumar Elengov...
PDF
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
DOCX
Greta — No-Code AI for Building Full-Stack Web & Mobile Apps
PPTX
Monitoring Stack: Grafana, Loki & Promtail
PDF
CapCut Video Editor 6.8.1 Crack for PC Latest Download (Fully Activated) 2025
PDF
iTop VPN 6.5.0 Crack + License Key 2025 (Premium Version)
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
AutoCAD Professional Crack 2025 With License Key
Autodesk AutoCAD Crack Free Download 2025
How to Make Money in the Metaverse_ Top Strategies for Beginners.pdf
Odoo Companies in India – Driving Business Transformation.pdf
CHAPTER 2 - PM Management and IT Context
Complete Guide to Website Development in Malaysia for SMEs
Nekopoi APK 2025 free lastest update
history of c programming in notes for students .pptx
AI-Powered Threat Modeling: The Future of Cybersecurity by Arun Kumar Elengov...
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
wealthsignaloriginal-com-DS-text-... (1).pdf
Navsoft: AI-Powered Business Solutions & Custom Software Development
Greta — No-Code AI for Building Full-Stack Web & Mobile Apps
Monitoring Stack: Grafana, Loki & Promtail
CapCut Video Editor 6.8.1 Crack for PC Latest Download (Fully Activated) 2025
iTop VPN 6.5.0 Crack + License Key 2025 (Premium Version)

Viper

  • 2. M.V.C. • Majority of mobile applications. • Cons • Massive View Controllers • Hard to test • Duplicate Code Model View Controller
  • 3. V.I.P.E.R. • View • Interactor • Presenter • Entity • Routing
  • 4. View • Displays view data from the Presenter. • Never request data from the Presenter. • Relays interactions to the Presenter.
  • 5. Interactor • Contains all business logic for a given use case. • All business logic should be independent of the user interface. • Interactors should be independent of OS ie iOS and Mac OS • Simple object make for easy testing.
  • 6. Presenter • Contains logic for displaying view content. • Reacts to user interaction and communicates between the View and the Interactor. • Converts results from the Interactor to an object the can be displayed to the View. • Simple data structures should be the only thing passed from the Interactor to the Presenter ie Strings… • Simple object easy to test.
  • 7. Entity • Basic model object. • Should only be changed by the Interactor and never passed to the Presenter. • Simple object make for easy testing.
  • 8. Routing • Handles navigation logic for describing which screens are shown in which order. • Used to handle transitions from one view to another.
  • 9. Datastore (Optional) • Handles retrieving and saving data to storage, such as database, online, memory, etc. • Handles conversion from entity to data record and data record to entity. • Should only be accessed by the Interactor. • Simple Object
  • 10. Pros & Cons • Pros • Can easily be developed with TDD. • Easily testable • Allows for cross platform business logic and data storage. • Each object has a single responsibility. • Can be used along side Reactive frameworks.
  • 11. Pros & Cons • Cons • Does not allow for fast prototyping. • Adds a layer of complexity to small or simple projects. • Can cause circular references, be mindful of strong references to other objects. • Can be difficult to understand.
  • 14. Q & A
  • 15. Sources • Clean Architecture • https://blog.8thlight.com/uncle-bob/2012/08/13/the- clean-architecture.html • VIPER for iOS • https://www.objc.io/issues/13-architecture/viper/ • Clean Architecture Android • https://speakerdeck.com/richk/clean-android- architecture