Cross-Platform Mobile Platforms and Xamarin. Presented by Mir Majeed

Similar documents
Xamarin for C# Developers

Xamarin. MS (IT), 4 th Sem. HOD, Dept. Of IT, HOW DOES XAMARIN WORKS?

Steps to Set Up the Environment of Xamarin in Visual

Austin Mobile.NET Develops Group

Introduction to Mobile Development

ArcGIS Runtime SDK for.net Building Apps. Rex Hansen

04 Sharing Code Between Windows 8 and Windows Phone 8 in Visual Studio. Ben Riga

Index. Alessandro Del Sole 2017 A. Del Sole, Beginning Visual Studio for Mac,

Visual Basic.NET for Xamarin using Portable Class Libraries

Android PC Splash Brothers Design Specifications

MS_40541 Build Native Cross-Platform Mobile Apps with a Shared C# Business Logic for ios, Android, and UWP in C#.NET with Xamarin and Visual Studio

Workloads tab: - Select Mobile development with.net. Individual components tab - Select Xamarin

ArcGIS Runtime SDK for.net: Building Xamarin Apps. Rich Zwaap Thad Tilton

Azure Mobile Apps and Xamarin: From zero to hero. Nasos Loukas Mobile Team KYON

Prism Composite Application Guidance

Xamarin Mobile Application Development Cross Platform C And Xamarin Forms Fundamentals

[ :25:55.588] [Info] Installation ID: 04cdabde-1d90-49ee-9df5-7daeed7f6d51 [ :25:55.594] [Info] Operating system: Mac OS X

Open Source Library Developer & IT Pro

Prism Composite Application Guidance

Xamarin Mobile Application Development: Cross-Platform C# And Xamarin.Forms Fundamentals By Dan Hermes READ ONLINE

Mobile Development Updates From #MSBuild 2017 &.NET Standard (& What It Means For You) Andrew Birch

ArcGIS Runtime: Building Cross-Platform Apps. Mike Branscomb Michael Tims Tyler Schiewe

Adapting Chronotron Speed Changer to Windows Phone 8.1

XAMARIN Application Development - Workshop

Configuring and Customizing the ArcGIS Viewer for Silverlight. Katy Dalton

Take Your Team Mobile with Xamarin

Building Loosely Coupled XAML Client Apps with Prism

MICROSOFT VISUAL STUDIO 2010 Overview

Implementing MVVM in Real World ArcGIS Server Silverlight Applications. Brandon Copeland LJA Engineering, Inc.

Introduction to Xamarin Cross Platform Mobile App Development

For your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents at a Glance links to

Test Your XAML-based Windows Store Apps with Visual Studio 2013 Benjamin Day

Agenda. Overview of Xamarin and Xamarin.Android Xamarin.Android fundamentals Creating a detail screen

Xamarin Mobile Development For Android Cookbook

Gauge Chart Components Html5 Javascript Libraries

Manual Visual Studio 2010 Web Developer Tools Offline

.NET Core 2.1 and beyond: what s the fuzz all about?

ArcGIS Runtime SDK for.net Building Apps. Antti Kajanus David Cardella

Android Essentials with Java

Portable Class Libraries ---

Developing Data Access Solutions with Microsoft Visual Studio 2010

Build Testable Client and Service Applications

Build Cross Platform Video Chat Apps With Xamarin

ArcGIS Runtime: Building Cross-Platform Apps. Rex Hansen Mark Baird Michael Tims Morten Nielsen

CHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application

ANDROID SDK. Developers Guide

Building a mobile enterprise application with Xamarin.Forms, Docker, MVVM and.net Core. Gill

Practical WPF. Learn by Working Professionals

INSANE NOTIFICATIONS AN EASY WAY TO HANDLE PUSH NOTIFICATIONS WITH XAMARIN

Arjen de Blok. Senior Technical Consultant bij ICT Groep ( sinds 1995 Programmeren sinds 1990 Technologiën. Links

Modern App Architecture

Connect and Transform Your Digital Business with IBM

ArcGIS Viewer for Silverlight Advanced Topics

Link-OS SDK for Xamarin README

SAURASHTRA UNIVERSITY

Multi-platform Mobile App. Development with Apache Cordova

Building Extensible XAML Client Apps

Windows Presentation Foundation (WPF)

Composite Application Guidance for WPF and Silverlight (AKA Prism 2 )

Open the solution in Xamarin Studio. Notice that the Xamarin project already has the Xamarin Test Cloud Agent installed via NuGet.

AR.04 Composite Application Guidance for WPF (aka Prism ) Brian Noyes IDesign Inc (

An Introduction to Software Architecture By David Garlan & Mary Shaw 94

User Guide. Android x86 Modified System. Sponsor: Huan Ren. Compiled by: Zachary Bair, Taronish Daruwalla, Joshua Duong, and Anthony Nguyen

Chris Key. Senior Consultant. Open Circle Solutions

Data-Driven Services With Silverlight 2: Data Access And Web Services For Rich Internet Applications By John Papa

1 Software Architecture

Blissful Separation of Concerns with Model-View-ViewModel (MVVM)

WPF and MVVM Study Guides

Visual Studio 2015: Windows Presentation Foundation (using VB.NET Language) Training Course Outline

Developing Sopima Cross-platform Mobile Application With Xamarin. Svetlana Borisenkova

Super Powered Dynamo. Dynamo Extensions - with great power comes great responsibility - uncle ben

Razvoj multiplatformskih mobilnih aplikacija sa Xamarin Forms. Andrej Radinger, MVP, Mobendo

--Microsoft-- --Windows Phone--

Build Better WPF & Silverlight applications using Prism v2

Xamarin Profile. Service offering evaluation and user rating October 2013

P a g e 1. Danish Technological Institute. Scripting and Web Languages Online Course k Scripting and Web Languages

"Charting the Course... MOC A Developing Data Access Solutions with Microsoft Visual Studio Course Summary

Adapting JDT to the Cloud. Alex Boyko Pivotal Jay Arthanareeswaran - IBM John Arthorne - IBM

Mobile Development A Whirlwind Tour!

Xamarin Crossplatform Application Development By Jonathan Peppers READ ONLINE

Cloud-Native Applications. Copyright 2017 Pivotal Software, Inc. All rights Reserved. Version 1.0

Interactive webmaps with ArcGIS. Kristel Meikas, AlphaGIS

ArcGIS Pro Extensibility - Building and Deploying Addins with the new DotNet SDK

Tizen.NET. Transition of Tizen Developer Environment. Samsung Electronics S/W Center Sung-Jae Lee, Seungkeun Lee

Chris Ainsley. Clean configuration - The foundation of clean code

Zend PHP Cloud Application Platform

XAMARIN MOBILE APPLICATION PDF

White Paper. Model-View Architecture for Test Automation. Author Naman Singhal 24 October 2013

Application Architectures, Design Patterns

Programming in C# for Experienced Programmers

DEVELOPING WEB APPLICATIONS WITH MICROSOFT VISUAL STUDIO Course: 10264A; Duration: 5 Days; Instructor-led

Bootcamp Curriculum. Mobile Application Development - 7 Weeks. Training Curriculum. Mobile Application Development Curriculum 1. Cross Platform Design

The Next Generation of Eclipse: e4. Mike Milinkovich Executive Director Eclipse Foundation

Android Validation Xml Against Schema Visual Studio 2010

Advance Mobile& Web Application development using Angular and Native Script

A Separation of Concerns Clean Architecture on Android

Implementation of F# language support in JetBrains Rider IDE

Consuming Office 365 REST API. Paolo Pialorsi PiaSys.com

Demystifying.NET Standard and.net Core. Presented by Steve Ives

Service-Oriented Architecture (SOA)

Transcription:

Cross-Platform Mobile Platforms and Xamarin Presented by Mir Majeed

Agenda 1. Sharing Code Among Different Platforms File-Linking into each App Project Portable Class Libraries 2. Solution Population Strategies 3. Cross-Platform Mobile Development Frameworks 1. MvvmCross 2. MonoCross

The Silo d Approach: Build Apps Multiple Times

File-Linking into each App Project The simplest approach to sharing code files is to place them in a separate directory (ie. outside of your various mobile application projects) and use file-linking to include them.

File-Linking into each App Project

File-Linking into each App Project Benefits Allows you to share code across multiple projects. Shared code can be branched based on the platform using compiler directives (eg. using #if ANDROID, as discussed in the Building Cross Platform Applications document). Application projects can include platform-specific references that the shared code can utilize (such as using Community.CsharpSqlite.WP7 in the Tasky and MWC samples). Disadvantages In Visual Studio there is no simple way to add an entire filesystem tree to a project, so files must be individually added. The directory hierarchy must also be manually created. If you add, delete or move a file in one project you must remember to perform the same action in all the other project files.

File-Linking into each App Project Refactoring will only work within one platform type. Empty subdirectories must also exist before you can link files contained within a subdirectory. If you forget to choose Add As Link (in Visual Studio), it will copy the file into your target project instead of linking. If you don t notice this has occurred you could accidentally edit both the original file and the copy, getting them out-of-sync.

Portable Class Libraries (PCL) A Portable Class Library (PCL) is a special type of project that can be used across Different CLI platforms such as Xamarin.iOS and Xamarin.Android, as well as Silverlight, WPF, Windows Phone and Xbox. The library can only utilize a subset of the complete.net framework, limited by the platforms being targeted.

Portable Class Libraries (PCL) The Xamarin column reflects the fact that Xamarin.iOS and Xamarin.Android supports all the profiles shipped with Visual Studio 2013, and the availability of features in any libraries you create will only be limited by the other platforms you choose to support (such as Windows Phone or Windows Store). This includes profiles that are combinations of:.net 4 or.net 4.5 Silverlight 5 Windows Phone 8 Windows Store Apps

Portable Class Libraries (PCL)

Portable Class Libraries (PCL) Benefits Centralized code sharing write and test code in a single project that can be consumed by other libraries or applications. Refactoring operations will affect all code loaded in the solution (the Portable Class Library and the platform-specific projects). The PCL Project itself, or the output assembly can be shared. Disadvantages Because the same Portable Class Library is shared between multiple applications, platform-specific libraries cannot be referenced (eg. Community.CsharpSqlite.WP7). The Portable Class Library subset may not include classes that would otherwise be available in both MonoTouch and Mono for Android (such as DllImport or System.IO.File).

Solution Population Strategies Two Project Types: Core project Write re-usable code in one place, to be shared across different platforms. Use the principles of encapsulation to hide implementation details wherever possible. Platform-specific application projects Consume the re-usable code with as little coupling as possible. Platform-specific features are added at this level, built on components exposed in the Core project.

Solution Population Strategies Structure of Core Project Shared projects should implement as much non-ui functionality as is possible, which generally includes the following layers: Data Layer Code that takes care of physical data or even XML files. The data layer classes are normally only used by the data access layer. Data Access Layer Defines an API that supports the required data operations for the application s functionality, such as methods to access lists of data, individual data items and also Service Access Layer An optional layer to provide cloud services to the application. Contains code that accesses remote network resources (web services, image downloads, etc) and possibly caching of the results. Business Layer Definition of the Model classes and the Façade or Manager classes that expose functionality to the platform-specific applications.

Solution Population Strategies Structure of Platform-Specific Application Projects Platform-specific projects must reference the assemblies required to bind to each platform s SDK (Xamarin.iOS, Xamarin.Android or Windows Phone) as well as the Core shared code project. Application Layer Platform specific functionality and binding/conversion between the Business Layer objects and the user interface. User Interface Layer Screens, custom user-interface controls, presentation of validation logic.

Solution Population Strategies

MvvmCross

About MvvmCross Fork of the MonoCross project Started by Stuart Lodge Moved from MVC and towards MVVM It is an extension project from http://www.cirrious.com

MvvmCross Manifesto Portability Use Portable Class Libraries for as much of your code as you possibly can - viewmodel, model, service and even view. Interface Driven Development Use Dependency Injection, Inversion of Control and Plugins to get your applications richly and robustly to market on all of your target platforms. Code for Test Use interfaces; develop small, cohesive, loosely coupled components. Mvvm Use architectural patterns - especially Model-View-ViewModel with Data-Binding. Native UIs users love Native, and you should give them Native UIs that delight, that provide rich functionality and that are styled to fit naturally in the context of your users devices.

Supported Platforms Windows Phone 7 and Windows Phone 8 Windows Presentation Foundation Windows Store Xamarin.Android Xamarin.iOS Xamarin.Mac

Parts of MvvmCross Application Core Project containing all the ViewModels, Services, Models and 'business' code. UI Project(s) per platform containing the Views and platform specific code for interacting with the Core Project.

Key MvvmCross Objects Core Project an App object - responsible for starting your ViewModels and your business logic a Start object - responsible for deciding the first ViewModel or ViewModels which should be presented one or more ViewModels - each one responsible for a piece of user interaction Services and Models

Key MvvmCross Objects UI Project The native Application object - responsible for native lifecycle events - on each platform this object is a platform-specific class MvvmCross Setup class - responsible for 'bootstrapping' MvvmCross, Core and UI Projects One or more Views - each one responsible for presenting one of your ViewModels Custom UI code - for controls, gestures, events, etc.

MonoCross

About MonoCross MonoCross is an open source cross-platform mobile framework using C#.NET and the Mono framework. It is based on Model-View-Controller (MVC) Pattern enables cross-platform portability of business logic and data access code, (Model + Controller), while supporting full, native and/or platform-specific presentation (Views).

MonoCross Solution Structure It consists of the MonoCross framework, a shared application, and one or more container projects. The core application logic is contained in shared application which is referenced by multiple class library assembly projects. This project structure enables code files to be compiled to the appropriate platform.