Cross-Platform Mobile mit.net

Ähnliche Dokumente
Mobile Development in.net mit Xamarin

Mit Cloud Power werden Sie zum

Mobile App development mit Xamarin. Christian Hassa Andreas Willich TechTalk Software AG

Jörg Neumann Acando GmbH

Cross-Platform Mobile Development mit Xamarin Mark

Xamarin Applikationen Showcase aus der Praxis

Kerry W. Zühlke Engineering GmbH

ios, Android, WP7... Alle nativ auf einen Streich!

Zentrale Informatik. Cross-platform Apps. Andrea Grössbauer David Meier. 11/11/15 Lunchveranstaltungen HS16 - Crossplatform Apps 1

Romano Roth & Oliver Brack Zühlke Engineering AG

Cross-Plattform-App- Entwicklung mit Visual Studio 2017

Cross Platform Development Heute Windows, morgen Android, übermorgen Xbox

Fragen Arthur Zaczek. Apr 2015

Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap

Mobile Apps mit DSLs. und entfernter Codegenerierung. Codierst Du noch oder generierst Du schon? Powered by

Cross-Platform Entwicklung mit Xamarin: Erfahrungen eines Software-Ingenieurs

23. Januar, Zürich-Oerlikon

360.NET. Jan Schenk Developer Evangelist Web/Live Microsoft Deutschland

MOBILE ON POWER MACHEN SIE IHRE ANWENDUNGEN MOBIL?!

Walkabout: Location Based Services mit Android und dem Google Phone

Mobile Applications. Adrian Nägeli, CTO bitforge AG

Line-of-Business-Apps mit der Universal Windows Platform entwickeln. Thomas Claudius

MVVM in Windows 8 und Windows Phone 8

Aqcuisition Processing Distribution Exploit/View

Agenda. Native Cross- Platform- Entwicklung. Mobile Business Apps. App Demo Code Demo. Fazit. Architektur ALM

Ansätze der Entwicklung von Multiplattform-Anwendungen. M.Eng. Rafael Pisarczyk (FH Aachen)

Workshop 6 (ws6c) native Entwicklung für mobile Geräte

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, Java Forum Stuttgart 2007

Plattformunabhängige App-Entwicklung - Eine für alle?

Faktor-IPS. Modellgetriebene Softwareentwicklung mit Faktor-IPS. Faktor Zehn AG. Seite 1

Überblick. Allgemeines, Geschichtliches. Architektur. Oberfläche. Plugins und deren Einsatz

IPETRONIK TESTdrive SDK V02.00

Einführung in wxwidgets & wxdev-c++

Präsentation Von Laura Baake und Janina Schwemer

The app the crashes, before the breakpoint is reached: Code to the event:

Eine App, viele Plattformen

Naviki GPS-Anwendungsentwicklung für Mobiltelefone

Ein UI in zwei Welten - Controls in HTML5 und WPF. Timo Korinth

Von Windows-Forms zu WPF mit Expression Blend? Thomas Müller conplement AG Nürnberg

Workshop 6 (ws6c) native Entwicklung für mobile Geräte

Cross-Plattform Apps mit

IT-Development & Consulting. Quo Vadis Microsoft? Multiplattform-Entwicklung mit.net. Axel Eckenberger, it-people it-solutions

Skalierbare Enterprise Architekturen für Universal Windows Platform Apps

Design Patterns 2. Model-View-Controller in der Praxis

Embedded Computing Conference 2014 Embedded UI Qt5

Cross Platform Development mit SharePoint

Zend PHP Cloud Application Platform

3 Grundlagen. 3.1 Die erste App

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Der perfekte Einstieg in die Entwicklung

ASP: Active Server Pages

EPO Consulting GmbH. Ihr Partner für HTML5 und SAP UI5 Apps. Stand 2015/04. EPO Consulting GmbH - 1 -

A Domain Specific Language for Project Execution Models

Architekturen mobiler Multi Plattform Apps

Smartphone Entwicklung mit Android und Java

Visual Studio 2012 Windows 8 und.net 4.5. Hans Peter Bornhauser, Noser Engineering AG Fachbereichsleiter.NET, Digicomp AG

Spring Dynamic Modules for OSGi Service Platforms

Visual Studio 2015-Editionen im Vergleich

Implementierung eines Multi- Device Interfaces zur Zeiterfassung fur Microsoft Dynamics NAV

Apps in ArcGIS: Neuerungen. 18. Juni 2015

Technische Informationen. Fabasoft Cloud

Der Weg zur eigenen App

Reflection. Arthur Zaczek. Nov 2014

Auf dem Weg vertan. Über die Unsicherheit von App-basierten TAN-Verfahren im Onlinebanking. Vincent Haupert 28. Dezember 2015

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP)

Java: Vererbung. Teil 3: super()

GATE General Architecture for Text Engineering. Alexander Hein & Erik Dießler (VL Text Analytics )

WPF Steuerelemente Listbox, ComboBox, ListView,

Kurzfassung der Studienarbeit

Microsoft Visual Studio Community 2015

Das Internet ist mobil. John Riordan Bern, 17. Jan 2013

WLGauge: : Web Link Gauge to Measure the Quality of External WWW Links. Andreas Lübcke

App Entwicklung mit Hilfe von Phonegap. Web Advanced II - SS 2012 Jennifer Beckmann

Machen Sie mehr aus Ihrem CRM:

Inhaltsverzeichnis. TeiM. V E E.l E.2 E.3 E.4. Vorwort von Stefan Tilkov Einleitung Zielgruppe Über dieses Buch Konventionen Dank

Erste Erfahrungen mit Android

Übersicht. Eclipse Foundation. Eclipse Plugins & Projects. Eclipse Ganymede Simultaneous Release. Web Tools Platform Projekt. WSDL Editor.

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

MeteoCheck Relaunch mit Xamarin. Studienarbeit

4D Server v12 64-bit Version BETA VERSION

Model-View-ViewModel (MVVM)

Webapplikation aus dem MISTRA Bereich

LOAD TESTING 95% BRAUCHEN ES, 5 % MACHEN ES: LOAD TESTING MIT VS LEICHTGEMACHT NICO ORSCHEL MVP VS ALM, CONSULTANT

Die Alternative zum Web-Form Modell

Android-Testautomatisierung mit Robotium

.NET & OPENSOURCE. Andreas Willich

Mobile App Testing - Mit der richtigen Strategie zum Erfolg

Christian Immler. Der Crashkurs für Android, und Windows Phone. Mit 309 Abbildungen

ObjectBridge Java Edition

Virtueller Campus. Virtueller Campus Horw mit interaktiver Steuerung. HowTo: Externe Bibliotheken

Dokumentation zu Pocket NeuroNet

Ein mobiler Electronic Program Guide

Klausur GUI-Entwicklung WS10/11 1.Termin

Vom Prototypen zur Anwendung

How To: Wie entwickle ich mit SharpDevelop Anwendungen für die PocketPC-Platform

Java Entwicklung für Embedded Devices Best & Worst Practices!

Andreas Mösching Senior IT Architekt Hewlett-Packard (Schweiz) GmbH HP Banking Service Center Bern

Frühling für iphone-apps

Transkript:

Cross-Platform Mobile mit.net

Mobile Entwicklungslandschaft Nativ Crosscompiled Hybrid Web Beste Usability? Überschaubare Kosten?

Was ist Xamarin?

Was ist Xamarin? 2011 Gegründet aus dem Ximian, Novell und dem Mono-Projekt hervorgegangen wichtigste Produkte: Xamarin Platform, ein Cross-Compiler auf Basis von Mono Xamarin.Forms, eine plattformübergreifende XAML-basierte UI-Bibliothek Xamarin Test Cloud, eine Lösung für UI-Tests auf einer Vielzahl von Geräten Februar 2016 von Microsoft aufgekauft

Was ist Xamarin Platform? Cross-Compiler Wrapper-Libraries um native Bibliotheken Plattformen ios Android Mac OS X

Warum Xamarin Platform? Cross-Platform Gemeinsame Codebasis Eine moderne Sprache (C#) für alle Plattformen Nativ Performance User Interface API Wiederverwendung von Code und Know-How

Cross-compiling Kompilieren aus C# (oder F#) in nativen, plattformabhängigen Code (Fast) vollständiger Funktionsumfang von.net 4.6 und C# 6 Durch Integration von Teilen des Frameworks steigt die Paketgröße

Xamarin.iOS (früher MonoTouch) Ahead-of-time-Compiler direkt in ARM-Assembler-Code Keine dynamische Codegenerierung System.Reflection.Emit fehlt Keine Dynamic Language Runtime.NET C# AOT ios-api.app ARM binary läuft nativ Cross-Platform Mobile mit C# Kerry W. Lothrop 10. März 2016

Xamarin.Android (früher Mono for Android) IL (Intermediate Language) und Mono-Runtime werden auf das Gerät deployed Just-in-time compiler Mono-Runtime läuft parallel zur Dalvik-VM Ahead-of-time-Kompilierung als Option möglich.net C# Android-API kompilieren linken.apk IL + JIT läuft nativ Cross-Platform Mobile mit C# Kerry W. Lothrop 10. März 2016

Native Libraries verwenden Bindings unter ios und Android

Bindings ios Tool: Objective Sharpie Nacharbeit meist nötig.h.cs [BaseType(typeof(NSObject))] interface MyClass { // Method [Export("draw:atColumn:andRow:")] void Draw(string text, int column, int row); } // Property [Export("menuVisible")] bool MenuVisible { [Bind("isMenuVisible")] get; set; }

Bindings Android *.jar einfügen C# wird automatisch generiert (JNI) Transformationen müssen u.u. manuell ergänzt werden <metadata> <attr path="/api/package[@name='com.nostra13.universalimageloader.cache.memory.impl'] /class[@name='fifolimitedmemorycache'] /method[@name='removenext']" name="managedreturn"> Java.Lang.Object </attr> <attr path="/api/package[@name='com.nostra13.universalimageloader.core.imageaware'] /class[@name='imageviewaware'] /method[@name='getwrappedview']" name="managedreturn"> Android.Views.View </attr> </metadata>

Bindings C/C++ Aus Android und ios möglich public static class MyClass { [DllImport("myLib")] int Calculate(int onevalue, int anothervalue); }

Entwicklungsumgebung MacBook OS X Xcode (SDK, Simulatoren) Xamarin.iOS Windows 10 (VM) Visual Studio 2015 ReSharper Xamarin (ios & Android)

Code Sharing

Code Sharing Portable Class Libraries Sharing auf Binary-Ebene Eingeschränkter Funktionsumfang Nur andere PCLs als Referenzen

Code Sharing Shared Projects Sharing auf Code-Ebene Compiler-Direktiven möglich (#if)

Architektur

Architektur MVC View Model Controller

Architektur MVVM View ios View View Android View Windows Phone ViewModel data binding plattformunabhängig Model

MvvmCross

MvvmCross Projekt Open Source MVVM Framework Data Binding Dependency Injection Lokalisierung Navigation Messenger Portable Class Libraries Plugins NuGet NinjaCoder

MvvmCross Plattformen

MvvmCross Erweiterbarkeit View ios View Android View Windows Phone ViewModel interface IMvxPhoneCallTask { void MakePhoneCall( string name, string number); } ios-dienst plattformspezifischer Dienst Windows-Phone- Android-Dienst Model Dienst

MvvmCross Plugins

Demonstration

Was gibt es noch?

User Interface Xamarin.Forms Code-Sharing für den UI-Code XAML Native User-Interfaces Mischen von Xamarin.Forms und plattformspezifischen Views möglich <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:class="buttonxaml.buttonxamlpage"> <Button Text="Tap for click count!" Clicked="OnButtonClicked" /> </ContentPage>

User Interface Xamarin Inspector

User Interface Xamarin Test Cloud

Zusammenfassung

Mobile Entwicklungslandschaft Nativ Crosscompiled Hybrid Web Beste Usability? Überschaubare Kosten?

Zusammenfassung Cross-Platform für alle wichtigen Endgeräte ohne JavaScript Native Performance und Möglichkeiten Mit bekannten Tools mehr Plattformen erreichen Die jeweilige plattformspezifische UI-Technologie muss trotzdem erlernt werden. Ein breites Tooling unterstützt die Entwicklung

Fragen Kerry W. Lothrop kerry.lothrop.de @kwlothrop