SlideShare a Scribd company logo
1 of 12
FRESHMVVM
A MVVM FRAMEWORK FOR XAMARIN FORMS
BY
KEN TUCKER
XAMARIN BUILD ANNOUNCEMENTS
• MICROSOFT PURCHASED XAMARIN
• XAMARIN FREE FOR EVERYONE
• VISUAL STUDIO ON WINDOWS
• XAMARIN STUDIO ON MAC
• XAMARIN INSIGHTS MOVING TO HOCKEYAPP
WHAT IS XAMARIN FORMS
• CROSS PLATFORM WAY TO CREATE APPS
• BRINGS XAML TO IOS AND ANDROID
• CODING DONE IN A PCL
• XAML RENDERS IN NATIVE CONTROLS ON PLATFORM
• XAML IS DIFFERENT THAN WPF XAML
WHAT IS MVVM
• MVVM STANDS FOR MODEL VIEW VIEWMODEL
• SEPARATES THE VIEW FROM THE DATA
• MAKES IT EASIER TO UNIT TEST
MVVM FRAMEWORKS FOR XAMARIN
• MVVMCROSS GREAT FOR CREATING CROSS PLATFORM APPS DOES NOT NEED
XAMARIN FORMS. KIND OF HEAVY WEIGHT
• MVVMLIGHT CAN CREATE CROSS PLATFORM APPS DOES NOT NEED XAMARIN
FORMS
• FRESHMVVM VERY LIGHT WEIGHT. REQUIRES XAMARIN FORMS
• ROCK MVVM NEEDS XAMARIN FORMS
ADD FRESHMVVM TO PROJECT
• CREATE NEW XAMARIN FORMS PROJECT
• ADD FRESHMVVM NUGET PACKAGE
• NOTE FRESHMVVM INCLUDES FRESHIOC (TINYOIC)
• ADD NEW FORM
FRESHMVVM TERMS
• PAGE = VIEW
• PAGEMODEL = VIEWMODEL
CREATE VIEWMODEL
• BIND PROPERTY AND COMMAND TO VIEWMODEL
SETUP APPLICATION FOR MVVMCROSS
• MAINPAGE =
FRESHMVVM.FRESHPAGEMODELRESOLVER.RESOLVEPAGEMODEL<FIRSTPAGEMOD
EL>();
NAVIGATION
• FRESHMVVM HAS SEVERAL NAVIGATION MODELS
• NEED TO USE NAVIAGATION CONTAINER FOR IT TO WORK
• VAR FIRSTPAGE=
FRESHMVVM.FRESHPAGEMODELRESOLVER.RESOLVEPAGEMODEL<FIRSTPAGEMOD
EL>();
• VAR NAVCONATINER = NEW
FRESHMVVM.FRESHNAVIGATIONCONTAINER(FIRSTPAGE);
• MAINPAGE = NAVCONATINER;
DEPENDENCY INJECTION
• USES FRESHIOC BY DEFAULT
• CAN USE OWN CONTAINER
• FRESHIOC.CONTAINER.REGISTER<ITEXTSERVICE, TEXTSERVICE>();
• CAN INJECT INTO THE CONSTRUCTOR
RESOURCES
• MICHAEL RIDLAND BLOG HTTP://WWW.MICHAELRIDLAND.COM/
• PROJECT ON GITHUB
HTTP://WWW.MICHAELRIDLAND.COM/XAMARIN/FRESHMVVM-QUICK-START-
GUIDE/
• LINK TO SOME VIDEOS ON BOTTOM OF PAGE
• VB2AE@LIVE.COM

More Related Content

Similar to Freshmvvm

Similar to Freshmvvm (20)

cloud basics.pptx
cloud basics.pptxcloud basics.pptx
cloud basics.pptx
 
Techcamp xamarin 2014
Techcamp xamarin 2014Techcamp xamarin 2014
Techcamp xamarin 2014
 
Xamarin, Intro to Mobile Development
Xamarin, Intro to Mobile DevelopmentXamarin, Intro to Mobile Development
Xamarin, Intro to Mobile Development
 
C# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCross
C# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCrossC# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCross
C# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCross
 
Xamarin on azure
Xamarin on azureXamarin on azure
Xamarin on azure
 
Getting started with ComponentOne Studio for Xamarin
Getting started with ComponentOne Studio for XamarinGetting started with ComponentOne Studio for Xamarin
Getting started with ComponentOne Studio for Xamarin
 
App days 2016 munich - Leaware - real time cross platform app with signalr ...
App days 2016   munich - Leaware - real time cross platform app with signalr ...App days 2016   munich - Leaware - real time cross platform app with signalr ...
App days 2016 munich - Leaware - real time cross platform app with signalr ...
 
Visual studio + Xamarin equals love
Visual studio + Xamarin equals loveVisual studio + Xamarin equals love
Visual studio + Xamarin equals love
 
AccuWeather
AccuWeatherAccuWeather
AccuWeather
 
Visual studio + Xamarin == Love
Visual studio + Xamarin == LoveVisual studio + Xamarin == Love
Visual studio + Xamarin == Love
 
VMware vFabric - Webinar with CIO Magazine
VMware vFabric - Webinar with CIO MagazineVMware vFabric - Webinar with CIO Magazine
VMware vFabric - Webinar with CIO Magazine
 
SCCM ConfigMgr Intune Architecture Decision Maker
SCCM ConfigMgr Intune Architecture Decision MakerSCCM ConfigMgr Intune Architecture Decision Maker
SCCM ConfigMgr Intune Architecture Decision Maker
 
Windows Apps | London Meetup
Windows Apps | London MeetupWindows Apps | London Meetup
Windows Apps | London Meetup
 
Xamarin Dev Days - Introduction to Xamarin.Forms, Insights, Test Cloud
Xamarin Dev Days -  Introduction to Xamarin.Forms, Insights, Test CloudXamarin Dev Days -  Introduction to Xamarin.Forms, Insights, Test Cloud
Xamarin Dev Days - Introduction to Xamarin.Forms, Insights, Test Cloud
 
Compiled Xaml Performance in Xamarin.Forms
Compiled Xaml Performance in Xamarin.FormsCompiled Xaml Performance in Xamarin.Forms
Compiled Xaml Performance in Xamarin.Forms
 
State of Union: Xamarin & Cross-Platform .NET in 2016 and Beyond
State of Union: Xamarin & Cross-Platform .NET in 2016 and BeyondState of Union: Xamarin & Cross-Platform .NET in 2016 and Beyond
State of Union: Xamarin & Cross-Platform .NET in 2016 and Beyond
 
Cross-Platform mobile development
Cross-Platform mobile developmentCross-Platform mobile development
Cross-Platform mobile development
 
Xamarin Workshop Noob to Master – Week 6
Xamarin Workshop Noob to Master – Week 6Xamarin Workshop Noob to Master – Week 6
Xamarin Workshop Noob to Master – Week 6
 
Hangout: Novidades do Xamarin
Hangout: Novidades do XamarinHangout: Novidades do Xamarin
Hangout: Novidades do Xamarin
 
Xamarin Cross-Platform with Xamarin.Form, MvvmCross
Xamarin Cross-Platform with Xamarin.Form, MvvmCrossXamarin Cross-Platform with Xamarin.Form, MvvmCross
Xamarin Cross-Platform with Xamarin.Form, MvvmCross
 

Recently uploaded

Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
panagenda
 
CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)
Wonjun Hwang
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
FIDO Alliance
 

Recently uploaded (20)

UiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewUiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overview
 
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptxCyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
JavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuideJavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate Guide
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 
CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
 
Generative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfGenerative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdf
 
How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cf
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 

Freshmvvm

  • 1. FRESHMVVM A MVVM FRAMEWORK FOR XAMARIN FORMS BY KEN TUCKER
  • 2. XAMARIN BUILD ANNOUNCEMENTS • MICROSOFT PURCHASED XAMARIN • XAMARIN FREE FOR EVERYONE • VISUAL STUDIO ON WINDOWS • XAMARIN STUDIO ON MAC • XAMARIN INSIGHTS MOVING TO HOCKEYAPP
  • 3. WHAT IS XAMARIN FORMS • CROSS PLATFORM WAY TO CREATE APPS • BRINGS XAML TO IOS AND ANDROID • CODING DONE IN A PCL • XAML RENDERS IN NATIVE CONTROLS ON PLATFORM • XAML IS DIFFERENT THAN WPF XAML
  • 4. WHAT IS MVVM • MVVM STANDS FOR MODEL VIEW VIEWMODEL • SEPARATES THE VIEW FROM THE DATA • MAKES IT EASIER TO UNIT TEST
  • 5. MVVM FRAMEWORKS FOR XAMARIN • MVVMCROSS GREAT FOR CREATING CROSS PLATFORM APPS DOES NOT NEED XAMARIN FORMS. KIND OF HEAVY WEIGHT • MVVMLIGHT CAN CREATE CROSS PLATFORM APPS DOES NOT NEED XAMARIN FORMS • FRESHMVVM VERY LIGHT WEIGHT. REQUIRES XAMARIN FORMS • ROCK MVVM NEEDS XAMARIN FORMS
  • 6. ADD FRESHMVVM TO PROJECT • CREATE NEW XAMARIN FORMS PROJECT • ADD FRESHMVVM NUGET PACKAGE • NOTE FRESHMVVM INCLUDES FRESHIOC (TINYOIC) • ADD NEW FORM
  • 7. FRESHMVVM TERMS • PAGE = VIEW • PAGEMODEL = VIEWMODEL
  • 8. CREATE VIEWMODEL • BIND PROPERTY AND COMMAND TO VIEWMODEL
  • 9. SETUP APPLICATION FOR MVVMCROSS • MAINPAGE = FRESHMVVM.FRESHPAGEMODELRESOLVER.RESOLVEPAGEMODEL<FIRSTPAGEMOD EL>();
  • 10. NAVIGATION • FRESHMVVM HAS SEVERAL NAVIGATION MODELS • NEED TO USE NAVIAGATION CONTAINER FOR IT TO WORK • VAR FIRSTPAGE= FRESHMVVM.FRESHPAGEMODELRESOLVER.RESOLVEPAGEMODEL<FIRSTPAGEMOD EL>(); • VAR NAVCONATINER = NEW FRESHMVVM.FRESHNAVIGATIONCONTAINER(FIRSTPAGE); • MAINPAGE = NAVCONATINER;
  • 11. DEPENDENCY INJECTION • USES FRESHIOC BY DEFAULT • CAN USE OWN CONTAINER • FRESHIOC.CONTAINER.REGISTER<ITEXTSERVICE, TEXTSERVICE>(); • CAN INJECT INTO THE CONSTRUCTOR
  • 12. RESOURCES • MICHAEL RIDLAND BLOG HTTP://WWW.MICHAELRIDLAND.COM/ • PROJECT ON GITHUB HTTP://WWW.MICHAELRIDLAND.COM/XAMARIN/FRESHMVVM-QUICK-START- GUIDE/ • LINK TO SOME VIDEOS ON BOTTOM OF PAGE • VB2AE@LIVE.COM