Building Windows phone, iOS and Android apps with C# Jaime Rodriguez Principal Evangelist, Microsoft.

Slides:



Advertisements
Similar presentations
By Hector Luciano Jr.  About BlumShapiro  Introduction  Today’s Cross Platform Mobile Dev Landscape  Intro into Xamarin  Demo C# IPhone App SharePoint/Office.
Advertisements

Native iOS, Android and Windows Development Microsoft | Xamarin.
Amanda Silver Director of Program Management Visual Studio Tools for Client Applications Cross-Platform Development using Visual Studio.
CROSS PLATFORM DEVELOPMENT WITH MVVM CROSS By Ken Tucker.
Every company is a software company “CIOs will measure the impact of their business technology agenda based on the impact on the consumer – and not.
James Montemagno Developer Evangelist, Xamarin Developing Native iOS, Android, and Windows Apps in C# with Xamarin.
Jaime Rodriguez Eric Jeffers Sean McCune. Today’s instructors Jaime Principal Evangelist, Microsoft Eric Jeffers Developer/Instructor,
Microsoft Evangelist Presentation September 13, 2012.
The PhoneGap History Doncho Minkov Telerik Academy academy.telerik.com Technical Trainer
Mobile Development with Xamarin Mark Allan Ranyart
James Montemagno Developer Evangelist, Xamarin Developing Native iOS, Android, & Windows Apps with C#, Xamarin, and Visual Studio 2015.
Introducing Xamarin 2.0 Introducing Xamarin 2.0 Michael Hutchinson
Mobile Programming Lecture 1 Getting Started. Today's Agenda About the Eclipse IDE Hello, World! Project Android Project Structure Intro to Activities,
Title slide to be used at the start of a module. Developing Mobile Apps Roland Guijt
Developing Mobile Applications using MVVM with Xamarin Forms
Introduction to Silverlight. Slide 2 What is Silverlight? It’s part of a Microsoft Web platform called Rich Internet Applications (RIA) There is a service.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Introduction to Mobile Programming. Slide 2 Overview Fundamentally, it all works the same way You get the SDK for the device (Droid, Windows, Apple) You.
Windows Windows Phone Azure … and WakeUpAndCode.com.
Developing Cross-Platform Applications with Visual Studio 2015
Developer TECH REFRESH 15 Junho 2015 #pttechrefres h Strategies for Developing Cross-Platform Applications Dinis Vieira.
Developing Native iOS, Android, and Windows apps in C# with Xamarin
Developing Enterprise Mobile Apps with Xamarin Loren Horsager CEO, Mobile Composer.
Understanding Xamarin Development Matt
ASP.NET &.NET Environment. Overview Part of Microsoft’s.NET environment Used for Development of  Websites  Internet applications  Web Services & XML.
Microsoft UI Stack Ronnie Saurenmann Technical Evangelist, Microsoft Switzerland
A Lap Around Windows Presentation Foundation. Why hasn’t UX taken off in software? It’s Difficult! Animation 2D 3D Documents Styled Controls Video Windows.
JAVASCRIPT WITH A VIEW Jordan Knight Solution Architect Xamling SESSION CODE: WEB305 (c) 2011 Microsoft. All rights reserved.
Trunica Inc. 500 East Kennedy Blvd #300 Tampa, FL Cross Platform Mobile Apps With Cordova and Visual Studio 2015 © Copyright 2015.
The way of hybrid mobile development Hybrid Mobile Applications Telerik Software Academy
| Basel Visual Studio 2013 and Internet Explorer 11 Tips & Tricks For Developers Sascha Corti Technical Evangelist, Microsoft Switzerland
Alec Tucker An Introduction to Cross Platform Native App Development using Xamarin to Develop, Test and Monitor MOB227.
Visual Studio 2013 and Internet Explorer 11 Tips & Tricks for Developers Sascha Corti Technical Evangelist, Microsoft Switzerland
Android Alert Dialog. Alert Dialog Place Button to open the dialog. public class MainActivity extends ActionBarActivity { private static Button button_sbm;
The Windows 10 App platform: an introduction to the UWP Andy Wigley b:
Best 5 Mobile App Development Tools for Developer's to think beyond the Limitation.
丁建文 國立高雄應用科大資管系副教授 兼任計網中心軟體發展組組長 跨平台行動應用軟體開發技術 : HTML5 & Mobile JavaScript Framework 暨南大學.
INTRODUCING HYBRID APP KAU with MICT PARK IT COMPANIES Supported by KOICA
Understanding the Xamarin Mobile Platform
Xamarin Android Hands On. Hands-On: Xamarin Android Ziele – Kennenlernen von Xamarin Android – Native UI –
Your Host & Speaker Shahed Chowdhuri Sr. Technical Microsoft Technology Areas Enterprise Web/Software Development Game Development Mobile.
Build Cross-Platform Mobile Apps Using Visual Studio A Telerik webinar by Jeffrey T. Fritz March 27, 2014 AND.
Whats New Xamarin and VC++ with VS 2017
Cross-platform app development
12/29/2017 2:33 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Microsoft /26/ :19 PM BRK3114 Create cross-platform mobile apps with Xamarin that connect to Office Services (BRK3114) Fabian G. Williams Sr.
Beginning of Xamarin for iOS development
Introduction to Xamarin C# Everywhere
Cross Platform Development with Xamarin & Visual Studio 2013
The Xamarin Promise - Realized
Xamarin Studio Xamarin Curriculum for Xamarin Studio
What can Visual Studio do for Mobile Dev?
6/2/2018 4:08 AM BRK3327 Ten things you didn't know about building .NET UWP apps in Visual Studio 2017 Daniel Jacobson Program Manager – Visual Studio.
Microsoft Build /23/ :01 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
Apache Cordova Overview
Session : Xamarin Forms Rich UI Controls
Hybrid Mobile Applications
Introduction to Silverlight
Microsoft Connect /19/2018 7:55 PM
Introduction to Xamarin C# Everywhere
Sviluppo mobile con Visual Studio OnLine
Microsoft Ignite /14/ :21 AM BRK2101
Microsoft Build /17/2018 2:10 PM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
Cross Platform Development with Xamarin & Visual Studio 2013
.NET and .NET Core Foot View of .NET Pan Wuming 2017.
Office 365 Development.
What?   Accounts Accounts subscription Azure Pass Code Azure Pass Code.
Office 365 Development.
A very brief introduction
Running C# in the browser
Presentation transcript:

Building Windows phone, iOS and Android apps with C# Jaime Rodriguez Principal Evangelist, Microsoft

About me Why this talk…. 90s Today Primitive s Productivit y UX Mobile Disclaimer

About me Why this talk…. 90s Today Primitive s Productivit y UX Mobile Disclaimer I do not work for Xamarin Opinions are my own, not those of my day-job employer This space evolves very fast

Mobile Explosion Consumers are already mobile-first Business users are increasingly demanding mobile scenarios

How? #1 – Web Build a Mobile Website

How? #2 – Hybrid Web Put a Web App In the Store Native App Mobile Website

How? #3 – Cloned Native Build App Multiple Times

How? #4 – Shared Native Shared UI Code Build Natively and Share Code

With Visual Studio you can … Use a single development environment to target all devices Leverage your skills in your preferred language, C# or JavaScript Get the best developer experience for editing, building and debugging your applications

Why Native? Xamarin apps look and feel native because they are native Native User InterfacesNative API AccessNative Performance

Start with C# and BCL

… add Windows APIs 100% coverage

… or iOS APIs 100% coverage

… or Android APIs 100% coverage

demo Xamarin Development with Visual Studio

@implementation MSViewController - (void)viewDidLoad { [super viewDidLoad]; } - (IBAction)OnButtonDown:(id)sender { UIAlertView* view = [[UIAlertView alloc]init]; [view World"]; [view are you?”]; [view [view show]; public partial class iOSAppViewController : UIViewController { public iOSAppViewController (IntPtr handle) : base (handle){ } public override void ViewDidLoad (){ base.ViewDidLoad (); } partial void OnButtonDown (UIButton sender) { UIAlertView view = new UIAlertView(); view.Title = "Hello World" ; view.Message = "How are you? " ; view.AddButton ("OK"); view.Show(); } } iOS

public class MyActivity extends Activity public void onCreate(Bundle savedInstanceState) { Button myBtn = (Button) this.findViewById( R.id.clickMe); myBtn.setOnClickListener( new View.OnClickListener() public void onClick(View view) { AlertDialog.Builder builder = new AlertDialog.Builder(MyActivity.this) ; builder.setTitle( "Hello World").setMessage("How are you?").setPositiveButton( "OK", new DialogInterface.OnClickListener() public void onClick(DialogInterface dialogInterface, int i) { dialogInterface.dismiss(); }}).show(); }}); } } [Activity (Label = "AndroidApp", MainLauncher = true, Icon = public class MainActivity : Activity { protected override void OnCreate (Bundle bundle) { base.OnCreate (bundle); SetContentView (Resource.Layout.Main); Button button = FindViewById (Resource.Id.me); button.Click += delegate { AlertDialog.Builder builder = new AlertDialog.Builder (this ); AlertDialog dialog = null ; builder.SetTitle ( "Hello World").SetMessage ( "How are you").SetPositiveButton( "OK", delegate { dialog.Dismiss(); } ); dialog = builder.Show (); } ; } } Android

Anything you can do in Objective-C or Java can be done in C# with Xamarin using Visual Studio

Native Performance Xamarin.iOS does full Ahead Of Time (AOT) compilation to produce an ARM binary for Apple’s App Store. Xamarin.Android takes advantage of Just In Time (JIT) compilation on the Android device.

So far… Using C# BCL on iOS, Android and Windows Phone apps C# Bindings to iOS/Android Great tooling Editors Debugging Extensibility Potentially cumbersome code sharing as you write platform specific code ?

Sharing v1 Really?

Linked Files Compiler Directives

Code sharing v3

Share Code: Portable Class Libraries

NuGet

Shared Projects

UI: Xamarin + Xamarin.Forms With Xamarin.Forms: more code-sharing, native controls Traditional Xamarin approach Shared UI Code

 40+ Pages, Layouts, and Controls  Build from code behind or XAML  Two-way Data Binding  Navigation  Animation API  Dependency Service  Messaging Center UI: Xamarin.Forms Shared UI Code

Pages ContentMasterDetail NavigationTabbedCarousel

Layouts Stack AbsoluteRelativeGrid ContentViewScrollView Frame

Controls ActivityIndicator BoxViewButtonDatePickerEditor EntryImageLabelListViewMap OpenGLViewPickerProgressBarSearchBarSlider StepperTableViewTimePicker WebViewEntryCell ImageCellSwitchCellTextCellViewCell

Xamarin Forms Mark-up (XAML 2009 spec) Data binding & Data Templates Markup Extensions Resources Dictionaries

Xamarin Forms Platform Features Page.DisplayAlert UI Thread marshalling Timers Xamarin.Forms.Maps Platform code via OnPlatform and DependencyService.Get

demo Hacking away with Xamarin and Visual Studio

Tips & Tricks Personal Observations & Lessons learned

Ramp-up & Mastery To be successful using C# on iOS, Android, and Windows Phone, you still have to know how to code for these platforms

How I learned native…

How I learned Xamarin…

Sharing code… what should you use? a)PCL b)Shared Projects c)partial classes d)C# extensions e)All of the above

UI Patterns & Tips Separate your concerns Declarative XAML MVVM is not required Use OnPlatform for platform specific code Use ContentPage + layout panels for dynamic resolution

Connect to the cloud: Microsoft Azure

Memory & Garbage Collection iOS Uses AOT (Ahead of Time) compiler Two GCs: default (Boehm) or Sgen Android Uses Sgen GC Windows Phone Uses.NET GC,

Performance Is usually not a problem Use native tools to measure iOS: Instruments Android: Device Monitor’s Allocation Manager Windows Phone: Visual Studio, Windows Phone Power tools, Graphics Diagnostics

For gamers

Closing: Mobile app development with C# Familiar Productive Highly reusable Empowering Built on a solid and extensible foundation

Want to win a free Xamarin license? 1.Download free version of Xamarin Studio … 2.Create a small Hello World Project on at least two of the three platforms: Windows Phone, Android, iOS. 3.Tweet a link to your project before October 10 th at noon PST 4.One random submission will be selected….and a coupon for free license will be ed

Gracias!!! Aqui estoy los tres