Xamarin Hack Day - Sydney 2016 - Introduction to Xamarin

Post on 24-Jan-2017

156 views 6 download

Transcript of Xamarin Hack Day - Sydney 2016 - Introduction to Xamarin

www.xam-consulting.com www.michaelridland.com

Welcome Xamarin Hack Day

Sydney 2016

www.xam-consulting.com www.michaelridland.com

Agenda9:00 - Presentations & Challenges

Michael Ridland - Introduction to XamarinMatthew Robbins - Costs and Benefits Compiled XamlJernej Kavka - Code Sharing

10:30 - Challenges / Install-Fest / Mini-Hacks / Open Hacking1:00 - Lunch1:30 - Challenges / Install-Fest / Mini-Hacks / Open Hacking4:30 - Show and Tell - Show something you’ve built or learnt

www.xam-consulting.com www.michaelridland.com

How you hack is up to you!

Presenters will set challengesYou can do any of the challengesor work on your own stuffmentors will be available to assist

www.xam-consulting.com www.michaelridland.com

Michael Ridland

www.michaelridland.com

www.xam-consulting.com www.michaelridland.com

Mobile Technology Specialists

www.xam-consulting.com www.michaelridland.com

Thanks to our sponsors

www.xam-consulting.com www.michaelridland.com

Thanks to our Mentors and Presenters

www.xam-consulting.com www.michaelridland.com

Introduction to Xamarin

www.xam-consulting.com www.michaelridland.com

What is native?

www.xam-consulting.com www.michaelridland.com

The Anatomy of a Native App

Native User Interfaces Native API Access Native Performance

www.xam-consulting.com www.michaelridland.com

Xamarin’s (Traditional) Approach

Native With Code Sharing

www.xam-consulting.com www.michaelridland.com

Language Support

Functional Imperative/OOP

F#

C#

www.xam-consulting.com www.michaelridland.com

Base Class Libraries

www.xam-consulting.com www.michaelridland.com

Windows APIs

www.xam-consulting.com www.michaelridland.com

iOS APIs | 100% Coverage

www.xam-consulting.com www.michaelridland.com

Android APIs | 100% Coverage

www.xam-consulting.com www.michaelridland.com

Anything you can do in Objective-C or Java

can be done in C# or F# with Xamarin

Pro Tip

www.xam-consulting.com www.michaelridland.com

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.

www.xam-consulting.com www.michaelridland.com

Demos - Xamarin Traditional

Demos

www.xam-consulting.com www.michaelridland.com

Always Up To Date

Same day support for iOS 5, iOS 6, iOS 6.1, iOS 7, iOS 7.1, iOS 8…

www.xam-consulting.com www.michaelridland.com

Future Proof

Always up-to-date with the latest APIs from Apple and Google.

Full Support for Android TV, Fire TV, Android Wear, Google Glass, etc

www.xam-consulting.com www.michaelridland.com

Rich Library EcoSystem

Json.NET Rx

…and many more!

www.xam-consulting.com www.michaelridland.com

Development Environments

www.xam-consulting.com www.michaelridland.com

Development Environment

Xamarin StudioPC or Mac

Visual Studio PluginVS 2010/2012/2013

www.xam-consulting.com www.michaelridland.com

Development Environment

or even?

www.xam-consulting.com www.michaelridland.com

Visual Studio Integration

www.xam-consulting.com www.michaelridland.com

Android Designer

www.xam-consulting.com www.michaelridland.com

iOS Designer

Fully integrated into Xamarin Studio & Visual Studio

iOS 6 & 7 Storyboard support

Intuitive event handling

Support for auto-layout

Live preview of custom controls

www.xam-consulting.com www.michaelridland.com

Component Store

www.xam-consulting.com www.michaelridland.com

Component Vendors

www.xam-consulting.com www.michaelridland.com

Xamarin.Forms

www.xam-consulting.com www.michaelridland.com

Xamarin.Forms

Xamarin.FormsTraditional Xamarin approach

Shared UI Code

www.xam-consulting.com www.michaelridland.com

Xamarin.Forms: What’s Included?

40+ Pages, Layouts, and Controls Build from code or XAML

Two-way Data Binding Navigation Animation API Dependency Service Messaging Center

www.xam-consulting.com www.michaelridland.com

Xamarin.Forms: Pages

Content MasterDetail Navigation Tabbed Carousel

www.xam-consulting.com www.michaelridland.com

Xamarin.Forms: Layouts

Stack Absolute Relative Grid ContentView ScrollView Frame

www.xam-consulting.com www.michaelridland.com

Xamarin.Forms: Controls

ActivityIndicator BoxView Button DatePicker Editor

Entry Image Label ListView Map

OpenGLView Picker ProgressBar SearchBar Slider

Stepper TableView TimePicker WebView EntryCell

ImageCell SwitchCell TextCell ViewCell

www.xam-consulting.com www.michaelridland.com

Xamarin.Forms Real World Tips

www.xam-consulting.com www.michaelridland.com

Beware……

Forms is easy… Easy is also deceptively simple…..

www.xam-consulting.com www.michaelridland.com

Beware……

I hate Xamarin.Forms

www.xam-consulting.com www.michaelridland.com

Beware……

Your still on a phone with limited resources… Forms Xaml is not like WPF, Xamarin don’t own the underlying

platforms With Forms you must build pages with Performance in mind…

www.xam-consulting.com www.michaelridland.com

Performance Tips

Reduce nesting StackLayouts encourage nesting Grid are great for reducing nesting

Avoid relative layout Reduce layout cycles Grids with Star and Static Height avoid layout cycles

www.xam-consulting.com www.michaelridland.com

Xamarin.Forms Power Controls

www.xam-consulting.com www.michaelridland.com

Grid

Not difficult to use (nearly as easy as StackLayout)

Works well with XAML (unlike relative)Can be used to create overlays/advanced UIsEasy to reduce nestingEasy to reduce layout cycles (Star and Static

Widths/Heights)

www.xam-consulting.com www.michaelridland.com

ListView with Cell Recycling

Much faster now with Cell Recycling Use the DataTemplateSelector for different cell styles Alternative to Grid when there’s a dynamic numbers of rows Avoid add/remove views when binding context change

www.xam-consulting.com www.michaelridland.com

Images on Android (especially in list)

Performance and Memory Issues Use FFImageLoader Image Caching Image Resizing

If the Image is local, it can still have issues in lists. We sometimes do a full custom renderer native cell for Android only.

www.xam-consulting.com www.michaelridland.com

Xamarin.Forms Real Apps

www.xam-consulting.com www.michaelridland.com

File -> New

www.xam-consulting.com www.michaelridland.com

Today’s Challenge

Build a view (maybe from http://snppts.io/latest or dribble) It can be simplified or adapted depending on your experience Improve the performance http://kent-boogaart.com/blog/jason-smith's-xamarin-forms-performance-tip

s

https://evolve.xamarin.com/session/56e205b0bad314273ca4d817

https://developer.xamarin.com/guides/xamarin-forms/deployment,_testing,_a

nd_metrics/performance/

www.xam-consulting.com www.michaelridland.com

Q & AMichael Ridland

michael@michaelridland.com

@rid00z

www.michaelridland.com