SlideShare a Scribd company logo
1 of 31
Developing Multi Targetting
Win8 & WP8 Apps.
Jose Luis Latorre
Senior Developer, Accenture
UI Lead Developer, Roche Diagnostics
joslat@gmail.com - @joslat
http://silverlightguy.com
The importance of Multi Targeting 5’
ABC of Multi Targeting            10’
MVVM                              5’    Agenda
Creating our Multi Targeting App 25’


Summarizing + Q & A              5’
The Importance of
Multi Targeting
It is important. that’s why you are here, right?
Windows Phone 8
Windows Phone 7.x



                Direct3D, XAudi
Windows Phone
     .NET       o2, MF, WASAPI,
   Runtime
                 WIN32, COM



   C#, VB
 C#, VB, C++         C++
Windows Phone 8 Developer Platform
                            XAML Apps                               Direct3D Apps
                                                                       In-App
               XAML         Maps        Geolocation     Sensors                     Direct3D
                                                                      Purchase

               HTML          XML         Threading       Touch         Speech       XAudio2

Your apps     Phone
             Features
                             Push         Camera         Video        Proximity
                                                                                     Media
                                                                                   Foundation

Your way     Calendar       Wallet       Contacts      Core Types       VoIP          STL

            Multitasking   Live Tiles    Memory          Async        Enterprise      CRT

                   C# and VB                        C#, VB, and C++                  C++
                             File system, Networking, Graphics, Media
                                        Core Operating System
Networking
                  Proximity
                  In-App Purchase
                  Sensors
         2,800    Location
 11,000  shared   File System
members members   Core app model
                  Threading
ABC of Multi
Targeting
Let’s see the main points on how to do it right, the first time.
• Share code across platforms using Portable
  Class Libraries
• Apply MVVM to wire cross-platform apps
• Create portable abstractions for non-portable
  functionality
• Link Source code files between platforms.

• Create platform specific Views

• Share UI with user controls

• Always Decouple! Create Clean & SOLID
  Code.
portable class
library
One Source
One Project
One Binary

Multiple Platforms!
Windows 8   Windows Phone 8
Windows 8   Windows Phone 8
Windows 8
#if NETFX_CORE
Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => {
#endif



Windows Phone 8
#if WINDOWS_PHONE
Deployment.Current.Dispatcher.BeginInvoke(() => {
#endif
public class ServiceLocator
{
    public static IFileStorage FileStorage { get; set; }
    public static IPhotoChooser PhotoChooser { get; set; }
}
MVVM
It deserves its own section on this XAML world.
User Interface




 App Logic




General          Model-View-ViewModel (MVVM)
Creating our Multi
Targeting App
We will see how to create a Windows Store & Windows Phone
App that share code and components.
• Usage of PCL to share code
• Portable.MvvmLightLibs &
  Portable.CommonService Locator
• MVVM done right
• Linking code
• Usage of the Repository pattern
• Creation of our first ViewModel
• OData Client Tools for Windows Store &
  Windows Phone Apps
  (http://msdn.microsoft.com/en-us/jj658961)
Do not trust the web…
Summary..
So, what have we seen?
Applying best practices is a
must
Using proper design patterns
too
Sharing Code through PCL &
Linking
MVVM is fundamental
Jose Luis Latorre
Email: joslat@gmail.com
Twitter: @joslat
Blog: http://Silverlightguy.com
Developing Multi-Platform Apps with Shared Code
Developing Multi-Platform Apps with Shared Code

More Related Content

What's hot

실전 윈도우폰 망고 앱 디자인 & 개발 III(최종)
실전 윈도우폰 망고 앱 디자인 & 개발 III(최종)실전 윈도우폰 망고 앱 디자인 & 개발 III(최종)
실전 윈도우폰 망고 앱 디자인 & 개발 III(최종)mosaicnet
 
Portfolio of Nicole Haishu LI
Portfolio of Nicole Haishu LIPortfolio of Nicole Haishu LI
Portfolio of Nicole Haishu LINicole Li
 
Cross platform native mobile app development for iOS, Android and Windows usi...
Cross platform native mobile app development for iOS, Android and Windows usi...Cross platform native mobile app development for iOS, Android and Windows usi...
Cross platform native mobile app development for iOS, Android and Windows usi...Marcel de Vries
 
Introduction to MonoTouch
Introduction to MonoTouchIntroduction to MonoTouch
Introduction to MonoTouchmobiweave
 
Microsoft Windows Phone 7 Platform [IndicThreads Mobile Application Developm...
Microsoft Windows Phone 7 Platform  [IndicThreads Mobile Application Developm...Microsoft Windows Phone 7 Platform  [IndicThreads Mobile Application Developm...
Microsoft Windows Phone 7 Platform [IndicThreads Mobile Application Developm...IndicThreads
 
Weirdmeetup xamarin-presentation
Weirdmeetup xamarin-presentationWeirdmeetup xamarin-presentation
Weirdmeetup xamarin-presentationHanul Park
 
The platform and ecosystem strategy of Windows 8
The platform and ecosystem strategy of Windows 8 The platform and ecosystem strategy of Windows 8
The platform and ecosystem strategy of Windows 8 Jae Woo Kim
 
Ericsson Labs at SotM 2010
Ericsson Labs at SotM 2010Ericsson Labs at SotM 2010
Ericsson Labs at SotM 2010Tor Björn Minde
 
Flying Pixels Ent Apps Jeremy Chone
Flying Pixels Ent Apps Jeremy ChoneFlying Pixels Ent Apps Jeremy Chone
Flying Pixels Ent Apps Jeremy Chonerajivmordani
 
Introduction to Metro Applications
Introduction to Metro ApplicationsIntroduction to Metro Applications
Introduction to Metro ApplicationsMichael Collins
 
Bam amor mobile development tools
Bam amor   mobile development toolsBam amor   mobile development tools
Bam amor mobile development toolsBam Amor
 
ITCamp 2012 - Raffaele Rialdi - Introduction to WinRT
ITCamp 2012 - Raffaele Rialdi - Introduction to WinRTITCamp 2012 - Raffaele Rialdi - Introduction to WinRT
ITCamp 2012 - Raffaele Rialdi - Introduction to WinRTITCamp
 
Windows 8 and the cloud a match made in heaven
Windows 8 and the cloud a match made in heavenWindows 8 and the cloud a match made in heaven
Windows 8 and the cloud a match made in heavenNoam Sheffer
 
Meego Italian Day 2011 - Dr. Luca Roffia
Meego Italian Day 2011 - Dr. Luca RoffiaMeego Italian Day 2011 - Dr. Luca Roffia
Meego Italian Day 2011 - Dr. Luca RoffiaFrancesco Baldassarri
 
Mobile application platforms - Introduction
Mobile application platforms - IntroductionMobile application platforms - Introduction
Mobile application platforms - IntroductionMobileMonday Switzerland
 
Introduction to Flex
Introduction to FlexIntroduction to Flex
Introduction to Flexnamero999
 
Lcds & Blaze Ds by Corneliu Creanga
Lcds & Blaze Ds by Corneliu CreangaLcds & Blaze Ds by Corneliu Creanga
Lcds & Blaze Ds by Corneliu CreangaJUG Genova
 

What's hot (20)

Geek a-paloozaaa metro-xaml_appdev
Geek a-paloozaaa metro-xaml_appdevGeek a-paloozaaa metro-xaml_appdev
Geek a-paloozaaa metro-xaml_appdev
 
실전 윈도우폰 망고 앱 디자인 & 개발 III(최종)
실전 윈도우폰 망고 앱 디자인 & 개발 III(최종)실전 윈도우폰 망고 앱 디자인 & 개발 III(최종)
실전 윈도우폰 망고 앱 디자인 & 개발 III(최종)
 
Portfolio of Nicole Haishu LI
Portfolio of Nicole Haishu LIPortfolio of Nicole Haishu LI
Portfolio of Nicole Haishu LI
 
Win8 ru
Win8 ruWin8 ru
Win8 ru
 
Cross platform native mobile app development for iOS, Android and Windows usi...
Cross platform native mobile app development for iOS, Android and Windows usi...Cross platform native mobile app development for iOS, Android and Windows usi...
Cross platform native mobile app development for iOS, Android and Windows usi...
 
Introduction to MonoTouch
Introduction to MonoTouchIntroduction to MonoTouch
Introduction to MonoTouch
 
Microsoft Windows Phone 7 Platform [IndicThreads Mobile Application Developm...
Microsoft Windows Phone 7 Platform  [IndicThreads Mobile Application Developm...Microsoft Windows Phone 7 Platform  [IndicThreads Mobile Application Developm...
Microsoft Windows Phone 7 Platform [IndicThreads Mobile Application Developm...
 
Weirdmeetup xamarin-presentation
Weirdmeetup xamarin-presentationWeirdmeetup xamarin-presentation
Weirdmeetup xamarin-presentation
 
The platform and ecosystem strategy of Windows 8
The platform and ecosystem strategy of Windows 8 The platform and ecosystem strategy of Windows 8
The platform and ecosystem strategy of Windows 8
 
Ericsson Labs at SotM 2010
Ericsson Labs at SotM 2010Ericsson Labs at SotM 2010
Ericsson Labs at SotM 2010
 
Flying Pixels Ent Apps Jeremy Chone
Flying Pixels Ent Apps Jeremy ChoneFlying Pixels Ent Apps Jeremy Chone
Flying Pixels Ent Apps Jeremy Chone
 
Introduction to Metro Applications
Introduction to Metro ApplicationsIntroduction to Metro Applications
Introduction to Metro Applications
 
DEEPTI REVANKAR_RESUME
DEEPTI REVANKAR_RESUMEDEEPTI REVANKAR_RESUME
DEEPTI REVANKAR_RESUME
 
Bam amor mobile development tools
Bam amor   mobile development toolsBam amor   mobile development tools
Bam amor mobile development tools
 
ITCamp 2012 - Raffaele Rialdi - Introduction to WinRT
ITCamp 2012 - Raffaele Rialdi - Introduction to WinRTITCamp 2012 - Raffaele Rialdi - Introduction to WinRT
ITCamp 2012 - Raffaele Rialdi - Introduction to WinRT
 
Windows 8 and the cloud a match made in heaven
Windows 8 and the cloud a match made in heavenWindows 8 and the cloud a match made in heaven
Windows 8 and the cloud a match made in heaven
 
Meego Italian Day 2011 - Dr. Luca Roffia
Meego Italian Day 2011 - Dr. Luca RoffiaMeego Italian Day 2011 - Dr. Luca Roffia
Meego Italian Day 2011 - Dr. Luca Roffia
 
Mobile application platforms - Introduction
Mobile application platforms - IntroductionMobile application platforms - Introduction
Mobile application platforms - Introduction
 
Introduction to Flex
Introduction to FlexIntroduction to Flex
Introduction to Flex
 
Lcds & Blaze Ds by Corneliu Creanga
Lcds & Blaze Ds by Corneliu CreangaLcds & Blaze Ds by Corneliu Creanga
Lcds & Blaze Ds by Corneliu Creanga
 

Viewers also liked

Is It True That (Presentation Intercultural Management Course 2011) Version 1...
Is It True That (Presentation Intercultural Management Course 2011) Version 1...Is It True That (Presentation Intercultural Management Course 2011) Version 1...
Is It True That (Presentation Intercultural Management Course 2011) Version 1...Pozzolini
 
iaa 2009 + vicente perez, mikel larios, mikel sanz
iaa 2009 + vicente perez, mikel larios, mikel sanziaa 2009 + vicente perez, mikel larios, mikel sanz
iaa 2009 + vicente perez, mikel larios, mikel sanzvicente46
 
Surtsey
SurtseySurtsey
Surtseyjanusg
 
Introduction To OpenMI
Introduction To OpenMIIntroduction To OpenMI
Introduction To OpenMIJan Gregersen
 
Surtsey
SurtseySurtsey
Surtseyjanusg
 
1.0 Lesson One The I Needs The You Beta One 1.06 01012010
1.0 Lesson One The I Needs The You Beta One 1.06 010120101.0 Lesson One The I Needs The You Beta One 1.06 01012010
1.0 Lesson One The I Needs The You Beta One 1.06 01012010Pozzolini
 
AR Codes For PokéMon Diamond
AR Codes For PokéMon DiamondAR Codes For PokéMon Diamond
AR Codes For PokéMon Diamondguest9cfd97a
 
Using Market Research to Improve Student Experiences
Using Market Research to Improve Student ExperiencesUsing Market Research to Improve Student Experiences
Using Market Research to Improve Student ExperiencesCass Erbs
 
Dextrys IT Services Organization Overview
Dextrys IT Services Organization OverviewDextrys IT Services Organization Overview
Dextrys IT Services Organization OverviewLiuweiting
 
Преподавание информационных технологий в ВУЗе: как вырастить специалиста-прак...
Преподавание информационных технологий в ВУЗе: как вырастить специалиста-прак...Преподавание информационных технологий в ВУЗе: как вырастить специалиста-прак...
Преподавание информационных технологий в ВУЗе: как вырастить специалиста-прак...Grigoriy Pechenkin
 
Управление командой аналитиков
Управление командой аналитиковУправление командой аналитиков
Управление командой аналитиковGrigoriy Pechenkin
 

Viewers also liked (20)

Is It True That (Presentation Intercultural Management Course 2011) Version 1...
Is It True That (Presentation Intercultural Management Course 2011) Version 1...Is It True That (Presentation Intercultural Management Course 2011) Version 1...
Is It True That (Presentation Intercultural Management Course 2011) Version 1...
 
Windows 8
Windows 8Windows 8
Windows 8
 
iaa 2009 + vicente perez, mikel larios, mikel sanz
iaa 2009 + vicente perez, mikel larios, mikel sanziaa 2009 + vicente perez, mikel larios, mikel sanz
iaa 2009 + vicente perez, mikel larios, mikel sanz
 
Travades
TravadesTravades
Travades
 
Surtsey
SurtseySurtsey
Surtsey
 
2009.05 CRM Quidgest - Jose Torres
2009.05 CRM Quidgest - Jose Torres2009.05 CRM Quidgest - Jose Torres
2009.05 CRM Quidgest - Jose Torres
 
Md2010 jl-wp7-sl-game-dev
Md2010 jl-wp7-sl-game-devMd2010 jl-wp7-sl-game-dev
Md2010 jl-wp7-sl-game-dev
 
Tribute
TributeTribute
Tribute
 
Introduction To OpenMI
Introduction To OpenMIIntroduction To OpenMI
Introduction To OpenMI
 
Surtsey
SurtseySurtsey
Surtsey
 
Baikin
BaikinBaikin
Baikin
 
Vedenin
VedeninVedenin
Vedenin
 
Goldenthings
GoldenthingsGoldenthings
Goldenthings
 
1.0 Lesson One The I Needs The You Beta One 1.06 01012010
1.0 Lesson One The I Needs The You Beta One 1.06 010120101.0 Lesson One The I Needs The You Beta One 1.06 01012010
1.0 Lesson One The I Needs The You Beta One 1.06 01012010
 
Formación sociocultural ii intro
Formación sociocultural ii introFormación sociocultural ii intro
Formación sociocultural ii intro
 
AR Codes For PokéMon Diamond
AR Codes For PokéMon DiamondAR Codes For PokéMon Diamond
AR Codes For PokéMon Diamond
 
Using Market Research to Improve Student Experiences
Using Market Research to Improve Student ExperiencesUsing Market Research to Improve Student Experiences
Using Market Research to Improve Student Experiences
 
Dextrys IT Services Organization Overview
Dextrys IT Services Organization OverviewDextrys IT Services Organization Overview
Dextrys IT Services Organization Overview
 
Преподавание информационных технологий в ВУЗе: как вырастить специалиста-прак...
Преподавание информационных технологий в ВУЗе: как вырастить специалиста-прак...Преподавание информационных технологий в ВУЗе: как вырастить специалиста-прак...
Преподавание информационных технологий в ВУЗе: как вырастить специалиста-прак...
 
Управление командой аналитиков
Управление командой аналитиковУправление командой аналитиков
Управление командой аналитиков
 

Similar to Developing Multi-Platform Apps with Shared Code

Sharing code win8 wp8
Sharing code win8 wp8Sharing code win8 wp8
Sharing code win8 wp8matthidinger
 
HTML5 and the dawn of rich mobile web applications
HTML5 and the dawn of rich mobile web applicationsHTML5 and the dawn of rich mobile web applications
HTML5 and the dawn of rich mobile web applicationsJames Pearce
 
Building Rich Mobile Apps with HTML5, CSS3 and JavaScript
Building Rich Mobile Apps with HTML5, CSS3 and JavaScriptBuilding Rich Mobile Apps with HTML5, CSS3 and JavaScript
Building Rich Mobile Apps with HTML5, CSS3 and JavaScriptSencha
 
Device+Cloud: come sviluppare App moderne ed interconnesse
Device+Cloud: come sviluppare App moderne ed interconnesseDevice+Cloud: come sviluppare App moderne ed interconnesse
Device+Cloud: come sviluppare App moderne ed interconnesseNinja Marketing
 
ArcReady - Architecting For The Client Tier
ArcReady - Architecting For The Client TierArcReady - Architecting For The Client Tier
ArcReady - Architecting For The Client TierMicrosoft ArcReady
 
Windows 8 for .NET Developers
Windows 8 for .NET DevelopersWindows 8 for .NET Developers
Windows 8 for .NET DevelopersMichael Collins
 
Bam windows phone 7 for informatics
Bam   windows phone 7 for informaticsBam   windows phone 7 for informatics
Bam windows phone 7 for informaticsBam Amor
 
Hybrid Mobile Application Framework
Hybrid Mobile Application FrameworkHybrid Mobile Application Framework
Hybrid Mobile Application Framework동수 장
 
Magic mobile webinar_Jan2013
Magic mobile webinar_Jan2013Magic mobile webinar_Jan2013
Magic mobile webinar_Jan2013Magic Software
 
Android unveiled (I)
Android unveiled (I)Android unveiled (I)
Android unveiled (I)denian00
 
S#01 김영욱
S#01 김영욱 S#01 김영욱
S#01 김영욱 codercay
 
Building cross platform mobile web apps
Building cross platform mobile web appsBuilding cross platform mobile web apps
Building cross platform mobile web appsJames Pearce
 
Conociendo el ecosistema de Windows Phone 8 y Windows 8
Conociendo el ecosistema de Windows Phone 8 y Windows 8Conociendo el ecosistema de Windows Phone 8 y Windows 8
Conociendo el ecosistema de Windows Phone 8 y Windows 8Sorey García
 
PhoneGap Day - IBM, PhoneGap and the Enterprise
PhoneGap Day - IBM, PhoneGap and the EnterprisePhoneGap Day - IBM, PhoneGap and the Enterprise
PhoneGap Day - IBM, PhoneGap and the EnterpriseBryce Curtis
 

Similar to Developing Multi-Platform Apps with Shared Code (20)

Sharing code win8 wp8
Sharing code win8 wp8Sharing code win8 wp8
Sharing code win8 wp8
 
Introducing Windows Runtime in Windows 8
Introducing Windows Runtime in Windows 8Introducing Windows Runtime in Windows 8
Introducing Windows Runtime in Windows 8
 
Eco system apps
Eco system appsEco system apps
Eco system apps
 
HTML5 and the dawn of rich mobile web applications
HTML5 and the dawn of rich mobile web applicationsHTML5 and the dawn of rich mobile web applications
HTML5 and the dawn of rich mobile web applications
 
Building Rich Mobile Apps with HTML5, CSS3 and JavaScript
Building Rich Mobile Apps with HTML5, CSS3 and JavaScriptBuilding Rich Mobile Apps with HTML5, CSS3 and JavaScript
Building Rich Mobile Apps with HTML5, CSS3 and JavaScript
 
Build Windows 2012
Build Windows 2012Build Windows 2012
Build Windows 2012
 
Device+Cloud: come sviluppare App moderne ed interconnesse
Device+Cloud: come sviluppare App moderne ed interconnesseDevice+Cloud: come sviluppare App moderne ed interconnesse
Device+Cloud: come sviluppare App moderne ed interconnesse
 
ArcReady - Architecting For The Client Tier
ArcReady - Architecting For The Client TierArcReady - Architecting For The Client Tier
ArcReady - Architecting For The Client Tier
 
Windows 8 for .NET Developers
Windows 8 for .NET DevelopersWindows 8 for .NET Developers
Windows 8 for .NET Developers
 
Bam windows phone 7 for informatics
Bam   windows phone 7 for informaticsBam   windows phone 7 for informatics
Bam windows phone 7 for informatics
 
Windows 8
Windows 8Windows 8
Windows 8
 
Deep Dive into WinRT
Deep Dive into WinRTDeep Dive into WinRT
Deep Dive into WinRT
 
Hybrid Mobile Application Framework
Hybrid Mobile Application FrameworkHybrid Mobile Application Framework
Hybrid Mobile Application Framework
 
Magic mobile webinar_Jan2013
Magic mobile webinar_Jan2013Magic mobile webinar_Jan2013
Magic mobile webinar_Jan2013
 
Android unveiled (I)
Android unveiled (I)Android unveiled (I)
Android unveiled (I)
 
S#01 김영욱
S#01 김영욱 S#01 김영욱
S#01 김영욱
 
Building cross platform mobile web apps
Building cross platform mobile web appsBuilding cross platform mobile web apps
Building cross platform mobile web apps
 
TechDays 2013 Developer Keynote
TechDays 2013 Developer KeynoteTechDays 2013 Developer Keynote
TechDays 2013 Developer Keynote
 
Conociendo el ecosistema de Windows Phone 8 y Windows 8
Conociendo el ecosistema de Windows Phone 8 y Windows 8Conociendo el ecosistema de Windows Phone 8 y Windows 8
Conociendo el ecosistema de Windows Phone 8 y Windows 8
 
PhoneGap Day - IBM, PhoneGap and the Enterprise
PhoneGap Day - IBM, PhoneGap and the EnterprisePhoneGap Day - IBM, PhoneGap and the Enterprise
PhoneGap Day - IBM, PhoneGap and the Enterprise
 

Recently uploaded

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 

Recently uploaded (20)

E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 

Developing Multi-Platform Apps with Shared Code

  • 1. Developing Multi Targetting Win8 & WP8 Apps. Jose Luis Latorre Senior Developer, Accenture UI Lead Developer, Roche Diagnostics joslat@gmail.com - @joslat http://silverlightguy.com
  • 2. The importance of Multi Targeting 5’ ABC of Multi Targeting 10’ MVVM 5’ Agenda Creating our Multi Targeting App 25’ Summarizing + Q & A 5’
  • 3. The Importance of Multi Targeting It is important. that’s why you are here, right?
  • 4. Windows Phone 8 Windows Phone 7.x Direct3D, XAudi Windows Phone .NET o2, MF, WASAPI, Runtime WIN32, COM C#, VB C#, VB, C++ C++
  • 5. Windows Phone 8 Developer Platform XAML Apps Direct3D Apps In-App XAML Maps Geolocation Sensors Direct3D Purchase HTML XML Threading Touch Speech XAudio2 Your apps Phone Features Push Camera Video Proximity Media Foundation Your way Calendar Wallet Contacts Core Types VoIP STL Multitasking Live Tiles Memory Async Enterprise CRT C# and VB C#, VB, and C++ C++ File system, Networking, Graphics, Media Core Operating System
  • 6. Networking Proximity In-App Purchase Sensors 2,800 Location 11,000 shared File System members members Core app model Threading
  • 7.
  • 8. ABC of Multi Targeting Let’s see the main points on how to do it right, the first time.
  • 9. • Share code across platforms using Portable Class Libraries • Apply MVVM to wire cross-platform apps • Create portable abstractions for non-portable functionality
  • 10. • Link Source code files between platforms. • Create platform specific Views • Share UI with user controls • Always Decouple! Create Clean & SOLID Code.
  • 12.
  • 13. One Source One Project One Binary Multiple Platforms!
  • 14. Windows 8 Windows Phone 8
  • 15.
  • 16. Windows 8 Windows Phone 8
  • 17. Windows 8 #if NETFX_CORE Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { #endif Windows Phone 8 #if WINDOWS_PHONE Deployment.Current.Dispatcher.BeginInvoke(() => { #endif
  • 18. public class ServiceLocator { public static IFileStorage FileStorage { get; set; } public static IPhotoChooser PhotoChooser { get; set; } }
  • 19. MVVM It deserves its own section on this XAML world.
  • 20. User Interface App Logic General Model-View-ViewModel (MVVM)
  • 21.
  • 22.
  • 23. Creating our Multi Targeting App We will see how to create a Windows Store & Windows Phone App that share code and components.
  • 24. • Usage of PCL to share code • Portable.MvvmLightLibs & Portable.CommonService Locator • MVVM done right • Linking code
  • 25. • Usage of the Repository pattern • Creation of our first ViewModel • OData Client Tools for Windows Store & Windows Phone Apps (http://msdn.microsoft.com/en-us/jj658961)
  • 26. Do not trust the web…
  • 28. Applying best practices is a must Using proper design patterns too Sharing Code through PCL & Linking MVVM is fundamental
  • 29. Jose Luis Latorre Email: joslat@gmail.com Twitter: @joslat Blog: http://Silverlightguy.com

Editor's Notes

  1. Itisimportant and youknowwhy!YouhavetwomainreasonsYouknowhowtechnologyevolvesthesedays and youwantto be ready!You do notwantto be closedintoonlyonedevice and technology, right?
  2. Clean code: Easy to understand. Easy to modify. Easy to test. Works correctlySOLID  Single responsibility, Open-closed principle, Liskov substitution, Interface segregation and Dependency inversionSTUPIDSingletonTight couplingUntestabilityPremature OptimizationIndescriptive NamingDuplication
  3. The thread-handling dispatchers are different on Windows Phone and Windows 8. In windows 8, we use an element of the UI Core while in Windows Phone, we have a dispatcher that has been assigned to our app deployment. So, if you’re anything like me, you say “well it was worth a shot, time to give up”.
  4. Means Decouples
  5. Model – Not UI relatedView Model – Encapsulates hat to display and flow of interactionView – Defines dow to display information from the View ModelHow does this relate to portable libraries? View – needs to be different per platform. View Model and Model can be the same between platforms.So this pattern is ideally suited for creating cross-platform apps, because it encourages a clean separation between the parts of your code that should be shared and those that are platform specific
  6. What besides the UI wasn’t portable? File system, interaction with the OS.The View Models and Models will need that functionality. So…
  7. Herewewill créatefirst a base multitargetingappfor wp8 and Windows store apps, and wire in allthenecesarytoworkwith MVVM in a properway.NextwewillimplementanOdataserviceaccestogetherwiththeRepositorypattern, togetherwiththecorresponding ViewModel and Views.
  8. UpdateNuGetTolatest versiónInstall-PackagePortable.MvvmLightLibs
  9. Therepositoryseparates data consumptionfromhowthe data getspersisted andloaded.OdataClient tolos extendtheaddservicereferencewithclientsideodatasupportfor Windows store and Windows pone apps.