extending, optimizing, and accelerating xamarin and xamarin.forms app development

54
Who’s this guy? James Montemagno Developer Evangelist [email protected] http://motz.codes @JamesMontemagno

Upload: james-montemagno

Post on 15-Jul-2015

274 views

Category:

Documents


9 download

TRANSCRIPT

Page 1: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Who’s this guy?

James Montemagno

Developer Evangelist

[email protected] http://motz.codes @JamesMontemagno

Page 2: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Xamarin—A Complete Mobile Solution

Design Develop Integrate

Learn

Xamarin Platform

Test Monitor

Page 3: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Plugins for Xamarin

Page 4: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Xamarin + Xamarin.Forms

With Xamarin.Forms: !more code-sharing, native controls!

Traditional Xamarin approach!

Xamarin.Forms!

Page 5: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Platform Specific Code

UI UI UIGPS, Text To

Speech, Settings, Battery,

Lights, Notifications,

etc…

GPS, Text To Speech,

Settings, Battery, Lights,

Notifications, etc…

GPS, Text To Speech,

Settings, Battery, Lights,

Notifications, etc…

§  What if we didn’t have to write this code?

§  What if we could access it from shared code?

Page 6: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Plugins for Xamarin

§  Access Platform Specific APIs from a Common API

§  From Anywhere:§  Single Project§  PCL§  Shared Code

§  github.com/xamarin/plugins

Page 7: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Productivity Templates

Page 8: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Xamarin.Android Templates Pack -‐ AppCompat

Page 9: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Xamarin.Android Templates Pack -‐ NavDrawer

Page 10: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Xamarin.Android Templates Pack -‐ Menu

Page 11: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Xamarin.Android Templates Pack -‐ Adapters

Page 12: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Tips & Tricks Android

Page 13: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

USE THESE

•  Xamarin Android Player –  https://xamarin.com/android-‐player

•  Material Palette –  http://www.materialpalette.com/

•  Android Asset Studio –  http://romannurik.github.io/AndroidAssetStudio/

•  The Android Source Code! –  https://github.com/android/platform_frameworks_base

Page 14: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Tips & Tricks iOS with Mike James

Page 15: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Productivity Tools in Xamarin.Forms

Page 16: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Messaging Center!

§  MessagingCenter.Subscribe<T>(object subscriber, string message, Action<T> callback);!

§  MessagingCenter.Send(T item, string message);!

!!

Page 17: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Messaging Center -‐ Subscribe

Page 18: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Messaging Center -‐ Send

Page 19: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Dependency Services – Built in Service Container

•  Access Native Features Easily

Page 20: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Dependency Service -‐ Implementation

Page 21: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Dependency Service – Register & Access

Page 22: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Extensibility

http://developer.xamarin.com/guides/cross-platform/xamarin-forms/custom-renderer/

Page 23: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Extensibility

Page 24: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Extensibility

Page 25: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Extensibility

Page 26: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Extensibility

Page 27: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Extensibility

Page 28: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Circle Image in Action

http://blog.xamarin.com/extending-xamarin.forms-with-control-plugins/

Page 29: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

What’s new in Xamarin.Forms

Page 30: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Pull To Refresh!

Page 31: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

The API

Page 32: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

ViewModel Code

Page 33: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

The XAML!

Page 34: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Styles

•  Now you can group into a Style and share!

•  Can also be added to App-‐level ResourceDictionary

Page 35: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Styles

•  DynamicResource behave like data-‐binding, and support Apple’s Dynamic Type (﴾size)﴿ rendering

•  Triggers & Behaviors can be added to styles

Page 36: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Triggers

•  Visual Elements can react to events and property changes

•  “conditional style” -‐ CP

•  Can be added in C# •  Types:

§  Trigger §  EventTrigger §  DataTrigger §  MultiTrigger

OR

OR

Page 37: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Triggers

•  The EventTrigger has Event instead of Property

•  TriggerAction is written in C#

•  Remember xmlns:

Page 38: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Triggers

•  DataTriggers can bind to other controls (﴾Binding instead of Property)﴿

Page 39: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Behaviors

•  Add functionality to visual elements without subclassing

Page 40: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Behaviors

•  Add functionality to visual elements without subclassing

•  Can participate in data-‐binding

Page 41: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Basic Navigation!

§  Root Page:!§  NavigationPage – Gives each page an INavigation !

!§  Standard Navigation!§  Navigation.PushAsync(page: nextPage);!§  Navigation.PopAsync();!

§  Modal Navigation!§  Navigation.PushModalAsync(page: modalPage);!§  Navigation.PopModalAsync();!!!

Page 42: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

PushAsync/PopAsync

Page 43: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Advanced Navigation!

§  Editing of stack beyond push/pop!§  Remove Page!§  InsertPageBefore!§  NavigationStack[]!

§  Disable animations!!!

Page 44: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

InsertPageBefore

RemovePage Push/Pop

Page 45: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

James’ Top Recommendation

Page 46: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Use Xamarin.Insights! It’s Free and Amazing!

Page 47: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

•  Real-‐time Monitoring for your Apps

•  iOS, Android, Mac, and Windows

•  Xamarin.com/Insights

Page 48: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

•  Automatically report any uncaught managed or native exception.

•  Report your own caught exceptions with simple cross-‐platform API

Report

Page 49: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

•  Track any event that occurs in your application.

•  Even track performance of how long an operation takes.

Track

Page 50: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

•  Combine event tracking with user identification to resolve issues faster.

Identify

Page 51: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

•  Simple integrations into popular services for mission critical notifications.

Integrate

Page 52: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Links & References

•  Plugins for Xamarin –  http://www.github.com/xamarin/plugins

•  Plugins for Xamarin Templates –  https://visualstudiogallery.msdn.microsoft.com/

afead421-‐3fbf-‐489a-‐a4e8-‐4a244ecdbb1e •  Xamarin.Android Templates

–  https://visualstudiogallery.msdn.microsoft.com/bee6442f-‐8f5a-‐4bba-‐8849-‐e380b61e76b0

•  Paint Code –  http://www.paintcodeapp.com/

•  Slides: www.slideshare.net/jamesmontemagno

Page 53: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Get Started Xamarin.com

Page 54: Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app development

Thank you! Q&A

James Montemagno

Developer Evangelist

[email protected] http://motz.codes @JamesMontemagno