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

Similar documents
Introduction to Mobile Development

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

Steps to Set Up the Environment of Xamarin in Visual

Introduction to Xamarin Cross Platform Mobile App Development

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

Xamarin for C# Developers

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

Miguel de Icaza A Genius Free Software Evangelist. Cristhian Figueroa PhD Student Ingegneria Informatica e dei Sistemi Politecnico di Torino 2013

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on

Developing Applications for ios

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

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

Lecture 1 Introduction to Android. App Development for Mobile Devices. App Development for Mobile Devices. Announcement.

Xamarin Mobile Development For Android Cookbook

Xamarin Profile. Service offering evaluation and user rating October 2013

Copyright

CHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edition

Xamarin Mobile Application Development Cross Platform C And Xamarin Forms Fundamentals

Operating System Services. User Services. System Operation Services. User Operating System Interface - CLI. A View of Operating System Services

Chapter 2. Operating-System Structures

The Slide does not contain all the information and cannot be treated as a study material for Operating System. Please refer the text book for exams.

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

XAMARIN Application Development - Workshop

OpenWells Cross-Platform Mobile Application

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

Efficiency of Java Code for Mobile Application Development

What are some common categories of system calls? What are common ways of structuring an OS? What are the principles behind OS design and

Chapter 2: System Structures

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

Mitchell Bosecke, Greg Burlet, David Dietrich, Peter Lorimer, Robin Miller

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

A NET Refresher

Xcode and Swift CS 4720 Mobile Application Development

Copyright

Android PC Splash Brothers Design Specifications

What is a VM? Categories of Virtual Machines. Process Virtual Machine 11/17/2010

Android App Development

Software Concepts. It is a translator that converts high level language to machine level language.

Element: Relations: Topology: no constraints.

17655: Discussion: The New z/os Interface for the Touch Generation

Copyright

Austin Mobile.NET Develops Group

CS260 Intro to Java & Android 04.Android Intro

COLLEGE OF ENGINEERING, NASHIK-4

Chapter 2: System Structures. Operating System Concepts 9 th Edition

Copyright

CHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application

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

Take Your Team Mobile with Xamarin

Four Components of a Computer System

Android Overview. Francesco Mercaldo, PhD

SAURASHTRA UNIVERSITY

ANDROID SDK. Developers Guide

ArcGIS Runtime SDK for.net Building Apps. Rex Hansen

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

Chapter 4: Threads. Chapter 4: Threads. Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

Mobile Development With C#: Building Native IOS, Android, And Windows Phone Applications By Greg Shackles READ ONLINE

LEGACY SYSTEMS MODERNIZATION SERVICES.

Cross-platform UI Development With Xamarin.Forms PDF

An overview of mobile and embedded platforms

Ios Sdk Documentation For Windows 7 32 Bit Full Version

Data Management CS 4720 Mobile Application Development

Integrated Software Environment. Part 2

ios Application Development Course Details

CPS221 Lecture: Operating System Functions

Android. Lesson 1. Introduction. Android Developer Fundamentals. Android Developer Fundamentals. to Android 1

Copyright

WebSphere Puts Business In Motion. Put People In Motion With Mobile Apps

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

Classification and Selection of Cross-Platform Tools. Michiel Willocx 17/06/2015

IJRDTM Kailash ISBN No Vol.17 Issue

Visual Basic.NET for Xamarin using Portable Class Libraries

CPS221 Lecture: Operating System Functions

Energy efficient data synchronization in mobile applications

Chapter 2: Operating-System Structures

PREVIEW EDITION This excerpt provides early content from a book currently in development and is still in draft format. See additional notice below.

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on

OPERATING SYSTEM. Chapter 4: Threads

EI 338: Computer Systems Engineering (Operating Systems & Computer Architecture)

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

Uninstall A Apps Windows 8 Programming Using Microsoft Visual C++

Etanova Enterprise Solutions

TDDI04, K. Arvidsson, IDA, Linköpings universitet Operating System Structures. Operating System Structures Overview. Operating System Services

Mobile Development With C#: Building Native IOS, Android, And Windows Phone Applications By Greg Shackles READ ONLINE

Another difference is that the kernel includes only the suspend to memory mechanism, and not the suspend to hard disk, which is used on PCs.

Mobile Internet Devices and the Cloud

EEE 435 Principles of Operating Systems

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

Introduction to Java. Lecture 1 COP 3252 Summer May 16, 2017

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

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

Walkthrough: Binding an ios Objective-C Library

Multi-platform Mobile App. Development with Apache Cordova

Operating System: Chap2 OS Structure. National Tsing-Hua University 2016, Fall Semester

Android In Industrial Applications. A Field Report

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING QUESTION BANK M.E III SEM CSE MOBILE APPLICATION DEVELOPMENT UNIT -I INTRODUCTION

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

Transcription:

Xamarin Mandanna B J MS (IT), 4 th Sem Jain University, Bangalore Dr. Suchitra R HOD, Dept. Of IT, Jain University Bangalore Abstract:- It is a technology that brings.net/c# to Android, IOS as well as Windows to. This technology can be used to produce true android and IOS apps at the same time. The main advantage of using this technology is it allows developers to code application logic once and then it can be shared across both IOS and Android. Compared to the native application development Xamarin definitely reduces development time. INTRODUCTION: When thinking of building an IOS or Android application, many developers think of native languages. However since few years, a new technology has emerged called Xamarin. This is a unique technology offers a single language c#, class library and runtime that runs across different platforms. Each platform has different features and it differs on its ability to develop native applications that is the application will match down to native code and also adjusts with the underlying java subsystem. In simple it is a technology which will save a lot of time for the developers of the application. Unlike the native language coding the developers need not have to write different codes for different platforms, Xamarin lets the developers to develop the code once at a time for all the different platforms and thus saves a lot of time. Xamarin is unique, it includes the essence of native platforms and adds a number of powerful features of its own. 1. Binding with SDKs: It includes bindings for almost all underlying platform SDKs in both ios and android. These bindings are will help in easy navigation and use, and provide robust compile-time type checking during development. 2. Interoperability: Xamarin facilitates for directly invoking objective-c, Java, C and C++ libraries and also enables the developers to use wide variety of 3 rd party code that has already been developed. 3. New language constructs: Xamarin applications are developed using c#,a new language that contains massive improvements over objective-c and java. 4. Integrated development environment: We can make use of modern IDE for the development of this application HOW DOES XAMARIN WORKS? Xamarin provides two different products: Xamarin.Ios and Xamarin. Android, these two are placed on top of Mono, it is a version of.net framework. Mono has been almost as long as the.net framework itself, and runs almost on every platform including Linux, Unix and Mac OS X. Xamarin uses runtime that automatically handles things such as memory allocation, garbage collection, underlying platform interoperability, etc. Xamarin applications are built using a subset of the.net Base class libraries known as Xamarin Mobile Profile. This technology has been created for mobile applications and placed in the MonoTouch.dll and in Mono.Android.dll. ARCHITECTURE Xamarin.Android applications run using the Mono execution environment. This execution environment runs with the Android Runtime (ART) virtual machine. The Mono runtime is written in the C language. Both runtime environments run on the Linux kernel and will be visible to various APIs to the user code that allows developers to access the underlying system. To access the Linux operating system facilities, We can make use of different.net class libraries such as System,System.IO,System.Net

SCOPE OF XAMARIN SERVICE OFFERING Xamarin is a Cross Platform Tool that allows developers to develop native and web app publishing on a large range of mobile and non-mobile platforms. The description of the service offering is structured into 4 areas: Device class and platform support and feature availability The number of supported device classes and platforms is an indicator for the multiplatform capability of a Cross platform(cp) Tool. The variety of offered features determines the scope of options when creating an app and it critically affects the app user experience. Target user groups and industries Some CP Tools have a focus on specific industries. Beyond an industrial focus, CP Tools can target different user types according to company size or user profession. Estimation of familiarization and development time One of the major claims of CP Tools is to accelerate the app creation process. The lower the complexity of a CP Tool, the faster a new user will be able to handle the tool and start his app project. Support service offerings A good documentation and support can be a clear benefit of a CP Tool. CP Tools offer different support channels. The quality of the service provided, is a key differentiation factor. A single language for all platforms Since past three years of existence, Xamarin focused mainly on compiler technologies and three basic sets of.net libraries: Xamarin.Mac, which was obtained from MonoMac project. Xamarin.iOS, which obtained from MonoTouch. Xamarin.Android, which obtained from Mono for Android.. These libraries are known as the Xamarin platform. The libraries includes the.net versions of native Mac, IOS, and Android APIs. Developers using these libraries can develop applications in C# to target the native APIs of these three platforms, but also with access to the.net Framework class library. Developers can use Visual Studio to build Xamarin applications, targeting ios and Android as well as all the various Windows platforms. However, iphone and ipad development also requires a Mac connected to the PC through a local network. This Mac must have Xcode installed as well as Xamarin Studio, an OS X based integrated development environment that lets the developer to develop iphone, ipad, Mac OS X, and Android applications on the Mac. SHARING CODE The use of addressing multiple platforms with a single programming language comes from the ability to share code among the different applications. Before code is shared, an application must be planned for that purpose. Particularly since the popular use of graphical user interfaces, developers have understood the effect of separating application code into functional layers. The most useful division is between user-interface code and the data models and algorithms. The popular MVC (Model- View-Controller) application architecture translates this code separation into a Model (underlying data), the View (visual representation of the data), and Controller (which takes input from the user). MVC started in the 1980s.The MVVM (Model-View- ViewModel) architecture has effectively renovated MVC based on modern GUIs. MVVM separates the code into the Model (underlying data), the View (user interface, including visuals and input), and the ViewModel (which manages data transfer between the Model and the View). When a developer develops an application that concentrates on multiple mobile platforms, the MVVM architecture helps the developer into separating code into the platform-dependent View the code that requires interacting with the platform APIs and the platformindependent Model and ViewModel. Generally this platform-independent code needs to access files or the network or use collections or threading. Typically these jobs would be considered part of an operating system API, but they are also jobs that can make use of the.net Framework class library, and if.net is available on each platform, then this code is adequately platform independent. The part of the application developed which is platform independent and in the context of Visual Studio or Xamarin Studio put into a separate project. This can be a Shared Asset Project (SAP) which simply consists of code and other asset files accessible from other projects or a Portable Class Library (PCL), which includes all the common code in a dynamic-link library (DLL) that can be referenced from other projects. This common code has access to the.net Framework class library, so that it can perform file I/O, handle access web services globalization, decompose XML,etc. This means that the developer can create a single Visual Studio solution that includes four C# projects to target the three different mobile platforms or the developer can use Xamarin Studio to develop applications for iphone and Android devices. The following diagram describes the interrelationships between the Visual Studio or Xamarin Studio projects, the platform APIs and the Xamarin libraries. The third column refers to any.net-based Windows Platform regardless of the device:

Visual Studio. The PC and Mac must be connected via a network (such as Wi-Fi). Visual Studio communicates with the Mac through a Secure Shell (SSH) interface, and uses the Mac to build the application and run the program on a device or simulator. Developer can also do Android programming in Xamarin Studio on the Mac or in Visual Studio on the PC. If developer wants to target the Windows platforms, he will need Visual Studio 2015. He can target all the platforms in a single IDE by running Visual Studio 2015 on a PC connected to the Mac via a network. Another option is to run Visual Studio in a virtual machine on the Mac. DEVICES AND EMULATORS The boxes in the second row are the actual platformspecific applications. These apps make calls into the common project and also (with the iphone and Android) the Xamarin libraries that implement the native platform APIs. In the above diagram, the Xamarin.iOS and Xamarin.Android libraries seem to be most significant, and while they are important, they re mostly just language bindings and they do not significantly add any overhead to API calls. When the ios app is developed, the Xamarin C# compiler produces C# Intermediate Language (IL), but then it makes use of the Apple compiler on the Mac to generate native ios machine code just like the Objective-C compiler. The calls from the app to the ios APIs are the same as though the application were written in Objective- C. For the Android app, the Xamarin C# compiler generates IL, which runs on a version of Mono on the device alongside the Java engine, but the API calls from the app are pretty much the same as though the app were written in Java. For mobile applications that have very platformspecific needs, but also a potentially shareable chunk of platform-independent code, Xamarin.iOS and Xamarin.Android provide excellent solutions. Developers have access to the entire platform API, with all the power (and responsibility) that implies. MACHINES AND IDES If the developers want to target the iphone, he will need a Mac. Apple requires that a Mac be used for building iphone and other ios applications. Developer need to install Xcode on this machine and, of course, the Xamarin platform that includes the necessary libraries and Xamarin Studio. He can then use Xamarin Studio and Xamarin.Forms on the Mac for his iphone development. Once developer has a Mac with Xcode and the Xamarin platform installed, developer can also install the Xamarin on a PC and program for the iphone by using Developers can test his programs on real phones connected to the machines via a USB cable, or developer can test his programs with onscreen emulators such as Xamarin android players etc. There are advantages and disadvantages to each approach. Emulator allows developers to see how his application adapts to a variety of sizes and form factors. The iphone and ipad emulators run on the Mac. However, developer needs to use the mouse or track pad to simulate touch. The touch gestures on the Mac touchpad do not translate to the emulator. Developers can also connect a real iphone to the Mac, but he will need to provision it as a developer device. Historically, Android emulators supplied by Google have tended to be slow and cranky, although they are often extremely adaptable in emulating number of actual Android devices. Fortunately, Visual Studio now has its own Android emulator that works rather better. It s also very easy to connect a real Android phone to either a Mac or PC for testing. All he really need do is enable USB Debugging on the device. The Windows Phone emulators are capable of several different screen resolutions and also tend to run fairly smoothly. If developer runs the Windows Phone emulator on a touchscreen, developer can use touch on the emulator screen. Connecting a real Windows Phone to the PC is fairly easy but requires enabling the phone in the Settings section for developing. CONCLUSION A new technology which emerged in the year 2011 for the purpose of developing application, saved a lot of time for the developer because of its unique feature of cross platform, the developers need not had to waste his time coding the same application for different platforms like the native languages. One disadvantage of this technology is it has only fewer numbers of controls, so it is difficult for the user to include different controls in his application, he has to include controls from third parties. It let the developers develop applications in a greater ease, the feature of cross platform helped the developers to code once at a time for all the different platforms and thus saved a lot of time.

REFERENCES [1] Charles petzold, Creating Mobile apps with Xamarin.forms [2] https://en.wikipedia.org/wiki/xamarin [3] https://developer.xamarin.com/guides/android/under_the_hood /architecture/ [4] Research to guidance Xamarin profile [5] https://forums.xamarin.com/