Cross Plattform App Entwicklung mit Visual Studio 2015 (Xamarin und Cordova)

51
Cross-Plattform-App- Entwicklung in Visual Studio 2015: Xamarin und Cordova André Krämer Softwareentwickler, Trainer & Berater [email protected] | http://andrekraemer.de | http://andrekraemer.de/blog | http://github.com/AndreKraemer

Transcript of Cross Plattform App Entwicklung mit Visual Studio 2015 (Xamarin und Cordova)

Cross-Plattform-App-EntwicklunginVisualStudio

2015:Xamarin undCordova

AndréKrämerSoftwareentwickler,Trainer&Berater

[email protected] |http://andrekraemer.de|http://andrekraemer.de/blog |http://github.com/AndreKraemer

HerausforderungeninmodernenGeschäftsanwendungen

Geschäftsanwendungen,wiewirsiekennen…

ScreenshotdesOpenSourceToolsBulk Rename Utility.ScreenshoterstelltvonAndréKrämer

Foto:©anyaberkut |Fotolia.com

Foto:©PIKSEL|istockphoto.com

Foto:©pannawat |Fotolia.com

BisEnde2017wirdderBedarfanEnterpriseMobileAppsdieverfügbarenEntwicklungskapazitätenumdenFaktorfünfübersteigen

Quelle:Gartner|http://www.gartner.com/newsroom/id/3076817

SmartphoneMarktanteileQ2/2015(Quelle:IDC)

Android;82,80%

iOS;13,90%

WindowsPhone;2,60%

Rest;0,70%

Android

iOS

WindowsPhone

Rest

Verteilung derTabletBetriebssysteme im geschäftlichen Umfeld(Quelle:GoodTechnology)

iOS;64%

Android;25%

Windows;11%

iOS

Android

Windows

Herausforderung

• DurchdievielfalltanGerätenmussfürunterschiedlicheBetriebssystemeentwickeltwerden• iOS• Android• UniversalWindowsPlatform Apps(Windows10)

• FürJedePlattformwirdandersentwickelt• iOS:Objective CoderSwiftundXcode• Android:JavaundAndroidStudio• UWP:C#/VB.NEToderC++mitXAML(oderJavaScript+HTML)

SiehabenbegrenzteEntwicklerressourcen!

Foto:©NinaMalyna|istockphoto.com

Lösungsansätze

Nativ für jede Plattform mit denHersteller SDKsundWerkzeugen• MehrereTeams• MehrereCodezweige• UnterschiedlicheWerkzeuge

HybridmitHTMLundJavaScript

• EntwicklungmitHTML/JavaScript•GeteilterCodeübermehrerePlattformen•DarstellungderAppineinemrahmenlosenBrowser• ZugriffaufnativeAPIsüberPlugins

NativeWrapper

Webview mitIhrer JavaScript/

HTMLApp

NativmitXamarin

•C#+.NETFramework•GeteilterCodeübermehrerePlattformen•NativesUI•NativePerformance•100%dernativenAPIsimZugriff

Bild:©Xamarin

DieXamarin Platform

WasistdieXamarin Platform

• KommerziellesProduktderFirmaXamarin• ErlaubtdieEntwicklungfürAndroidundiOSmitC#

ArchitekturvonXamarin.Android

ArchitekturvonXamarin.iOS

• AppleerlaubtkeineLaufzeitumgebungenunteriOS• DeshalbwirdderC#QuellcodefürXamarin.iOS Ahead-Of-Time(AOT)kompiliert• à NativesARMBinaryfüriOS

Entwicklungswerkzeuge

XamarinStudioPCoder Mac

VisualStudioPluginVS2010undhöher

VisualStudio2015

ScreenshotderXamarin Preistabelle.ScreenshoterstelltvonAndréKrämer

ScreenshotderHomepagederXamarin StarterEdition.ScreenshoterstelltvonAndréKrämer

Systemanforderungen

• ZurAndroidEntwicklungreichteinWindowsPC• ZuriOSEntwicklungwirdeinMacbenötigt.• DieEntwicklungkanntrotzdemunterWindowsinVisualStudiostattfinden

iOSEntwicklungunterWindows

DemoXamarin

SourceCodeinKürzeunter

http://github.com/AndreKraemer

Dashabichmirgespart...

FazitXamarin

• C#kannfürallePlattformengenutztwerden• GeschäftslogikkannüberPortableClassLibrariesgeteiltwerden• FürdasUIistimklassischenAnsatzDetailwissenüberdiePlattform-APIserforderlich

Xamarin.Forms

DemoXamarin.Forms

FazitXamarin.Forms

• C#kannfürallePlattformengenutztwerden• GeschäftslogikkannüberPortableClassLibrariesgeteiltwerden• FürdasUIistimklassischenAnsatzDetailwissenüberdiePlattform-APIserforderlich

ApacheCordova

Cordova (Phonegap)

• QuelloffenesFrameworkderApacheFoundation• EntwicklungfürAndroid,iOS,WindowsPhone,FirefoxOS ...mitHTML/JavaScript• KeineJava/Objective-CKenntnisse• UrsprünglichPhonegap,späterCordova

Cordova Architektur

Cordova liefertkeinCSS!

UIFrameworks

• jQuery Mobile• DevXtreme (DevExpress)• KendoUI(Telerik)• Ignite UI(Infragistics)• Onsen (OpenSource)• Ionic (OpenSource)

Ionic

Cordova inVS2015

iOSKonfiguration(OSX)

Quelle:MSDN|https://msdn.microsoft.com/library/dn757054(v=vs.140).aspx#ios

iOSKonfiguration(VS2015)

DemoCordova mitIonic

FazitCorova /Ionic

• PlattformübergreifendeEntwicklungmitHTML/JSistmöglich• PerformanceaufmodernenGerätenkeinProblem• EinsatzeinesUIFrameworksistsinnvoll

Zusammenfassung

• VisualStudio2015unterstütztdieEntwicklungvonAppsfürAndroidundiOS.• AllenotwendigenWerkzeuge/SDKswerdendirektdurchdasVisualStudioSetupinstalliert.• ZusätzlichkommteinAndroidEmulatorvonMicrosoftmit• NebenderEntwicklungundderVerpackungvonAppswirdauchdasDebuggingermöglicht.• AlsEntwicklerhabeichdieWahl,obichliebermitC#undXAMLoderHTMLundJavaScriptarbeitenmöchte.

WelchesFrameworksollteicheinsetzen?

Entscheidungsfindung

• NichtnuraufBasisderProgrammierspracheentscheiden!• KeineveraltetenVorurteileungeprüftübernehmen!• Besser:StrukturierteEntscheidungsfindungaufBasiseinerKriterien- /Anforderungsliste

Kriterienliste?

• Verbreitung• Kosten• Support• NutzungvonC#oderJSBibliotheken• Zuverlässigkeit• ...•MehrabJanuar2016aufhttp://andrekraemer.de

Xamarin Crashkurs(Beispielfilme)

• https://www.video2brain.com/de/tutorial/installation-unter-windows-1

• https://www.video2brain.com/de/tutorial/android-emulator

• https://www.video2brain.com/de/tutorial/sqlite-hinzufuegen

Dochliebernativ?

http://andrekraemer.de/training/video-trainings/swift-fuer-c-entwickler

Homepage

[email protected] |http://andrekraemer.de|http://andrekraemer.de/blog |http://github.com/AndreKraemer

VielenDank!

Blog

Xing

Facebook

Twitter

Google+

50SämtlicheAbbildungwurdenordnungsgemäßbeiIStockPhoto oderfotolia lizensiert.

Fragen

?

Schulung,BeratungundEntwicklungmitdenSchwerpunkten:• CrossPlattformAppsmitXamarin &Cordova /Ionic• ASP.NETMVC/WebAPI&JavaScript/AngularJS• DatenzugriffmitdemEntityFramework• TeamFoundation Server/ALM• AutomatischeDokumentengenerierungmitTXText

Control• Performance- &MemoryAnalysen• Softwarearchitektur

MeineDienstleistungen

• Schulungen• ASP.NET• Xamarin• TXTextControl• InfragisticsNetAdvantage• TeamFoundation Server

• Consulting• DurchführungvonTechnologieworkshops• Code- /Architekturreviews• Analysevonmanaged MemoryLeaks• Prototypenentwicklung• RemoteEntwickler-Support• ProjektbegleitendesCoaching

• Softwareentwicklung• MobileApps(Windows8,WindowsPhone,Android,iOS)• EntwicklungvonWeb-AnwendungenmitASP.NETMVC,WebApi,AngularJS

51