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

Post on 15-Jul-2015

275 Views

Category:

Documents

9 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Who’s this guy?

James Montemagno

Developer Evangelist

james@xamarin.com http://motz.codes @JamesMontemagno

Xamarin—A Complete Mobile Solution

Design Develop Integrate

Learn

Xamarin Platform

Test Monitor

Plugins for Xamarin

Xamarin + Xamarin.Forms

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

Traditional Xamarin approach!

Xamarin.Forms!

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?

Plugins for Xamarin

§  Access Platform Specific APIs from a Common API

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

§  github.com/xamarin/plugins

Productivity Templates

Xamarin.Android Templates Pack -‐ AppCompat

Xamarin.Android Templates Pack -‐ NavDrawer

Xamarin.Android Templates Pack -‐ Menu

Xamarin.Android Templates Pack -‐ Adapters

Tips & Tricks Android

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

Tips & Tricks iOS with Mike James

Productivity Tools in Xamarin.Forms

Messaging Center!

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

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

!!

Messaging Center -‐ Subscribe

Messaging Center -‐ Send

Dependency Services – Built in Service Container

•  Access Native Features Easily

Dependency Service -‐ Implementation

Dependency Service – Register & Access

Extensibility

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

Extensibility

Extensibility

Extensibility

Extensibility

Extensibility

Circle Image in Action

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

What’s new in Xamarin.Forms

Pull To Refresh!

The API

ViewModel Code

The XAML!

Styles

•  Now you can group into a Style and share!

•  Can also be added to App-‐level ResourceDictionary

Styles

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

•  Triggers & Behaviors can be added to styles

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

Triggers

•  The EventTrigger has Event instead of Property

•  TriggerAction is written in C#

•  Remember xmlns:

Triggers

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

Behaviors

•  Add functionality to visual elements without subclassing

Behaviors

•  Add functionality to visual elements without subclassing

•  Can participate in data-‐binding

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();!!!

PushAsync/PopAsync

Advanced Navigation!

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

§  Disable animations!!!

InsertPageBefore

RemovePage Push/Pop

James’ Top Recommendation

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

•  Real-‐time Monitoring for your Apps

•  iOS, Android, Mac, and Windows

•  Xamarin.com/Insights

•  Automatically report any uncaught managed or native exception.

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

Report

•  Track any event that occurs in your application.

•  Even track performance of how long an operation takes.

Track

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

Identify

•  Simple integrations into popular services for mission critical notifications.

Integrate

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

Get Started Xamarin.com

Thank you! Q&A

James Montemagno

Developer Evangelist

james@xamarin.com http://motz.codes @JamesMontemagno

top related