43
Evolve 2014 What's new in the world of Xamarin

Evolve 2014

Embed Size (px)

Citation preview

Evolve 2014 What's new in the

world of Xamarin

Mark Rexwinkel @markrexwinkel

Marco Kuiper @marcofolio

Youp Hulsebos @youphulsebos

Evolve 2014

Atlanta BBQ Aquarium

Darwin Lounge

New partners Component vendors for Xamarin.Forms

•  Syncfusion

•  Telerik Chart

•  Infragistics

•  Steema TeeChart

•  ComponentOne

•  DevExpress

http://tinyurl.com/ebook-xamarin-forms

Free E-book

Beta

http://xamarin.com/android-player

Android Player

Sketches

Xamarin Sketches Interactive, Real-Time Code Experiments

“ Sketches provide a live coding environment that executes code as the developer types and provides a live display of the data being produced. “

- Xamarin API

Platform support C#

•  Xamarin.iOS (Unified & Classical API)

•  Xamarin.Android

•  Xamarin.Mac

•  Xamarin.Forms

Notes Current & Future

•  F# support

•  No class/method support; use Tuple and Func

•  No Xcode 6.1 support

•  Android in early preview

•  Only on Mac

•  Save directly in your code

•  Custom Quick Looks (renderers)

•  Line by line-evaluation

Xamarin.Insights

Xamarin.Insights

Xamarin.Insights Features

•  Crash and issue reporting

•  Session and user monitoring

•  Secure and private

•  Identifying users

It is free (for now)

Xamarin.Insights How it works

Xamarin.Insights Adding Xamarin.Insights to your App

•  NuGet package Xamarin.Insights

•  Supports:

•  Xamarin.iOS

•  Xamarin.Android

•  Xamarin.Mac

•  Xamarin.Forms

•  Mono

•  Windows

•  Windows Mobile

Xamarin.Insights Android

//"Android:"Initialize"in"the"Activity"with"MainLauncher"="true"Xamarin.Insights.Initialize("...","this.ApplicationContext);"" •  Required permissions

•  INTERNET

•  Optional permissions

•  ACCESS_NETWORK_STATE & ACCESS_WIFI_STATE

•  READ_EXTERNAL_STORAGE

•  BATTERY_STATS

•  READ_PHONE_STATE

•  READ_LOGS & BIND_NOTIFICATION_LISTENER_SERVICE

Xamarin.Insights iOS & Windows Phone

//"iOS:"Initialize"in"the"main()"method"before"UIApplication.Main()"Insights.Initialize("...");""//"Windows"Phone"Insights.Initialize("...");""

Xamarin.Insights Identification

//"Basic"Insights.Identify("Unique"user"id",""Key",""Value");""//"Advanced"Insights.Identify("Unique"user"id","dictionary);""

Xamarin.Insights Reporting

//"Simple"exception"logging"Insights.Report(exception);""//"Logging"extra"data"Insights.Report(exception,"extraDataDictionary);""

Xamarin.Insights Tracking

//"Event"tracking"Insights.Track(“event”,"dictionary);""//"Time"tracking"using"(var"handle"="Insights.TrackTime("TimeToLogin"))"{"}""

Xamarin.UITest

How does it work

It doesn’t

Server Client Xamarin

UITest

Test

Server

Your

App JSON over http

Xamarin.UITest on Android

Server Client Xamarin

UITest

Your

App

Test

Server JSON over http

Xamarin.UITest on iOS

Xamarin Testcloud •  Supports Xamarin.UITest

•  Parallelization

•  Video Playback

•  Per device

•  Per test

•  Easier and easier to use

•  Wizards incoming!

Profiler http://xamarin.com/profiler

Profiler Native UI

Profiler Features

Two key instruments

Sampling

Call tree

Memory snapshots

Profiler Supports

•  Support for iOS and Android

•  Devices

•  Emulators

Limitations

•  No Profiling Mac apps

•  No support for profiling Release builds

•  On windows no:

•  Snapshots

•  Call tree sorting

Closing

Recap What’s new?

•  Xamarin Insights

•  Xamarin Platform

•  Xamarin Android Player

•  Sketches

•  Profiler

•  Xamarin Test Cloud Updates

•  Xamarin.UITest

•  Screen recording

•  Partnerships

“ We want to give you the best tools possible and best platform possible

to build incredible software. “ - Nat Friedman, CEO Xamarin

Want more? Conference videos

evolve.xamarin.com

Thank you!