SlideShare a Scribd company logo
Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved.
C2M – App
Design
Using MVVM
- Rohan Ratnaparkhi
@rohaanr
Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights reserved.Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 2
Contents
• Quick Recap
• MVVM
• Advantages & Disadvantages of MVVM
• Pods
• Installing a Pod
• App Design – UI & Code
• Ways to implement MVVM
Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights reserved.Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 3
Quick Recap
• Closure :
Closures are self-contained blocks of functionality that
can be passed around and used in your code.
• Optional
• Protocols:
Protocols are used to define a “blueprint of methods,
properties, and other requirements that suit a particular task or
piece of functionality.”
• Extensions
Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights reserved.Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 4
MVVM
• Model – Business logic
• View – Presentation, user interaction
• ViewModel – Presentation logic
Model ViewModel View
ownsowns
updates updates
Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights reserved.Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 5
MVVM - Advantages
• View Controllers are more maintainable
• Generates more testable code
• Makes changes easier
• Translation code is separated from View Controller
• Code reusability
Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights reserved.Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 6
MVVM - Disadvantages
• Could be an overkill for simple views
• Could create memory issues
• Doesn’t cover every case
Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights reserved.Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 7
Pods
• What?
A library or framework that's added to your project by
using CocoaPods.
Install CocoaPods on your mac using terminal:
sudo gem install cocoapods
Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights reserved.Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 8
Pods
• Installing a Pod
1. Open Terminal
2. Go to your project folder using cd path/to/folder
3. To initialize project to use CocoaPods, type in terminal pod init
4. Open Podfile created in project folder
5. Enter the pod you want to install e.g.
target 'MyApp' do
pod SDWebImage’
end
6. In Terminal, type pod install to install all the pods mentioned in Podfile
Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights reserved.Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 9
Demo 1
• Create project
• Pod installation
• Move business logic from ViewController to
ViewModel
Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights reserved.Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 10
Ways to implement MVVM
• Key Value Observers
• Delegation
• Reactive Programming
• Property Observers - Binding
Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights reserved.Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 11
Binding
Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights reserved.Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 12
Binding
Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights reserved.Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 13
Binding
Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights reserved.Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 14
Demo 2
• Use binding in our project.
Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 15
Thank You!

More Related Content

What's hot

MuleSoft London Community March 2022 - CloudHub Automation
MuleSoft London Community March 2022 - CloudHub AutomationMuleSoft London Community March 2022 - CloudHub Automation
MuleSoft London Community March 2022 - CloudHub Automation
Pace Integration
 
Sydney MuleSoft Meetup #16 - 19 November 2020
Sydney MuleSoft Meetup #16 - 19 November 2020Sydney MuleSoft Meetup #16 - 19 November 2020
Sydney MuleSoft Meetup #16 - 19 November 2020
Royston Lobo
 
Bhopal mule soft_meetup#2_18sept2021_cloudhubdr_strategy_bestpractices
Bhopal mule soft_meetup#2_18sept2021_cloudhubdr_strategy_bestpracticesBhopal mule soft_meetup#2_18sept2021_cloudhubdr_strategy_bestpractices
Bhopal mule soft_meetup#2_18sept2021_cloudhubdr_strategy_bestpractices
Preetam Deshmukh
 
Bhopal mule soft_meetup_17july2021_azuredevopsintegration_mulesoft
Bhopal mule soft_meetup_17july2021_azuredevopsintegration_mulesoftBhopal mule soft_meetup_17july2021_azuredevopsintegration_mulesoft
Bhopal mule soft_meetup_17july2021_azuredevopsintegration_mulesoft
AnkitaJaggi1
 
Meetup en español #5 - Continuous Integration and Continuous Delivery (CI/CD)...
Meetup en español #5 - Continuous Integration and Continuous Delivery (CI/CD)...Meetup en español #5 - Continuous Integration and Continuous Delivery (CI/CD)...
Meetup en español #5 - Continuous Integration and Continuous Delivery (CI/CD)...
Alexandra N. Martinez
 
São Paulo MuleSoft Meetup - 31 Jan
São Paulo MuleSoft Meetup - 31 JanSão Paulo MuleSoft Meetup - 31 Jan
São Paulo MuleSoft Meetup - 31 Jan
Guilherme Pereira Silva
 
MuleSoft: How to Engage Partners/Customers and API Led with Alexa
MuleSoft: How to Engage Partners/Customers and  API Led with Alexa MuleSoft: How to Engage Partners/Customers and  API Led with Alexa
MuleSoft: How to Engage Partners/Customers and API Led with Alexa
Angel Alberici
 
Jaipur MuleSoft Meetup Group - Virtual Meetup #5
Jaipur MuleSoft Meetup Group - Virtual Meetup #5Jaipur MuleSoft Meetup Group - Virtual Meetup #5
Jaipur MuleSoft Meetup Group - Virtual Meetup #5
Lalit Panwar
 
Anypoint new features_coimbatore_mule_meetup
Anypoint new features_coimbatore_mule_meetupAnypoint new features_coimbatore_mule_meetup
Anypoint new features_coimbatore_mule_meetup
MergeStack
 
Open shift 2.x and MongoDB
Open shift 2.x and MongoDBOpen shift 2.x and MongoDB
Open shift 2.x and MongoDB
plarsen67
 
Mulesoft AnyyPoint Monitoring for Hybrid Deployment
Mulesoft AnyyPoint Monitoring for Hybrid DeploymentMulesoft AnyyPoint Monitoring for Hybrid Deployment
Mulesoft AnyyPoint Monitoring for Hybrid Deployment
pruthviraj krishnam
 
Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...
Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...
Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...
Red Hat Developers
 
Magento Community Hangouts 10 Feb, 2021 PHP 8 support
Magento Community Hangouts  10 Feb, 2021 PHP 8 supportMagento Community Hangouts  10 Feb, 2021 PHP 8 support
Magento Community Hangouts 10 Feb, 2021 PHP 8 support
StanislavIdolov
 
Using the Mule 4 SDK to build a connector : MuleSoft Virtual Muleys Meetups
Using the Mule 4 SDK to build a connector  : MuleSoft Virtual Muleys MeetupsUsing the Mule 4 SDK to build a connector  : MuleSoft Virtual Muleys Meetups
Using the Mule 4 SDK to build a connector : MuleSoft Virtual Muleys Meetups
Angel Alberici
 
11th Manila MuleSoft Meetup Dec 2021
11th Manila MuleSoft Meetup Dec 202111th Manila MuleSoft Meetup Dec 2021
11th Manila MuleSoft Meetup Dec 2021
Ryan Anthony Andal
 
Coimbatore meetup error handling 24apr2021
Coimbatore meetup error handling 24apr2021Coimbatore meetup error handling 24apr2021
Coimbatore meetup error handling 24apr2021
Anoop Ramachandran
 
Develop & Deploy your Laravel Application on Google Cloud Platforms
Develop & Deploy your Laravel Application on Google Cloud PlatformsDevelop & Deploy your Laravel Application on Google Cloud Platforms
Develop & Deploy your Laravel Application on Google Cloud Platforms
Olanrewaju Abidogun
 
Contributing to Apache Projects and Making Profits
Contributing to Apache Projects and Making ProfitsContributing to Apache Projects and Making Profits
Contributing to Apache Projects and Making Profits
Henry Saputra
 
MuleSoft Online Meetup - Salesforce Streaming APIs
MuleSoft Online Meetup - Salesforce Streaming APIsMuleSoft Online Meetup - Salesforce Streaming APIs
MuleSoft Online Meetup - Salesforce Streaming APIs
Royston Lobo
 
Webinar - Rapise v6.6 | New Features and Enhancements
Webinar - Rapise v6.6 | New Features and EnhancementsWebinar - Rapise v6.6 | New Features and Enhancements
Webinar - Rapise v6.6 | New Features and Enhancements
Inflectra
 

What's hot (20)

MuleSoft London Community March 2022 - CloudHub Automation
MuleSoft London Community March 2022 - CloudHub AutomationMuleSoft London Community March 2022 - CloudHub Automation
MuleSoft London Community March 2022 - CloudHub Automation
 
Sydney MuleSoft Meetup #16 - 19 November 2020
Sydney MuleSoft Meetup #16 - 19 November 2020Sydney MuleSoft Meetup #16 - 19 November 2020
Sydney MuleSoft Meetup #16 - 19 November 2020
 
Bhopal mule soft_meetup#2_18sept2021_cloudhubdr_strategy_bestpractices
Bhopal mule soft_meetup#2_18sept2021_cloudhubdr_strategy_bestpracticesBhopal mule soft_meetup#2_18sept2021_cloudhubdr_strategy_bestpractices
Bhopal mule soft_meetup#2_18sept2021_cloudhubdr_strategy_bestpractices
 
Bhopal mule soft_meetup_17july2021_azuredevopsintegration_mulesoft
Bhopal mule soft_meetup_17july2021_azuredevopsintegration_mulesoftBhopal mule soft_meetup_17july2021_azuredevopsintegration_mulesoft
Bhopal mule soft_meetup_17july2021_azuredevopsintegration_mulesoft
 
Meetup en español #5 - Continuous Integration and Continuous Delivery (CI/CD)...
Meetup en español #5 - Continuous Integration and Continuous Delivery (CI/CD)...Meetup en español #5 - Continuous Integration and Continuous Delivery (CI/CD)...
Meetup en español #5 - Continuous Integration and Continuous Delivery (CI/CD)...
 
São Paulo MuleSoft Meetup - 31 Jan
São Paulo MuleSoft Meetup - 31 JanSão Paulo MuleSoft Meetup - 31 Jan
São Paulo MuleSoft Meetup - 31 Jan
 
MuleSoft: How to Engage Partners/Customers and API Led with Alexa
MuleSoft: How to Engage Partners/Customers and  API Led with Alexa MuleSoft: How to Engage Partners/Customers and  API Led with Alexa
MuleSoft: How to Engage Partners/Customers and API Led with Alexa
 
Jaipur MuleSoft Meetup Group - Virtual Meetup #5
Jaipur MuleSoft Meetup Group - Virtual Meetup #5Jaipur MuleSoft Meetup Group - Virtual Meetup #5
Jaipur MuleSoft Meetup Group - Virtual Meetup #5
 
Anypoint new features_coimbatore_mule_meetup
Anypoint new features_coimbatore_mule_meetupAnypoint new features_coimbatore_mule_meetup
Anypoint new features_coimbatore_mule_meetup
 
Open shift 2.x and MongoDB
Open shift 2.x and MongoDBOpen shift 2.x and MongoDB
Open shift 2.x and MongoDB
 
Mulesoft AnyyPoint Monitoring for Hybrid Deployment
Mulesoft AnyyPoint Monitoring for Hybrid DeploymentMulesoft AnyyPoint Monitoring for Hybrid Deployment
Mulesoft AnyyPoint Monitoring for Hybrid Deployment
 
Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...
Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...
Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...
 
Magento Community Hangouts 10 Feb, 2021 PHP 8 support
Magento Community Hangouts  10 Feb, 2021 PHP 8 supportMagento Community Hangouts  10 Feb, 2021 PHP 8 support
Magento Community Hangouts 10 Feb, 2021 PHP 8 support
 
Using the Mule 4 SDK to build a connector : MuleSoft Virtual Muleys Meetups
Using the Mule 4 SDK to build a connector  : MuleSoft Virtual Muleys MeetupsUsing the Mule 4 SDK to build a connector  : MuleSoft Virtual Muleys Meetups
Using the Mule 4 SDK to build a connector : MuleSoft Virtual Muleys Meetups
 
11th Manila MuleSoft Meetup Dec 2021
11th Manila MuleSoft Meetup Dec 202111th Manila MuleSoft Meetup Dec 2021
11th Manila MuleSoft Meetup Dec 2021
 
Coimbatore meetup error handling 24apr2021
Coimbatore meetup error handling 24apr2021Coimbatore meetup error handling 24apr2021
Coimbatore meetup error handling 24apr2021
 
Develop & Deploy your Laravel Application on Google Cloud Platforms
Develop & Deploy your Laravel Application on Google Cloud PlatformsDevelop & Deploy your Laravel Application on Google Cloud Platforms
Develop & Deploy your Laravel Application on Google Cloud Platforms
 
Contributing to Apache Projects and Making Profits
Contributing to Apache Projects and Making ProfitsContributing to Apache Projects and Making Profits
Contributing to Apache Projects and Making Profits
 
MuleSoft Online Meetup - Salesforce Streaming APIs
MuleSoft Online Meetup - Salesforce Streaming APIsMuleSoft Online Meetup - Salesforce Streaming APIs
MuleSoft Online Meetup - Salesforce Streaming APIs
 
Webinar - Rapise v6.6 | New Features and Enhancements
Webinar - Rapise v6.6 | New Features and EnhancementsWebinar - Rapise v6.6 | New Features and Enhancements
Webinar - Rapise v6.6 | New Features and Enhancements
 

Similar to C2M - App design

Drupal 8 Development at the Speed of Lightning (& BLT)
Drupal 8 Development at the Speed of Lightning (& BLT)Drupal 8 Development at the Speed of Lightning (& BLT)
Drupal 8 Development at the Speed of Lightning (& BLT)
Acquia
 
Advanced angular
Advanced angularAdvanced angular
Advanced angular
Sumit Kumar Rakshit
 
CI/CD with AWS Code Services
CI/CD with AWS Code ServicesCI/CD with AWS Code Services
CI/CD with AWS Code Services
Pulkit Gupta
 
Top 5 benefits of docker
Top 5 benefits of dockerTop 5 benefits of docker
Top 5 benefits of docker
John Zaccone
 
Using the SDACK Architecture on Security Event Inspection
Using the SDACK Architecture on Security Event InspectionUsing the SDACK Architecture on Security Event Inspection
Using the SDACK Architecture on Security Event Inspection
Yu-Lun Chen
 
Selecting an Open Source License and Business Model for Your Project to Have ...
Selecting an Open Source License and Business Model for Your Project to Have ...Selecting an Open Source License and Business Model for Your Project to Have ...
Selecting an Open Source License and Business Model for Your Project to Have ...
All Things Open
 
Introduction To Cloud Foundry - SpringPeople
Introduction To Cloud Foundry - SpringPeopleIntroduction To Cloud Foundry - SpringPeople
Introduction To Cloud Foundry - SpringPeople
SpringPeople
 
Riyadh Meetup4- Sonarqube for Mule 4 Code review
Riyadh Meetup4- Sonarqube for Mule 4 Code reviewRiyadh Meetup4- Sonarqube for Mule 4 Code review
Riyadh Meetup4- Sonarqube for Mule 4 Code review
satyasekhar123
 
Oracle: Building Cloud Native Applications
Oracle: Building Cloud Native ApplicationsOracle: Building Cloud Native Applications
Oracle: Building Cloud Native Applications
Kelly Goetsch
 
Free Mongo on OpenShift
Free Mongo on OpenShiftFree Mongo on OpenShift
Free Mongo on OpenShift
Steven Pousty
 
How to Architect and Develop Cloud Native Applications
How to Architect and Develop Cloud Native ApplicationsHow to Architect and Develop Cloud Native Applications
How to Architect and Develop Cloud Native Applications
Sufyaan Kazi
 
iOS design patterns: MVC, MVP and MVVM
iOS design patterns: MVC, MVP and MVVMiOS design patterns: MVC, MVP and MVVM
iOS design patterns: MVC, MVP and MVVM
Suyash Gupta
 
Mainframe DevOps: A Zowe CLI-enabled Roadmap
Mainframe DevOps: A Zowe CLI-enabled RoadmapMainframe DevOps: A Zowe CLI-enabled Roadmap
Mainframe DevOps: A Zowe CLI-enabled Roadmap
DevOps.com
 
How to Prepare Your Toolbox for the Future of SharePoint Development
How to Prepare Your Toolbox for the Future of SharePoint DevelopmentHow to Prepare Your Toolbox for the Future of SharePoint Development
How to Prepare Your Toolbox for the Future of SharePoint Development
Progress
 
Introduction to Code Composer Studio 4
Introduction to Code Composer Studio 4Introduction to Code Composer Studio 4
Introduction to Code Composer Studio 4
Pantech ProLabs India Pvt Ltd
 
[CON3189] JavaOne 2016 - Introduction to Java ME development for the Raspberr...
[CON3189] JavaOne 2016 - Introduction to Java ME development for the Raspberr...[CON3189] JavaOne 2016 - Introduction to Java ME development for the Raspberr...
[CON3189] JavaOne 2016 - Introduction to Java ME development for the Raspberr...
Kevin Hooke
 
Microservices + Oracle: A Bright Future
Microservices + Oracle: A Bright FutureMicroservices + Oracle: A Bright Future
Microservices + Oracle: A Bright Future
Kelly Goetsch
 
Cisco Managed Private Cloud in Your Data Center: Public cloud experience on ...
Cisco Managed Private Cloud in Your Data Center:  Public cloud experience on ...Cisco Managed Private Cloud in Your Data Center:  Public cloud experience on ...
Cisco Managed Private Cloud in Your Data Center: Public cloud experience on ...
Cisco DevNet
 
Talentica - JS Meetup - Angular Schematics
Talentica - JS Meetup - Angular SchematicsTalentica - JS Meetup - Angular Schematics
Talentica - JS Meetup - Angular Schematics
Krishnan Mudaliar
 
Where is cold fusion headed
Where is cold fusion headedWhere is cold fusion headed
Where is cold fusion headed
ColdFusionConference
 

Similar to C2M - App design (20)

Drupal 8 Development at the Speed of Lightning (& BLT)
Drupal 8 Development at the Speed of Lightning (& BLT)Drupal 8 Development at the Speed of Lightning (& BLT)
Drupal 8 Development at the Speed of Lightning (& BLT)
 
Advanced angular
Advanced angularAdvanced angular
Advanced angular
 
CI/CD with AWS Code Services
CI/CD with AWS Code ServicesCI/CD with AWS Code Services
CI/CD with AWS Code Services
 
Top 5 benefits of docker
Top 5 benefits of dockerTop 5 benefits of docker
Top 5 benefits of docker
 
Using the SDACK Architecture on Security Event Inspection
Using the SDACK Architecture on Security Event InspectionUsing the SDACK Architecture on Security Event Inspection
Using the SDACK Architecture on Security Event Inspection
 
Selecting an Open Source License and Business Model for Your Project to Have ...
Selecting an Open Source License and Business Model for Your Project to Have ...Selecting an Open Source License and Business Model for Your Project to Have ...
Selecting an Open Source License and Business Model for Your Project to Have ...
 
Introduction To Cloud Foundry - SpringPeople
Introduction To Cloud Foundry - SpringPeopleIntroduction To Cloud Foundry - SpringPeople
Introduction To Cloud Foundry - SpringPeople
 
Riyadh Meetup4- Sonarqube for Mule 4 Code review
Riyadh Meetup4- Sonarqube for Mule 4 Code reviewRiyadh Meetup4- Sonarqube for Mule 4 Code review
Riyadh Meetup4- Sonarqube for Mule 4 Code review
 
Oracle: Building Cloud Native Applications
Oracle: Building Cloud Native ApplicationsOracle: Building Cloud Native Applications
Oracle: Building Cloud Native Applications
 
Free Mongo on OpenShift
Free Mongo on OpenShiftFree Mongo on OpenShift
Free Mongo on OpenShift
 
How to Architect and Develop Cloud Native Applications
How to Architect and Develop Cloud Native ApplicationsHow to Architect and Develop Cloud Native Applications
How to Architect and Develop Cloud Native Applications
 
iOS design patterns: MVC, MVP and MVVM
iOS design patterns: MVC, MVP and MVVMiOS design patterns: MVC, MVP and MVVM
iOS design patterns: MVC, MVP and MVVM
 
Mainframe DevOps: A Zowe CLI-enabled Roadmap
Mainframe DevOps: A Zowe CLI-enabled RoadmapMainframe DevOps: A Zowe CLI-enabled Roadmap
Mainframe DevOps: A Zowe CLI-enabled Roadmap
 
How to Prepare Your Toolbox for the Future of SharePoint Development
How to Prepare Your Toolbox for the Future of SharePoint DevelopmentHow to Prepare Your Toolbox for the Future of SharePoint Development
How to Prepare Your Toolbox for the Future of SharePoint Development
 
Introduction to Code Composer Studio 4
Introduction to Code Composer Studio 4Introduction to Code Composer Studio 4
Introduction to Code Composer Studio 4
 
[CON3189] JavaOne 2016 - Introduction to Java ME development for the Raspberr...
[CON3189] JavaOne 2016 - Introduction to Java ME development for the Raspberr...[CON3189] JavaOne 2016 - Introduction to Java ME development for the Raspberr...
[CON3189] JavaOne 2016 - Introduction to Java ME development for the Raspberr...
 
Microservices + Oracle: A Bright Future
Microservices + Oracle: A Bright FutureMicroservices + Oracle: A Bright Future
Microservices + Oracle: A Bright Future
 
Cisco Managed Private Cloud in Your Data Center: Public cloud experience on ...
Cisco Managed Private Cloud in Your Data Center:  Public cloud experience on ...Cisco Managed Private Cloud in Your Data Center:  Public cloud experience on ...
Cisco Managed Private Cloud in Your Data Center: Public cloud experience on ...
 
Talentica - JS Meetup - Angular Schematics
Talentica - JS Meetup - Angular SchematicsTalentica - JS Meetup - Angular Schematics
Talentica - JS Meetup - Angular Schematics
 
Where is cold fusion headed
Where is cold fusion headedWhere is cold fusion headed
Where is cold fusion headed
 

Recently uploaded

Reimagining Your Library Space: How to Increase the Vibes in Your Library No ...
Reimagining Your Library Space: How to Increase the Vibes in Your Library No ...Reimagining Your Library Space: How to Increase the Vibes in Your Library No ...
Reimagining Your Library Space: How to Increase the Vibes in Your Library No ...
Diana Rendina
 
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
imrankhan141184
 
MARY JANE WILSON, A “BOA MÃE” .
MARY JANE WILSON, A “BOA MÃE”           .MARY JANE WILSON, A “BOA MÃE”           .
MARY JANE WILSON, A “BOA MÃE” .
Colégio Santa Teresinha
 
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptxC1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
mulvey2
 
Leveraging Generative AI to Drive Nonprofit Innovation
Leveraging Generative AI to Drive Nonprofit InnovationLeveraging Generative AI to Drive Nonprofit Innovation
Leveraging Generative AI to Drive Nonprofit Innovation
TechSoup
 
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptxPengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Fajar Baskoro
 
RHEOLOGY Physical pharmaceutics-II notes for B.pharm 4th sem students
RHEOLOGY Physical pharmaceutics-II notes for B.pharm 4th sem studentsRHEOLOGY Physical pharmaceutics-II notes for B.pharm 4th sem students
RHEOLOGY Physical pharmaceutics-II notes for B.pharm 4th sem students
Himanshu Rai
 
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UPLAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
RAHUL
 
Digital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental DesignDigital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental Design
amberjdewit93
 
How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17
Celine George
 
BBR 2024 Summer Sessions Interview Training
BBR  2024 Summer Sessions Interview TrainingBBR  2024 Summer Sessions Interview Training
BBR 2024 Summer Sessions Interview Training
Katrina Pritchard
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
Nicholas Montgomery
 
Main Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docxMain Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docx
adhitya5119
 
BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...
BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...
BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...
Nguyen Thanh Tu Collection
 
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
Nguyen Thanh Tu Collection
 
Wound healing PPT
Wound healing PPTWound healing PPT
Wound healing PPT
Jyoti Chand
 
A Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdfA Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdf
Jean Carlos Nunes Paixão
 
Advanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docxAdvanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docx
adhitya5119
 
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
National Information Standards Organization (NISO)
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
Nguyen Thanh Tu Collection
 

Recently uploaded (20)

Reimagining Your Library Space: How to Increase the Vibes in Your Library No ...
Reimagining Your Library Space: How to Increase the Vibes in Your Library No ...Reimagining Your Library Space: How to Increase the Vibes in Your Library No ...
Reimagining Your Library Space: How to Increase the Vibes in Your Library No ...
 
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
 
MARY JANE WILSON, A “BOA MÃE” .
MARY JANE WILSON, A “BOA MÃE”           .MARY JANE WILSON, A “BOA MÃE”           .
MARY JANE WILSON, A “BOA MÃE” .
 
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptxC1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
 
Leveraging Generative AI to Drive Nonprofit Innovation
Leveraging Generative AI to Drive Nonprofit InnovationLeveraging Generative AI to Drive Nonprofit Innovation
Leveraging Generative AI to Drive Nonprofit Innovation
 
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptxPengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptx
 
RHEOLOGY Physical pharmaceutics-II notes for B.pharm 4th sem students
RHEOLOGY Physical pharmaceutics-II notes for B.pharm 4th sem studentsRHEOLOGY Physical pharmaceutics-II notes for B.pharm 4th sem students
RHEOLOGY Physical pharmaceutics-II notes for B.pharm 4th sem students
 
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UPLAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
 
Digital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental DesignDigital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental Design
 
How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17
 
BBR 2024 Summer Sessions Interview Training
BBR  2024 Summer Sessions Interview TrainingBBR  2024 Summer Sessions Interview Training
BBR 2024 Summer Sessions Interview Training
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
 
Main Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docxMain Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docx
 
BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...
BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...
BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...
 
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
 
Wound healing PPT
Wound healing PPTWound healing PPT
Wound healing PPT
 
A Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdfA Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdf
 
Advanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docxAdvanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docx
 
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
 

C2M - App design

  • 1. Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. C2M – App Design Using MVVM - Rohan Ratnaparkhi @rohaanr
  • 2. Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights reserved.Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 2 Contents • Quick Recap • MVVM • Advantages & Disadvantages of MVVM • Pods • Installing a Pod • App Design – UI & Code • Ways to implement MVVM
  • 3. Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights reserved.Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 3 Quick Recap • Closure : Closures are self-contained blocks of functionality that can be passed around and used in your code. • Optional • Protocols: Protocols are used to define a “blueprint of methods, properties, and other requirements that suit a particular task or piece of functionality.” • Extensions
  • 4. Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights reserved.Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 4 MVVM • Model – Business logic • View – Presentation, user interaction • ViewModel – Presentation logic Model ViewModel View ownsowns updates updates
  • 5. Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights reserved.Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 5 MVVM - Advantages • View Controllers are more maintainable • Generates more testable code • Makes changes easier • Translation code is separated from View Controller • Code reusability
  • 6. Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights reserved.Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 6 MVVM - Disadvantages • Could be an overkill for simple views • Could create memory issues • Doesn’t cover every case
  • 7. Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights reserved.Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 7 Pods • What? A library or framework that's added to your project by using CocoaPods. Install CocoaPods on your mac using terminal: sudo gem install cocoapods
  • 8. Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights reserved.Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 8 Pods • Installing a Pod 1. Open Terminal 2. Go to your project folder using cd path/to/folder 3. To initialize project to use CocoaPods, type in terminal pod init 4. Open Podfile created in project folder 5. Enter the pod you want to install e.g. target 'MyApp' do pod SDWebImage’ end 6. In Terminal, type pod install to install all the pods mentioned in Podfile
  • 9. Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights reserved.Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 9 Demo 1 • Create project • Pod installation • Move business logic from ViewController to ViewModel
  • 10. Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights reserved.Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 10 Ways to implement MVVM • Key Value Observers • Delegation • Reactive Programming • Property Observers - Binding
  • 11. Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights reserved.Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 11 Binding
  • 12. Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights reserved.Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 12 Binding
  • 13. Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights reserved.Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 13 Binding
  • 14. Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights reserved.Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 14 Demo 2 • Use binding in our project.
  • 15. Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 15 Thank You!