SlideShare uma empresa Scribd logo
1 de 90
MOBILE APP DEVELOPMENT WITH
Pranav Ainavolu
Microsoft MVP | Core @ MUGH
http://pranavon.net/
@a_pranav
App delivery
lifecycle
Design & Develop
TestMonitor
100+ apps 1000+ devices
Cross platform != Hybrid
Xamarin != React Native,
Phonegap etc.
Customer pays for experience
not for technology
* Experience here relates to end user experience (UX: User Experience) offered to
the customer by your app/website
I have a question for you
What device do you use?
Cross-Platform Mobile Development
▪ Building High quality apps is hard
• Different presentation styles, interaction
styles and software stack
• Different screen sizes, input modes and
hardware capabilities
• New devices and OS versions are introduced
multiple times per year
• New consumer applications regularly
extend and revise the standards and
set the bar higher for good mobile
applications
Client Technology Choices
Silo: Build App Multiple Times
No shared code • Many languages & development environments • Multiple teams
Objective-C
in
Xcode
Java
in
Android
Studio
C#
in
Visual Studio
▪ Full native experience
▪ Total access to the device as provided
by SDK
▪ Share Web API
▪ Minimal re-use mostly on back end
Web API
▪ Higher development cost from
multiple teams (silo teams) or
expensive multi-device developers
▪ Multiple codebases to maintain and
extend
▪ One platform rules the others are
subservient
Benefits Challenges
Silo: Build App Multiple Times
HTML: Write Once, Run Everywhere
App
Generator
Lua
Javascript
Actionscript
HTML+CSS
Limited native API access • Slow performance • Poor user experience
Target Browser Not OS
Web Site
▪ Provide consist experience regardless
of target
▪ Cheap as it is just HTML
▪ Single codebase to maintain and
extend
▪ No need for revenue sharing as no
need to be in app stores
▪ User experience tends to be webish
and not native
▪ Need to still test and debug multiple
targets
▪ Features tend to be a subset common
to all targets
Benefits Challenges
HTML: Write App using Mobile Web
Xamarin Approach
Xamarin Forms Approach
Shared UI Code
Shared vs PCL (Portable Class Library)
▪ A Shared Project is not directly
compiled (.dll is not generated),
instead files are compiled into .dll of
project that references it
▪ Can write platform specific code in a
same file using compiler directives
#ifdef
▪ Cluttered implementation for large
projects
▪ Cannot be used other than Xamarin
projects




• Shared • PCL (Portable Class Library)
Shared code implementation
Shared vs PCL (Portable Class Library)
▪ Shared code restricted into compiling directives is more difficult to read, slowing
down the development process.
▪ PCL code is much cleaner and maintanable but that is subjective to your
development practices (you may end up writing too much boiler plate code)
▪ If you are starting with Xamarin PCL is a better choice for better usability and
compatibility across other .NET platforms
Which suits better?
Xamarin + Xamarin.Forms Approach
▪ Quickly and easily build native user
interfaces using shared code
▪ Xamarin.Forms elements map to native
controls and behaviors
▪ Mix-and-match Xamarin.Forms with
native APIs
Shared UI Code
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.
Anything you can do in Objective-C, Swift, or Java
can be done in C# and Visual Studio with Xamarin.
✓ 40+ Pages, layouts, and controls
(Build from code behind or XAML)
✓ Two-way data binding
✓ Navigation
✓ Animation API
✓ Dependency Service
✓ Messaging Center
Shared C# Backend
Shared UI Code
Layouts
Pages
Stack Absolute Relative Grid ContentView ScrollView Frame
Content MasterDetail Navigation Tabbed Carousel
ActivityIndicator BoxView Button DatePicker Editor
Entry Image Label ListView Map
OpenGLView Picker ProgressBar SearchBar Slider
Stepper TableView TimePicker WebView EntryCell
ImageCell SwitchCell TextCell ViewCell
Xamarin.Forms Ecosystem
<?xml version="1.0" encoding="UTF-8"?>
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MyApp.MainPage">
<TabbedPage.Children>
<ContentPage Title="Profile" Icon="Profile.png">
<StackLayout Spacing="20" Padding="20"
VerticalOptions="Center">
<Entry Placeholder="Username"
Text="{Binding Username}"/>
<Entry Placeholder="Password"
Text="{Binding Password}"
IsPassword="true"/>
<Button Text="Login" TextColor="White"
BackgroundColor="#77D065"
Command="{Binding LoginCommand}"/>
</StackLayout>
</ContentPage>
<ContentPage Title="Settings" Icon="Settings.png">
<!-- Settings -->
</ContentPage>
</TabbedPage.Children>
</TabbedPage>
macOS Preview
Enhanced GestureRecognizers
Android Support Libraries
PlatformSpecifics
Fast Scroll
NavigationPage Translucency
Blur Behind
Partial Collapse MasterPage
Native Control Binding
Map Extensibility
Fast Renderers Preview
Startup Time
ListView Scrolling
Memory Improvements
XAMLC
Bindable Picker
Frame Corners
Tizen
Forms Previewer
FlexLayout Preview
Xamarin.Forms Embedding
DataPages
Source: Matthew Robbins - MFractor
Get Started Today
xamarin.com
Useful resources
http://bit.do/xamuniyoutube
http://bit.do/getxamarinuniveristy
https://azure.microsoft.com
https://docs.microsoft.com
Introducing
Microsoft Azure
What is the cloud?
On Premises
Storage
Servers
Networking
O/S
Middleware
Virtualization
Data
Applications
Runtime
Youmanage
Infrastructure
(as a Service)
Storage
Servers
Networking
O/S
Middleware
Virtualization
Data
Applications
Runtime
ManagedbyMicrosoft
Youmanage
Platform
(as a Service)
ManagedbyMicrosoft
Youmanage
Storage
Servers
Networking
O/S
Middleware
Virtualization
Applications
Runtime
Data
Software
(as a Service)
ManagedbyMicrosoft
Storage
Servers
Networking
O/S
Middleware
Virtualization
Applications
Runtime
Data
Cloud Services hungry kya!
On Premises
Made at home
Toppings
Tomato Sauce
Cheese
Fire
Owen
Pizza Dough
Soda
Dining Table
Electricity/Gas
Youmanage
IaaS
Take and Bake
Topping
Tomato Sauce
Cheese
Fire
Owen
Pizza Dough
Soda
Dining Table
Electricity/Gas
ManagedbyVendor
Youmanage
PaaS
Pizza delivered
ManagedbyVendor
Youmanage
Topping
Tomato Sauce
Cheese
Fire
Owen
Pizza Dough
Dinning Table
Electricity/Gas
Soda
SaaS
Dine out
ManagedbyVendor
Topping
Tomato Sauce
Cheese
Fire
Owen
Pizza Dough
Dinning Table
Electricity/Gas
Soda
Why the
cloud?
• Rapidly setup environments to drive business
priorities
• Scale to meet peak demands
• Increase daily activities, efficiency and reduced cost.
Infrastructure
designed for Scale
Demo: Azure Portal
Azure App Service
Build and scale great cloud apps
Web Apps
Mobile Apps
Logic Apps
API Apps
.NET, Java, Node.js, PHP, Python
Auto patching
Auto scale
Integration with existing apps
Continuous deployment
RESTAPI
Offline
sync
Facebook Twitter Microsoft Google Azure Active
Directory
Azure Mobile Apps
WindowsAndroid
Chrome
iOS
OSX
In-AppKindle
Backend code
SQL MongoTables O365 API Apps
Offline Sync
Create a Mobile Service
MobileService = new MobileServiceClient(
"https://myapp.azurewebsites.net");
Create tables
IMobileServiceSyncTable<TodoItem> syncTable;
public async Task Init()
{
const string path = "syncstore.db";
var db = new MobileServiceSQLiteStore(path);
db.DefineTable<TodoItem>();
}
await MobileService.SyncContext.InitializeAsync(db);
syncTable = MobileService.GetSyncTable<TodoItem>();
Push and pull with sync table
private async Task SyncAsync()
{
await MobileService.SyncContext.PushAsync();
var query = syncTable.CreateQuery();
await syncTable.PullAsync("todoItems", query);
}
private async Task InsertTodoItem(TodoItem todoItem)
{
await syncTable.InsertAsync(todoItem);
await MobileService.SyncContext.PushAsync();
}
Query local table
public async Task<IEnumerable<TodoItem>> GetOpenItemsAsync()
{
return await todoTable
.Where(item => item.Complete == false)
.ToEnumerableAsync();
}
Notification Hub
• Maps between tags and handles
1. Get PNS handle
4. Send to device
2. Store PNS handle 3b. Request notification
Use device handles
3a. Request notification
Use logical users/tags
5. Manage device handles
Shopping Demo App
Azure Services:
• Cognitive Services (Emotion API)
• Storage
• On/offline sync
• Push notifications
• Authentication
What’s Available:
• Complete sample app with documentation
• Individual “quick starts”
github.com/Microsoft/XamarinAzure_ShoppingDemoApp
Shared C# codebase • 100% native API access • High performance
iOS C# UI Windows C# UIAndroid C# UI
Shared C# Mobile C# Server
Linux/Mono
CoreCLRAzure
Shared C# Client/Server
Get started today at
http://azure.microsoft.com
https://appcenter.ms/signup
Our pipeline
Code CI Test Deploy Monitor
We are so agile
Code CI Test Deploy Monitor
Our pipeline
And slow
Code CI Test Deploy Monitor
Our pipeline
And slow
Code CI Test Deploy Monitor
Our pipeline
Let’s speed it up
Monthly Active Users
Failure to learn, failure to succeed
Monthly Active Users
Us
The competition
How do you solve this problem?
Live Update
Storage
Push Notifications
Crash Reporting
Identity
Tables
Live Update Storage
Push Notifications
Crash Reporting IdentityTables
Visual Studio Mobile Center
Mission control for mobile apps
Delivering continuously means
learning continuously
Visual Studio App Center
Automate your entire mobile app
lifecycle in a few easy steps
Deliver high-quality apps that keep
users coming back for more
Move faster and increase quality with
the tools you already use—we
support a wide variety of platforms
Get started today!
Cross platform mobile app development with Xamarin
Cross platform mobile app development with Xamarin

Mais conteúdo relacionado

Mais procurados

Sitecore on Azure
Sitecore on AzureSitecore on Azure
Sitecore on AzureClearPeople
 
Intro to azure logic apps
Intro to azure logic appsIntro to azure logic apps
Intro to azure logic appsnj-azure
 
Integrating SaaS application using Microsoft’s Azure App Service Platform
Integrating SaaS application using Microsoft’s Azure App Service PlatformIntegrating SaaS application using Microsoft’s Azure App Service Platform
Integrating SaaS application using Microsoft’s Azure App Service PlatformBizTalk360
 
Best practices deploying Sitecore to Microsoft Azure
Best practices deploying Sitecore to Microsoft AzureBest practices deploying Sitecore to Microsoft Azure
Best practices deploying Sitecore to Microsoft AzureThom Puiman
 
Enrich Your DevOps Environment: Tools for Accelerating and Integrating Your A...
Enrich Your DevOps Environment: Tools for Accelerating and Integrating Your A...Enrich Your DevOps Environment: Tools for Accelerating and Integrating Your A...
Enrich Your DevOps Environment: Tools for Accelerating and Integrating Your A...Amazon Web Services
 
Trivadis TechEvent 2017 Der Azure App Service by Manuel Meyer
Trivadis TechEvent 2017 Der Azure App Service by Manuel MeyerTrivadis TechEvent 2017 Der Azure App Service by Manuel Meyer
Trivadis TechEvent 2017 Der Azure App Service by Manuel MeyerTrivadis
 
Create and manage a web application on Azure (step to step tutorial)
Create and manage a web application on Azure (step to step tutorial)Create and manage a web application on Azure (step to step tutorial)
Create and manage a web application on Azure (step to step tutorial)Lee Stott
 
Webinar: Top Reasons to Implement Windows Azure for your Business
Webinar: Top Reasons to Implement Windows Azure for your BusinessWebinar: Top Reasons to Implement Windows Azure for your Business
Webinar: Top Reasons to Implement Windows Azure for your BusinessHARMAN Services
 
Serverless computing con Azure Functions
Serverless computing con Azure FunctionsServerless computing con Azure Functions
Serverless computing con Azure FunctionsHernan Guzman
 
Azure App Services для создания бэкенда мобильных приложений. Parse Open Sour...
Azure App Services для создания бэкенда мобильных приложений. Parse Open Sour...Azure App Services для создания бэкенда мобильных приложений. Parse Open Sour...
Azure App Services для создания бэкенда мобильных приложений. Parse Open Sour...UA Mobile
 
David Schneider: Sort your (child's) Legos with Cognitive Services
David Schneider: Sort your (child's) Legos with Cognitive ServicesDavid Schneider: Sort your (child's) Legos with Cognitive Services
David Schneider: Sort your (child's) Legos with Cognitive ServicesDavid Schneider
 

Mais procurados (19)

Sitecore on Azure
Sitecore on AzureSitecore on Azure
Sitecore on Azure
 
Intro to azure logic apps
Intro to azure logic appsIntro to azure logic apps
Intro to azure logic apps
 
Integrating SaaS application using Microsoft’s Azure App Service Platform
Integrating SaaS application using Microsoft’s Azure App Service PlatformIntegrating SaaS application using Microsoft’s Azure App Service Platform
Integrating SaaS application using Microsoft’s Azure App Service Platform
 
Azure Big Picture
Azure Big PictureAzure Big Picture
Azure Big Picture
 
Best practices deploying Sitecore to Microsoft Azure
Best practices deploying Sitecore to Microsoft AzureBest practices deploying Sitecore to Microsoft Azure
Best practices deploying Sitecore to Microsoft Azure
 
Azure App Service Deep Dive
Azure App Service Deep DiveAzure App Service Deep Dive
Azure App Service Deep Dive
 
Enrich Your DevOps Environment: Tools for Accelerating and Integrating Your A...
Enrich Your DevOps Environment: Tools for Accelerating and Integrating Your A...Enrich Your DevOps Environment: Tools for Accelerating and Integrating Your A...
Enrich Your DevOps Environment: Tools for Accelerating and Integrating Your A...
 
Trivadis TechEvent 2017 Der Azure App Service by Manuel Meyer
Trivadis TechEvent 2017 Der Azure App Service by Manuel MeyerTrivadis TechEvent 2017 Der Azure App Service by Manuel Meyer
Trivadis TechEvent 2017 Der Azure App Service by Manuel Meyer
 
Create and manage a web application on Azure (step to step tutorial)
Create and manage a web application on Azure (step to step tutorial)Create and manage a web application on Azure (step to step tutorial)
Create and manage a web application on Azure (step to step tutorial)
 
Get Started with Azure
Get Started with AzureGet Started with Azure
Get Started with Azure
 
Webinar: Top Reasons to Implement Windows Azure for your Business
Webinar: Top Reasons to Implement Windows Azure for your BusinessWebinar: Top Reasons to Implement Windows Azure for your Business
Webinar: Top Reasons to Implement Windows Azure for your Business
 
Serverless computing con Azure Functions
Serverless computing con Azure FunctionsServerless computing con Azure Functions
Serverless computing con Azure Functions
 
Azure App Services для создания бэкенда мобильных приложений. Parse Open Sour...
Azure App Services для создания бэкенда мобильных приложений. Parse Open Sour...Azure App Services для создания бэкенда мобильных приложений. Parse Open Sour...
Azure App Services для создания бэкенда мобильных приложений. Parse Open Sour...
 
Sitecore hosted on azure
Sitecore hosted on azureSitecore hosted on azure
Sitecore hosted on azure
 
David Schneider: Sort your (child's) Legos with Cognitive Services
David Schneider: Sort your (child's) Legos with Cognitive ServicesDavid Schneider: Sort your (child's) Legos with Cognitive Services
David Schneider: Sort your (child's) Legos with Cognitive Services
 
Azure app services API apps
Azure app services API appsAzure app services API apps
Azure app services API apps
 
Azure web apps
Azure web appsAzure web apps
Azure web apps
 
Firebase.pptx
Firebase.pptxFirebase.pptx
Firebase.pptx
 
Firebase.pptx
Firebase.pptxFirebase.pptx
Firebase.pptx
 

Semelhante a Cross platform mobile app development with Xamarin

App innovationcircles xamarin
App innovationcircles xamarinApp innovationcircles xamarin
App innovationcircles xamarinMohit Chhabra
 
Introduction to Cross Platform Mobile Apps (Xamarin)
Introduction to Cross Platform Mobile Apps (Xamarin)Introduction to Cross Platform Mobile Apps (Xamarin)
Introduction to Cross Platform Mobile Apps (Xamarin)BizTalk360
 
Cross platform app dev with xamarin forms
Cross platform app dev with xamarin formsCross platform app dev with xamarin forms
Cross platform app dev with xamarin formsShahriar Hossain
 
Xamarin COE by Mukteswar Patnaik
Xamarin COE by Mukteswar PatnaikXamarin COE by Mukteswar Patnaik
Xamarin COE by Mukteswar PatnaikMukteswar Patnaik
 
Xamarin Overview by Houssem Dellai
Xamarin Overview by Houssem DellaiXamarin Overview by Houssem Dellai
Xamarin Overview by Houssem DellaiHoussem Dellai
 
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and AngularNativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and AngularTodd Anglin
 
Xamarin Roadshow
Xamarin RoadshowXamarin Roadshow
Xamarin RoadshowSam Basu
 
Angular mobile angular_u
Angular mobile angular_uAngular mobile angular_u
Angular mobile angular_uDoris Chen
 
SharePoint Mobile App Development with Xmarin
SharePoint Mobile App Development with XmarinSharePoint Mobile App Development with Xmarin
SharePoint Mobile App Development with XmarinHector Luciano Jr
 
Building Mobile Cross-Platform Apps for iOS, Android & Windows in C# with Xam...
Building Mobile Cross-Platform Apps foriOS, Android & Windows in C# with Xam...Building Mobile Cross-Platform Apps foriOS, Android & Windows in C# with Xam...
Building Mobile Cross-Platform Apps for iOS, Android & Windows in C# with Xam...Nick Landry
 
Building high performance
Building high performanceBuilding high performance
Building high performanceRoy Sheinfeld
 
Developing Windows Phone 8 apps using PhoneGap
Developing Windows Phone 8 apps using PhoneGapDeveloping Windows Phone 8 apps using PhoneGap
Developing Windows Phone 8 apps using PhoneGapAmar Mesic
 
Xamarin devdays 2017 - PT - connected apps
Xamarin devdays 2017 - PT - connected appsXamarin devdays 2017 - PT - connected apps
Xamarin devdays 2017 - PT - connected appsAlexandre Marreiros
 
Xamarin Dev Days - Introduction to Xamarin.Forms, Insights, Test Cloud
Xamarin Dev Days -  Introduction to Xamarin.Forms, Insights, Test CloudXamarin Dev Days -  Introduction to Xamarin.Forms, Insights, Test Cloud
Xamarin Dev Days - Introduction to Xamarin.Forms, Insights, Test CloudJames Montemagno
 
An overview of mobile html + java script frameworks
An overview of mobile html + java script frameworksAn overview of mobile html + java script frameworks
An overview of mobile html + java script frameworksSasha dos Santos
 
Universal Applications with Universal JavaScript
Universal Applications with Universal JavaScriptUniversal Applications with Universal JavaScript
Universal Applications with Universal JavaScriptThomas Joseph
 

Semelhante a Cross platform mobile app development with Xamarin (20)

App innovationcircles xamarin
App innovationcircles xamarinApp innovationcircles xamarin
App innovationcircles xamarin
 
Intro to Xamarin
Intro to XamarinIntro to Xamarin
Intro to Xamarin
 
Introduction to Cross Platform Mobile Apps (Xamarin)
Introduction to Cross Platform Mobile Apps (Xamarin)Introduction to Cross Platform Mobile Apps (Xamarin)
Introduction to Cross Platform Mobile Apps (Xamarin)
 
Cross platform app dev with xamarin forms
Cross platform app dev with xamarin formsCross platform app dev with xamarin forms
Cross platform app dev with xamarin forms
 
Xamarin COE by Mukteswar Patnaik
Xamarin COE by Mukteswar PatnaikXamarin COE by Mukteswar Patnaik
Xamarin COE by Mukteswar Patnaik
 
Introduction to Xamarin
Introduction to XamarinIntroduction to Xamarin
Introduction to Xamarin
 
Xamarin Overview by Houssem Dellai
Xamarin Overview by Houssem DellaiXamarin Overview by Houssem Dellai
Xamarin Overview by Houssem Dellai
 
DevOps on Microsoft Platform
DevOps on Microsoft PlatformDevOps on Microsoft Platform
DevOps on Microsoft Platform
 
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and AngularNativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
 
Xamarin Roadshow
Xamarin RoadshowXamarin Roadshow
Xamarin Roadshow
 
Angular mobile angular_u
Angular mobile angular_uAngular mobile angular_u
Angular mobile angular_u
 
SharePoint Mobile App Development with Xmarin
SharePoint Mobile App Development with XmarinSharePoint Mobile App Development with Xmarin
SharePoint Mobile App Development with Xmarin
 
Building Mobile Cross-Platform Apps for iOS, Android & Windows in C# with Xam...
Building Mobile Cross-Platform Apps foriOS, Android & Windows in C# with Xam...Building Mobile Cross-Platform Apps foriOS, Android & Windows in C# with Xam...
Building Mobile Cross-Platform Apps for iOS, Android & Windows in C# with Xam...
 
Building high performance
Building high performanceBuilding high performance
Building high performance
 
Developing Windows Phone 8 apps using PhoneGap
Developing Windows Phone 8 apps using PhoneGapDeveloping Windows Phone 8 apps using PhoneGap
Developing Windows Phone 8 apps using PhoneGap
 
Xamarin devdays 2017 - PT - connected apps
Xamarin devdays 2017 - PT - connected appsXamarin devdays 2017 - PT - connected apps
Xamarin devdays 2017 - PT - connected apps
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
 
Xamarin Dev Days - Introduction to Xamarin.Forms, Insights, Test Cloud
Xamarin Dev Days -  Introduction to Xamarin.Forms, Insights, Test CloudXamarin Dev Days -  Introduction to Xamarin.Forms, Insights, Test Cloud
Xamarin Dev Days - Introduction to Xamarin.Forms, Insights, Test Cloud
 
An overview of mobile html + java script frameworks
An overview of mobile html + java script frameworksAn overview of mobile html + java script frameworks
An overview of mobile html + java script frameworks
 
Universal Applications with Universal JavaScript
Universal Applications with Universal JavaScriptUniversal Applications with Universal JavaScript
Universal Applications with Universal JavaScript
 

Mais de Pranav Ainavolu

Containerization with Azure
Containerization with AzureContainerization with Azure
Containerization with AzurePranav Ainavolu
 
Understanding Basics of Machine Learning
Understanding Basics of Machine LearningUnderstanding Basics of Machine Learning
Understanding Basics of Machine LearningPranav Ainavolu
 
Starting Mobile Development
Starting Mobile DevelopmentStarting Mobile Development
Starting Mobile DevelopmentPranav Ainavolu
 
Connected & Disconnected Apps with Azure Mobile Apps
Connected & Disconnected Apps with Azure Mobile AppsConnected & Disconnected Apps with Azure Mobile Apps
Connected & Disconnected Apps with Azure Mobile AppsPranav Ainavolu
 
Xamarin Dev Days - Xamarin.Forms
Xamarin Dev Days - Xamarin.FormsXamarin Dev Days - Xamarin.Forms
Xamarin Dev Days - Xamarin.FormsPranav Ainavolu
 
Native iOS, Android apps using Xamarin.Forms dotnetConf2016 Hyderabad
Native iOS, Android apps using Xamarin.Forms   dotnetConf2016 HyderabadNative iOS, Android apps using Xamarin.Forms   dotnetConf2016 Hyderabad
Native iOS, Android apps using Xamarin.Forms dotnetConf2016 HyderabadPranav Ainavolu
 
Automated Testing & Auto Scaling your Apps with Microsoft & Open Source Techn...
Automated Testing & Auto Scaling your Apps with Microsoft & Open Source Techn...Automated Testing & Auto Scaling your Apps with Microsoft & Open Source Techn...
Automated Testing & Auto Scaling your Apps with Microsoft & Open Source Techn...Pranav Ainavolu
 
Building A Conversational Bot Using Bot Framework and Microsoft
Building A Conversational Bot Using Bot Framework and MicrosoftBuilding A Conversational Bot Using Bot Framework and Microsoft
Building A Conversational Bot Using Bot Framework and MicrosoftPranav Ainavolu
 
The Internet of Things with Azure Service Bus
The Internet of Things with Azure Service BusThe Internet of Things with Azure Service Bus
The Internet of Things with Azure Service BusPranav Ainavolu
 
Dev/Test Scenarios in the DevOps World
Dev/Test Scenarios in the DevOps WorldDev/Test Scenarios in the DevOps World
Dev/Test Scenarios in the DevOps WorldPranav Ainavolu
 
Using Visual Studio to build XAML Universal Apps
Using Visual Studio to build XAML Universal AppsUsing Visual Studio to build XAML Universal Apps
Using Visual Studio to build XAML Universal AppsPranav Ainavolu
 
Designing cross-platform User Interface with native performance using Xamarin...
Designing cross-platform User Interface with native performance using Xamarin...Designing cross-platform User Interface with native performance using Xamarin...
Designing cross-platform User Interface with native performance using Xamarin...Pranav Ainavolu
 
Building Windows Store apps with HTML & Javascript
Building Windows Store apps with HTML & JavascriptBuilding Windows Store apps with HTML & Javascript
Building Windows Store apps with HTML & JavascriptPranav Ainavolu
 
Building Android, iOS and Windows 8 Apps with Windows Azure Mobile Services
Building Android, iOS and Windows 8 Apps with Windows Azure Mobile ServicesBuilding Android, iOS and Windows 8 Apps with Windows Azure Mobile Services
Building Android, iOS and Windows 8 Apps with Windows Azure Mobile ServicesPranav Ainavolu
 
Whats New in the Visual Studio 2013 IDE
Whats New in the Visual Studio 2013 IDEWhats New in the Visual Studio 2013 IDE
Whats New in the Visual Studio 2013 IDEPranav Ainavolu
 
Building Apps for Office 2013
Building Apps for Office 2013Building Apps for Office 2013
Building Apps for Office 2013Pranav Ainavolu
 
Windows8 and Windows Azure Mobile Services
Windows8 and Windows Azure Mobile ServicesWindows8 and Windows Azure Mobile Services
Windows8 and Windows Azure Mobile ServicesPranav Ainavolu
 

Mais de Pranav Ainavolu (20)

Containerization with Azure
Containerization with AzureContainerization with Azure
Containerization with Azure
 
ASP.NET Core Overview
ASP.NET Core OverviewASP.NET Core Overview
ASP.NET Core Overview
 
Understanding Basics of Machine Learning
Understanding Basics of Machine LearningUnderstanding Basics of Machine Learning
Understanding Basics of Machine Learning
 
Starting Mobile Development
Starting Mobile DevelopmentStarting Mobile Development
Starting Mobile Development
 
Connected & Disconnected Apps with Azure Mobile Apps
Connected & Disconnected Apps with Azure Mobile AppsConnected & Disconnected Apps with Azure Mobile Apps
Connected & Disconnected Apps with Azure Mobile Apps
 
Xamarin Dev Days - Xamarin.Forms
Xamarin Dev Days - Xamarin.FormsXamarin Dev Days - Xamarin.Forms
Xamarin Dev Days - Xamarin.Forms
 
Native iOS, Android apps using Xamarin.Forms dotnetConf2016 Hyderabad
Native iOS, Android apps using Xamarin.Forms   dotnetConf2016 HyderabadNative iOS, Android apps using Xamarin.Forms   dotnetConf2016 Hyderabad
Native iOS, Android apps using Xamarin.Forms dotnetConf2016 Hyderabad
 
Xamarin Forms
Xamarin FormsXamarin Forms
Xamarin Forms
 
Automated Testing & Auto Scaling your Apps with Microsoft & Open Source Techn...
Automated Testing & Auto Scaling your Apps with Microsoft & Open Source Techn...Automated Testing & Auto Scaling your Apps with Microsoft & Open Source Techn...
Automated Testing & Auto Scaling your Apps with Microsoft & Open Source Techn...
 
Building A Conversational Bot Using Bot Framework and Microsoft
Building A Conversational Bot Using Bot Framework and MicrosoftBuilding A Conversational Bot Using Bot Framework and Microsoft
Building A Conversational Bot Using Bot Framework and Microsoft
 
The Internet of Things with Azure Service Bus
The Internet of Things with Azure Service BusThe Internet of Things with Azure Service Bus
The Internet of Things with Azure Service Bus
 
Dev/Test Scenarios in the DevOps World
Dev/Test Scenarios in the DevOps WorldDev/Test Scenarios in the DevOps World
Dev/Test Scenarios in the DevOps World
 
Using Visual Studio to build XAML Universal Apps
Using Visual Studio to build XAML Universal AppsUsing Visual Studio to build XAML Universal Apps
Using Visual Studio to build XAML Universal Apps
 
Designing cross-platform User Interface with native performance using Xamarin...
Designing cross-platform User Interface with native performance using Xamarin...Designing cross-platform User Interface with native performance using Xamarin...
Designing cross-platform User Interface with native performance using Xamarin...
 
Building Windows Store apps with HTML & Javascript
Building Windows Store apps with HTML & JavascriptBuilding Windows Store apps with HTML & Javascript
Building Windows Store apps with HTML & Javascript
 
Building Android, iOS and Windows 8 Apps with Windows Azure Mobile Services
Building Android, iOS and Windows 8 Apps with Windows Azure Mobile ServicesBuilding Android, iOS and Windows 8 Apps with Windows Azure Mobile Services
Building Android, iOS and Windows 8 Apps with Windows Azure Mobile Services
 
Whats New in the Visual Studio 2013 IDE
Whats New in the Visual Studio 2013 IDEWhats New in the Visual Studio 2013 IDE
Whats New in the Visual Studio 2013 IDE
 
Building Apps for Office 2013
Building Apps for Office 2013Building Apps for Office 2013
Building Apps for Office 2013
 
Whats New in Excel 2013
Whats New in Excel 2013Whats New in Excel 2013
Whats New in Excel 2013
 
Windows8 and Windows Azure Mobile Services
Windows8 and Windows Azure Mobile ServicesWindows8 and Windows Azure Mobile Services
Windows8 and Windows Azure Mobile Services
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 

Último (20)

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 

Cross platform mobile app development with Xamarin

  • 2. Pranav Ainavolu Microsoft MVP | Core @ MUGH http://pranavon.net/ @a_pranav
  • 3. App delivery lifecycle Design & Develop TestMonitor 100+ apps 1000+ devices
  • 5. Xamarin != React Native, Phonegap etc.
  • 6. Customer pays for experience not for technology * Experience here relates to end user experience (UX: User Experience) offered to the customer by your app/website
  • 7. I have a question for you What device do you use?
  • 8. Cross-Platform Mobile Development ▪ Building High quality apps is hard • Different presentation styles, interaction styles and software stack • Different screen sizes, input modes and hardware capabilities • New devices and OS versions are introduced multiple times per year • New consumer applications regularly extend and revise the standards and set the bar higher for good mobile applications
  • 10. Silo: Build App Multiple Times No shared code • Many languages & development environments • Multiple teams Objective-C in Xcode Java in Android Studio C# in Visual Studio
  • 11. ▪ Full native experience ▪ Total access to the device as provided by SDK ▪ Share Web API ▪ Minimal re-use mostly on back end Web API ▪ Higher development cost from multiple teams (silo teams) or expensive multi-device developers ▪ Multiple codebases to maintain and extend ▪ One platform rules the others are subservient Benefits Challenges Silo: Build App Multiple Times
  • 12. HTML: Write Once, Run Everywhere App Generator Lua Javascript Actionscript HTML+CSS Limited native API access • Slow performance • Poor user experience
  • 13. Target Browser Not OS Web Site
  • 14. ▪ Provide consist experience regardless of target ▪ Cheap as it is just HTML ▪ Single codebase to maintain and extend ▪ No need for revenue sharing as no need to be in app stores ▪ User experience tends to be webish and not native ▪ Need to still test and debug multiple targets ▪ Features tend to be a subset common to all targets Benefits Challenges HTML: Write App using Mobile Web
  • 15.
  • 18. Shared vs PCL (Portable Class Library) ▪ A Shared Project is not directly compiled (.dll is not generated), instead files are compiled into .dll of project that references it ▪ Can write platform specific code in a same file using compiler directives #ifdef ▪ Cluttered implementation for large projects ▪ Cannot be used other than Xamarin projects     • Shared • PCL (Portable Class Library)
  • 20. Shared vs PCL (Portable Class Library) ▪ Shared code restricted into compiling directives is more difficult to read, slowing down the development process. ▪ PCL code is much cleaner and maintanable but that is subjective to your development practices (you may end up writing too much boiler plate code) ▪ If you are starting with Xamarin PCL is a better choice for better usability and compatibility across other .NET platforms Which suits better?
  • 21.
  • 22.
  • 23. Xamarin + Xamarin.Forms Approach ▪ Quickly and easily build native user interfaces using shared code ▪ Xamarin.Forms elements map to native controls and behaviors ▪ Mix-and-match Xamarin.Forms with native APIs Shared UI Code
  • 24. 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.
  • 25. Anything you can do in Objective-C, Swift, or Java can be done in C# and Visual Studio with Xamarin.
  • 26.
  • 27.
  • 28. ✓ 40+ Pages, layouts, and controls (Build from code behind or XAML) ✓ Two-way data binding ✓ Navigation ✓ Animation API ✓ Dependency Service ✓ Messaging Center Shared C# Backend Shared UI Code
  • 29. Layouts Pages Stack Absolute Relative Grid ContentView ScrollView Frame Content MasterDetail Navigation Tabbed Carousel
  • 30. ActivityIndicator BoxView Button DatePicker Editor Entry Image Label ListView Map OpenGLView Picker ProgressBar SearchBar Slider Stepper TableView TimePicker WebView EntryCell ImageCell SwitchCell TextCell ViewCell
  • 32. <?xml version="1.0" encoding="UTF-8"?> <TabbedPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="MyApp.MainPage"> <TabbedPage.Children> <ContentPage Title="Profile" Icon="Profile.png"> <StackLayout Spacing="20" Padding="20" VerticalOptions="Center"> <Entry Placeholder="Username" Text="{Binding Username}"/> <Entry Placeholder="Password" Text="{Binding Password}" IsPassword="true"/> <Button Text="Login" TextColor="White" BackgroundColor="#77D065" Command="{Binding LoginCommand}"/> </StackLayout> </ContentPage> <ContentPage Title="Settings" Icon="Settings.png"> <!-- Settings --> </ContentPage> </TabbedPage.Children> </TabbedPage>
  • 33.
  • 34.
  • 35.
  • 36. macOS Preview Enhanced GestureRecognizers Android Support Libraries PlatformSpecifics Fast Scroll NavigationPage Translucency Blur Behind Partial Collapse MasterPage Native Control Binding Map Extensibility Fast Renderers Preview Startup Time ListView Scrolling Memory Improvements XAMLC Bindable Picker Frame Corners Tizen Forms Previewer FlexLayout Preview Xamarin.Forms Embedding DataPages
  • 41. What is the cloud?
  • 42.
  • 43. On Premises Storage Servers Networking O/S Middleware Virtualization Data Applications Runtime Youmanage Infrastructure (as a Service) Storage Servers Networking O/S Middleware Virtualization Data Applications Runtime ManagedbyMicrosoft Youmanage Platform (as a Service) ManagedbyMicrosoft Youmanage Storage Servers Networking O/S Middleware Virtualization Applications Runtime Data Software (as a Service) ManagedbyMicrosoft Storage Servers Networking O/S Middleware Virtualization Applications Runtime Data
  • 44. Cloud Services hungry kya! On Premises Made at home Toppings Tomato Sauce Cheese Fire Owen Pizza Dough Soda Dining Table Electricity/Gas Youmanage IaaS Take and Bake Topping Tomato Sauce Cheese Fire Owen Pizza Dough Soda Dining Table Electricity/Gas ManagedbyVendor Youmanage PaaS Pizza delivered ManagedbyVendor Youmanage Topping Tomato Sauce Cheese Fire Owen Pizza Dough Dinning Table Electricity/Gas Soda SaaS Dine out ManagedbyVendor Topping Tomato Sauce Cheese Fire Owen Pizza Dough Dinning Table Electricity/Gas Soda
  • 45.
  • 46. Why the cloud? • Rapidly setup environments to drive business priorities • Scale to meet peak demands • Increase daily activities, efficiency and reduced cost.
  • 49. Azure App Service Build and scale great cloud apps Web Apps Mobile Apps Logic Apps API Apps .NET, Java, Node.js, PHP, Python Auto patching Auto scale Integration with existing apps Continuous deployment
  • 50.
  • 51. RESTAPI Offline sync Facebook Twitter Microsoft Google Azure Active Directory Azure Mobile Apps WindowsAndroid Chrome iOS OSX In-AppKindle Backend code SQL MongoTables O365 API Apps Offline Sync
  • 52.
  • 53. Create a Mobile Service MobileService = new MobileServiceClient( "https://myapp.azurewebsites.net");
  • 54. Create tables IMobileServiceSyncTable<TodoItem> syncTable; public async Task Init() { const string path = "syncstore.db"; var db = new MobileServiceSQLiteStore(path); db.DefineTable<TodoItem>(); } await MobileService.SyncContext.InitializeAsync(db); syncTable = MobileService.GetSyncTable<TodoItem>();
  • 55. Push and pull with sync table private async Task SyncAsync() { await MobileService.SyncContext.PushAsync(); var query = syncTable.CreateQuery(); await syncTable.PullAsync("todoItems", query); } private async Task InsertTodoItem(TodoItem todoItem) { await syncTable.InsertAsync(todoItem); await MobileService.SyncContext.PushAsync(); }
  • 56. Query local table public async Task<IEnumerable<TodoItem>> GetOpenItemsAsync() { return await todoTable .Where(item => item.Complete == false) .ToEnumerableAsync(); }
  • 57.
  • 58.
  • 59. Notification Hub • Maps between tags and handles 1. Get PNS handle 4. Send to device 2. Store PNS handle 3b. Request notification Use device handles 3a. Request notification Use logical users/tags 5. Manage device handles
  • 60.
  • 61. Shopping Demo App Azure Services: • Cognitive Services (Emotion API) • Storage • On/offline sync • Push notifications • Authentication What’s Available: • Complete sample app with documentation • Individual “quick starts” github.com/Microsoft/XamarinAzure_ShoppingDemoApp
  • 62. Shared C# codebase • 100% native API access • High performance iOS C# UI Windows C# UIAndroid C# UI Shared C# Mobile C# Server Linux/Mono CoreCLRAzure Shared C# Client/Server
  • 63.
  • 64.
  • 65.
  • 66. Get started today at http://azure.microsoft.com
  • 67.
  • 68.
  • 70.
  • 71. Our pipeline Code CI Test Deploy Monitor We are so agile
  • 72. Code CI Test Deploy Monitor Our pipeline And slow
  • 73. Code CI Test Deploy Monitor Our pipeline And slow
  • 74. Code CI Test Deploy Monitor Our pipeline Let’s speed it up
  • 75.
  • 77. Failure to learn, failure to succeed
  • 79. How do you solve this problem?
  • 80.
  • 81.
  • 82.
  • 83. Live Update Storage Push Notifications Crash Reporting Identity Tables
  • 84. Live Update Storage Push Notifications Crash Reporting IdentityTables Visual Studio Mobile Center Mission control for mobile apps
  • 86.
  • 87. Visual Studio App Center Automate your entire mobile app lifecycle in a few easy steps Deliver high-quality apps that keep users coming back for more Move faster and increase quality with the tools you already use—we support a wide variety of platforms