SlideShare ist ein Scribd-Unternehmen logo
1 von 57
Downloaden Sie, um offline zu lesen
Don't Let Your Mobile App Get Lost
James Montemagno
Developer Evangelist, Xamarin
Who’s this guy?
James
Montemagno
Developer	Evangelist,	Xamarin
james@xamarin.com motzcod.es @JamesMontemagno
Let’s go back to 1997!
• TV:
• South	Park,	Buffy	the	Vampire	Slayer,	&	King	of	the	Hill
• Movies:
• Star	Wars	Episode	IV	- VI	theatrical	re-releases!
• Titanic	grossed	over	$1	billion
• Starship	Troopers	releases!
• Games:
• Final	Fantasy	VII	releases!	Sells	2M	in	3	days!
• GoldenEye 007	destroys	my	childhood
• Me:
• I	turned	11!
• I	got	hooked	on	Tamagotchi
• I	found	the	Internet!
The Internet in 1997!
App Stores Today
We Apps!
189M
downloads
a day
200mins on
phone
127mins in
apps
How many do we actually use?
The average app user has 36 apps installed on his
or her phone.
Only 1/4 are used daily:
1/4 of apps are never used!
My Phone
117 Apps
107 “Non-system” Apps!
Used Today
17
Mobile search is a key way for users
to discover and engage with your
app’s content.
Discover & Engage
SDKs in our toolkit:
• iOS Spotlight Search
• Google App Indexing
• More:
• Facebook	AppLinks
• Twitter	Cards
• Schema.org Actions
• iOS	Universal	Linking
iOS Search APIs
NSUserActivity
• Handoff Enabled
• Pieces of Content
& Pages
• When user views
• Ability to save
state of screen
• Less Data
• More Functionality
Core Spotlight
• Pre-Indexing Entire
App’s Content
• Full set or Part of
set
• More Data
• Less Functionality
Web Markup
• Deep linking
from web
NSUserActivity: Index Activities
NSUserActivity
• Set “Activity”
• Add metadata
• Save “Activity”
NSUserActivity CreateActivity()
{
var activity = new NSUserActivity("com.xamarin.monkeys.monkey" );
activity.EligibleForSearch = true;
activity.EligibleForPublicIndexing = true;
activity.EligibleForHandoff = false;
activity.Title = monkey.Name;
activity.Keywords = new NSSet<NSString>(new NSString(monkey.Name),
new NSString("Monkey"));
var attributeSet = new CoreSpotlight.CSSearchableItemAttributeSet ();
attributeSet.ContentDescription = monkey.Details;
activity.ContentAttributeSet = attributeSet;
var info = NSDictionary.FromObjectAndKey(new NSString(monkey.Name),
new NSString("Name"));
activity.AddUserInfoEntries(info);
return activity;
Create Activity
public override void ViewWillAppear()
{
base.ViewWillAppear();
UserActivity = CreateActivity();
UserActivity.BecomeCurrent();
}
public override void ViewWillDisappear(bool animated)
{
base.ViewWillDisappear(animated);
UserActivity.ResignCurrent();
}
Set Activity
public override void UpdateUserActivityState (NSUserActivity activity)
{
// update activity
var info = NSDictionary.FromObjectAndKey(new NSString(monkey.Name),
new NSString("Name"));
activity.AddUserInfoEntries(info);
base.UpdateUserActivityState (activity);
}
Update State
Respond
public override bool ContinueUserActivity (UIApplication application,
NSUserActivity userActivity, UIApplicationRestorationHandler completionHandler)
{
// Take action based on the activity type
switch (userActivity.ActivityType) {
case "com.xamarin.monkeys.monkey":
var uid = userActivity.UserInfo.ObjectForKey((NSString)"Name").ToString();
break;
}
return true;
}
Let’s Search Monkeys!
Google App Indexing
• Put your app in front of users in Google Search
•iOS
• Promote Search Results
• Deep Link Content
• Enhance Display Elements
App Indexing Features
•Android
• Promote Search Results
• Deep Link Content
• Enhance Display Elements
• Drive Installs: better ranking
signal for all Urls
• Query Auto completions
• Now on Tap
• In Google Search
Search Better
• Connect your Site to App
Add support for links (http) and App
Indexing API in app
How to index your app
1
2
3
Verify you app against your site on
Google Play Developer Console
Publish links (over API)
Add IntentFilter
[IntentFilter(new []{ Intent.ActionView },
Categories = new []
{
Android.Content.Intent.CategoryDefault,
Android.Content.Intent.CategoryBrowsable
},
DataScheme = "http",
DataHost = "monkeysapp.com",
DataPathPrefix ="/Home/Detail/")]
public class MainActivity : BaseActivity
{
}
Handle Intent
protected override void OnNewIntent(Intent intent)
{
base.OnNewIntent(intent);
var action = intent.Action;
var data = intent.DataString;
if (Intent.ActionView != action || string.IsNullOrWhiteSpace(data))
return;
//only if deep linking
if (!data.Contains("/Home/Detail/"))
return;
var monkeyId = data.Substring(
data.LastIndexOf("/", StringComparison.Ordinal) + 1).Replace("%20", " ");
if (!string.IsNullOrWhiteSpace(monkeyId))
{
var i = new Intent(this, typeof(DetailsActivity));
i.PutExtra("Name", monkeyId);
StartActivity(i);
}
google.com/webmasters
Install App Indexing NuGet
Create “Content Action”
GoogleApiClient client;
protected override void OnCreate(Android.OS.Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
client = new GoogleApiClient.Builder(this).AddApi(AppIndex.API).Build();
}
public IndexingAction AppIndexAction
{
get
{
var item = new Thing.Builder().SetName(title).SetDescription(description)
.SetUrl(Android.Net.Uri.Parse(url)).SetType(schemaType).SetId(url).Build();
var thing = new IndexingAction.Builder(IndexingAction.TypeView)
.SetObject(item)
.SetActionStatus(IndexingAction.StatusTypeCompleted)
.Build();
return thing.JavaCast<IndexingAction>();
Index the Content
protected override async void OnStart()
{
base.OnStart();
client.Connect();
await AppIndex.AppIndexApi.StartAsync(client, AppIndexAction);
}
protected override async void OnStop()
{
base.OnStop();
await AppIndex.AppIndexApi.EndAsync(client, AppIndexAction);
client.Disconnect();
}
Test Integration in Console
Let’s Search More Monkeys!
iOS 9 App Indexing?
• Simply Add Universal Links (Web Markup)
• Integrate Deep Links in ApplicationDelegate
• Add app-to-site association in Info.plist
• Install App Indexing Component for iOS
• Call: GSDAppIndexing.SharedInstance.RegisterApp(“ITUNES_ID”);
• DONE!
We can do more!
• Developer Accounts
• Google Search
• Voice Interactions
• App Invites
Developer Accounts
Turn This:
Developer Accounts
Into this:
Google Developer Console
OK Google,
https://blog.xamarin.com/add-a-conversation-to-your-android-
app-with-voice-interactions/
Voice Interactions
– Build conversational voice
experiences into app
– Extend System Voice Actions
– Interact with your users
App Invites
– Allow users to share apps
– Email or SMS
– Deep Link Content
– Provide exclusive content
App Invites
Don’t let your app get lost!
• Leverage Search and have your users coming back for more
• Connect your website and mobile app for a rich experience
• Add unique features to bring more users
Thank	you.	
James
Montemagno
Developer Evangelist, Xamarin
james@xamarin.com motzcod.es @JamesMontemagno
slideshare.net/JamesMontemagno

Weitere ähnliche Inhalte

Andere mochten auch

ASP.NET Core – Deep Dive on Building a Real Website
ASP.NET Core – Deep Dive on Building a Real WebsiteASP.NET Core – Deep Dive on Building a Real Website
ASP.NET Core – Deep Dive on Building a Real WebsiteShravan Kumar Kasagoni
 
Build2016 - P464 - Enterprise Data Protection: Building Windows Apps that Kee...
Build2016 - P464 - Enterprise Data Protection: Building Windows Apps that Kee...Build2016 - P464 - Enterprise Data Protection: Building Windows Apps that Kee...
Build2016 - P464 - Enterprise Data Protection: Building Windows Apps that Kee...Windows Developer
 
Build 2016 - B877 - Windows Store and Dev Center Overview: New Capabilities f...
Build 2016 - B877 - Windows Store and Dev Center Overview: New Capabilities f...Build 2016 - B877 - Windows Store and Dev Center Overview: New Capabilities f...
Build 2016 - B877 - Windows Store and Dev Center Overview: New Capabilities f...Windows Developer
 
Bbfc age classifications
Bbfc age classificationsBbfc age classifications
Bbfc age classificationsElisa Dubignon
 
Xamarin Mobile Leaders Summit: Business at the Point of Inspiration: Producti...
Xamarin Mobile Leaders Summit: Business at the Point of Inspiration: Producti...Xamarin Mobile Leaders Summit: Business at the Point of Inspiration: Producti...
Xamarin Mobile Leaders Summit: Business at the Point of Inspiration: Producti...Xamarin
 
Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”
Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”
Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”panagenda
 

Andere mochten auch (10)

ASP.NET Core – Deep Dive on Building a Real Website
ASP.NET Core – Deep Dive on Building a Real WebsiteASP.NET Core – Deep Dive on Building a Real Website
ASP.NET Core – Deep Dive on Building a Real Website
 
Algoritmo ddf
Algoritmo ddfAlgoritmo ddf
Algoritmo ddf
 
Hi.ppt
Hi.pptHi.ppt
Hi.ppt
 
Build2016 - P464 - Enterprise Data Protection: Building Windows Apps that Kee...
Build2016 - P464 - Enterprise Data Protection: Building Windows Apps that Kee...Build2016 - P464 - Enterprise Data Protection: Building Windows Apps that Kee...
Build2016 - P464 - Enterprise Data Protection: Building Windows Apps that Kee...
 
Prova tecno
Prova tecnoProva tecno
Prova tecno
 
Quickie iOS Swift
Quickie iOS SwiftQuickie iOS Swift
Quickie iOS Swift
 
Build 2016 - B877 - Windows Store and Dev Center Overview: New Capabilities f...
Build 2016 - B877 - Windows Store and Dev Center Overview: New Capabilities f...Build 2016 - B877 - Windows Store and Dev Center Overview: New Capabilities f...
Build 2016 - B877 - Windows Store and Dev Center Overview: New Capabilities f...
 
Bbfc age classifications
Bbfc age classificationsBbfc age classifications
Bbfc age classifications
 
Xamarin Mobile Leaders Summit: Business at the Point of Inspiration: Producti...
Xamarin Mobile Leaders Summit: Business at the Point of Inspiration: Producti...Xamarin Mobile Leaders Summit: Business at the Point of Inspiration: Producti...
Xamarin Mobile Leaders Summit: Business at the Point of Inspiration: Producti...
 
Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”
Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”
Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”
 

Ähnlich wie Don't let your mobile app get lost - iOS Spotlight and App Indexing

GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...
GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...
GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...mharkus
 
Slightly Advanced Android Wear ;)
Slightly Advanced Android Wear ;)Slightly Advanced Android Wear ;)
Slightly Advanced Android Wear ;)Alfredo Morresi
 
Firefox OS, fixing the mobile web - FITC Toronto - 2014-04-28
Firefox OS, fixing the mobile web - FITC Toronto - 2014-04-28Firefox OS, fixing the mobile web - FITC Toronto - 2014-04-28
Firefox OS, fixing the mobile web - FITC Toronto - 2014-04-28Frédéric Harper
 
JavaScript APIs - The Web is the Platform - MDN Hack Day - Buenos Aires
JavaScript APIs - The Web is the Platform - MDN Hack Day - Buenos AiresJavaScript APIs - The Web is the Platform - MDN Hack Day - Buenos Aires
JavaScript APIs - The Web is the Platform - MDN Hack Day - Buenos AiresRobert Nyman
 
JavaScript APIs - The Web is the Platform - MDN Hack Day, Montevideo
JavaScript APIs - The Web is the Platform - MDN Hack Day, MontevideoJavaScript APIs - The Web is the Platform - MDN Hack Day, Montevideo
JavaScript APIs - The Web is the Platform - MDN Hack Day, MontevideoRobert Nyman
 
JavaScript APIs - The Web is the Platform - MozCamp, Buenos Aires
JavaScript APIs - The Web is the Platform - MozCamp, Buenos AiresJavaScript APIs - The Web is the Platform - MozCamp, Buenos Aires
JavaScript APIs - The Web is the Platform - MozCamp, Buenos AiresRobert Nyman
 
JavaScript APIs - The Web is the Platform - MDN Hack Day, Santiago, Chile
JavaScript APIs - The Web is the Platform - MDN Hack Day, Santiago, ChileJavaScript APIs - The Web is the Platform - MDN Hack Day, Santiago, Chile
JavaScript APIs - The Web is the Platform - MDN Hack Day, Santiago, ChileRobert Nyman
 
Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12
Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12
Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12Frédéric Harper
 
Design Patterns for Tablets and Smartphones
Design Patterns for Tablets and SmartphonesDesign Patterns for Tablets and Smartphones
Design Patterns for Tablets and SmartphonesMichael Galpin
 
JavaScript APIs - The Web is the Platform - .toster conference, Moscow
JavaScript APIs - The Web is the Platform - .toster conference, MoscowJavaScript APIs - The Web is the Platform - .toster conference, Moscow
JavaScript APIs - The Web is the Platform - .toster conference, MoscowRobert Nyman
 
JavaScript APIs - The Web is the Platform - MDN Hack Day, Sao Paulo
JavaScript APIs - The Web is the Platform - MDN Hack Day, Sao PauloJavaScript APIs - The Web is the Platform - MDN Hack Day, Sao Paulo
JavaScript APIs - The Web is the Platform - MDN Hack Day, Sao PauloRobert Nyman
 
Firefox OS, une plateforme à découvrir - IO Saglac - 2014-09-09
Firefox OS, une plateforme à découvrir - IO Saglac - 2014-09-09Firefox OS, une plateforme à découvrir - IO Saglac - 2014-09-09
Firefox OS, une plateforme à découvrir - IO Saglac - 2014-09-09Frédéric Harper
 
Writing Mirror API and Native Apps for Google Glass
Writing Mirror API and Native Apps for Google GlassWriting Mirror API and Native Apps for Google Glass
Writing Mirror API and Native Apps for Google GlassJean-Luc David
 
The Open Web and what it means
The Open Web and what it meansThe Open Web and what it means
The Open Web and what it meansRobert Nyman
 
After max+phonegap
After max+phonegapAfter max+phonegap
After max+phonegapyangdj
 
混搭移动开发:PhoneGap+JQurey+Dreamweaver
混搭移动开发:PhoneGap+JQurey+Dreamweaver混搭移动开发:PhoneGap+JQurey+Dreamweaver
混搭移动开发:PhoneGap+JQurey+Dreamweaveryangdj
 
Leveraging jQuery's Special Events API (JSConf 2012)
Leveraging jQuery's Special Events API (JSConf 2012)Leveraging jQuery's Special Events API (JSConf 2012)
Leveraging jQuery's Special Events API (JSConf 2012)James Greene
 
HTML pour le web mobile, Firefox OS - Devfest Nantes - 2014-11-07
HTML pour le web mobile, Firefox OS - Devfest Nantes - 2014-11-07HTML pour le web mobile, Firefox OS - Devfest Nantes - 2014-11-07
HTML pour le web mobile, Firefox OS - Devfest Nantes - 2014-11-07Frédéric Harper
 

Ähnlich wie Don't let your mobile app get lost - iOS Spotlight and App Indexing (20)

GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...
GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...
GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...
 
Slightly Advanced Android Wear ;)
Slightly Advanced Android Wear ;)Slightly Advanced Android Wear ;)
Slightly Advanced Android Wear ;)
 
Firefox OS, fixing the mobile web - FITC Toronto - 2014-04-28
Firefox OS, fixing the mobile web - FITC Toronto - 2014-04-28Firefox OS, fixing the mobile web - FITC Toronto - 2014-04-28
Firefox OS, fixing the mobile web - FITC Toronto - 2014-04-28
 
Android workshop
Android workshopAndroid workshop
Android workshop
 
JavaScript APIs - The Web is the Platform - MDN Hack Day - Buenos Aires
JavaScript APIs - The Web is the Platform - MDN Hack Day - Buenos AiresJavaScript APIs - The Web is the Platform - MDN Hack Day - Buenos Aires
JavaScript APIs - The Web is the Platform - MDN Hack Day - Buenos Aires
 
JavaScript APIs - The Web is the Platform - MDN Hack Day, Montevideo
JavaScript APIs - The Web is the Platform - MDN Hack Day, MontevideoJavaScript APIs - The Web is the Platform - MDN Hack Day, Montevideo
JavaScript APIs - The Web is the Platform - MDN Hack Day, Montevideo
 
JavaScript APIs - The Web is the Platform - MozCamp, Buenos Aires
JavaScript APIs - The Web is the Platform - MozCamp, Buenos AiresJavaScript APIs - The Web is the Platform - MozCamp, Buenos Aires
JavaScript APIs - The Web is the Platform - MozCamp, Buenos Aires
 
JavaScript APIs - The Web is the Platform - MDN Hack Day, Santiago, Chile
JavaScript APIs - The Web is the Platform - MDN Hack Day, Santiago, ChileJavaScript APIs - The Web is the Platform - MDN Hack Day, Santiago, Chile
JavaScript APIs - The Web is the Platform - MDN Hack Day, Santiago, Chile
 
Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12
Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12
Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12
 
Design Patterns for Tablets and Smartphones
Design Patterns for Tablets and SmartphonesDesign Patterns for Tablets and Smartphones
Design Patterns for Tablets and Smartphones
 
JavaScript APIs - The Web is the Platform - .toster conference, Moscow
JavaScript APIs - The Web is the Platform - .toster conference, MoscowJavaScript APIs - The Web is the Platform - .toster conference, Moscow
JavaScript APIs - The Web is the Platform - .toster conference, Moscow
 
What's new in iOS9
What's new in iOS9What's new in iOS9
What's new in iOS9
 
JavaScript APIs - The Web is the Platform - MDN Hack Day, Sao Paulo
JavaScript APIs - The Web is the Platform - MDN Hack Day, Sao PauloJavaScript APIs - The Web is the Platform - MDN Hack Day, Sao Paulo
JavaScript APIs - The Web is the Platform - MDN Hack Day, Sao Paulo
 
Firefox OS, une plateforme à découvrir - IO Saglac - 2014-09-09
Firefox OS, une plateforme à découvrir - IO Saglac - 2014-09-09Firefox OS, une plateforme à découvrir - IO Saglac - 2014-09-09
Firefox OS, une plateforme à découvrir - IO Saglac - 2014-09-09
 
Writing Mirror API and Native Apps for Google Glass
Writing Mirror API and Native Apps for Google GlassWriting Mirror API and Native Apps for Google Glass
Writing Mirror API and Native Apps for Google Glass
 
The Open Web and what it means
The Open Web and what it meansThe Open Web and what it means
The Open Web and what it means
 
After max+phonegap
After max+phonegapAfter max+phonegap
After max+phonegap
 
混搭移动开发:PhoneGap+JQurey+Dreamweaver
混搭移动开发:PhoneGap+JQurey+Dreamweaver混搭移动开发:PhoneGap+JQurey+Dreamweaver
混搭移动开发:PhoneGap+JQurey+Dreamweaver
 
Leveraging jQuery's Special Events API (JSConf 2012)
Leveraging jQuery's Special Events API (JSConf 2012)Leveraging jQuery's Special Events API (JSConf 2012)
Leveraging jQuery's Special Events API (JSConf 2012)
 
HTML pour le web mobile, Firefox OS - Devfest Nantes - 2014-11-07
HTML pour le web mobile, Firefox OS - Devfest Nantes - 2014-11-07HTML pour le web mobile, Firefox OS - Devfest Nantes - 2014-11-07
HTML pour le web mobile, Firefox OS - Devfest Nantes - 2014-11-07
 

Mehr von James Montemagno

What's new and next for mobile development with .NET
What's new and next for mobile development with .NETWhat's new and next for mobile development with .NET
What's new and next for mobile development with .NETJames Montemagno
 
Taking Mobile Development Serverless with C#
Taking Mobile Development Serverless with C#Taking Mobile Development Serverless with C#
Taking Mobile Development Serverless with C#James Montemagno
 
.NET North UG - What’s new & next for Xamarin developers
.NET North UG - What’s new & next for Xamarin developers.NET North UG - What’s new & next for Xamarin developers
.NET North UG - What’s new & next for Xamarin developersJames Montemagno
 
Building Stream Deck Plugins in C#
Building Stream Deck Plugins in C#Building Stream Deck Plugins in C#
Building Stream Deck Plugins in C#James Montemagno
 
.Net Dev Summit 2020 - What's new and next for Xamarin developers
.Net Dev Summit 2020 - What's new and next for Xamarin developers.Net Dev Summit 2020 - What's new and next for Xamarin developers
.Net Dev Summit 2020 - What's new and next for Xamarin developersJames Montemagno
 
Creating Island Tracker - Xamarin, Azure Functions, Table Storage, & More
Creating Island Tracker - Xamarin, Azure Functions, Table Storage, & MoreCreating Island Tracker - Xamarin, Azure Functions, Table Storage, & More
Creating Island Tracker - Xamarin, Azure Functions, Table Storage, & MoreJames Montemagno
 
Xamarin.forms Shell + Navigation
Xamarin.forms Shell + NavigationXamarin.forms Shell + Navigation
Xamarin.forms Shell + NavigationJames Montemagno
 
Seattle Mobile .NET User Group - Nov. 13th 2019
Seattle Mobile .NET User Group - Nov. 13th 2019Seattle Mobile .NET User Group - Nov. 13th 2019
Seattle Mobile .NET User Group - Nov. 13th 2019James Montemagno
 
Expert Day - What's New, Hot, & Awesome for Xamarin Devs
Expert Day - What's New, Hot, & Awesome for Xamarin DevsExpert Day - What's New, Hot, & Awesome for Xamarin Devs
Expert Day - What's New, Hot, & Awesome for Xamarin DevsJames Montemagno
 
Oxford .NET - Go Mobile with Xamarin
Oxford .NET - Go Mobile with XamarinOxford .NET - Go Mobile with Xamarin
Oxford .NET - Go Mobile with XamarinJames Montemagno
 
Xamarin - New & Awesome + Building Xamarin.Essentials
Xamarin - New & Awesome + Building Xamarin.EssentialsXamarin - New & Awesome + Building Xamarin.Essentials
Xamarin - New & Awesome + Building Xamarin.EssentialsJames Montemagno
 
Zebra App Forum 2019 - Building iOS & Android Apps with Xamarin
Zebra App Forum 2019 - Building iOS & Android Apps with XamarinZebra App Forum 2019 - Building iOS & Android Apps with Xamarin
Zebra App Forum 2019 - Building iOS & Android Apps with XamarinJames Montemagno
 
Stunning Mobile Apps with the Xamarin Visual Design System​
Stunning Mobile Apps with the Xamarin Visual Design System​Stunning Mobile Apps with the Xamarin Visual Design System​
Stunning Mobile Apps with the Xamarin Visual Design System​James Montemagno
 
What's New, Hot, & Awesome for Xamarin Developers!
What's New, Hot, & Awesome for Xamarin Developers!What's New, Hot, & Awesome for Xamarin Developers!
What's New, Hot, & Awesome for Xamarin Developers!James Montemagno
 
Introduction to Mobile Development with Xamarin -DotNet Westide
Introduction to Mobile Development with Xamarin -DotNet WestideIntroduction to Mobile Development with Xamarin -DotNet Westide
Introduction to Mobile Development with Xamarin -DotNet WestideJames Montemagno
 
What's New in Xamarin? - Santo Domingo
What's New in Xamarin? - Santo DomingoWhat's New in Xamarin? - Santo Domingo
What's New in Xamarin? - Santo DomingoJames Montemagno
 
Xamarin: The Future of App Development
Xamarin: The Future of App DevelopmentXamarin: The Future of App Development
Xamarin: The Future of App DevelopmentJames Montemagno
 
Optimizing and Extending Xamarin.Forms iOS, Android, and UWP Apps
Optimizing and Extending Xamarin.Forms iOS, Android, and UWP AppsOptimizing and Extending Xamarin.Forms iOS, Android, and UWP Apps
Optimizing and Extending Xamarin.Forms iOS, Android, and UWP AppsJames Montemagno
 
.NET Everywhere and for Everyone
.NET Everywhere and for Everyone.NET Everywhere and for Everyone
.NET Everywhere and for EveryoneJames Montemagno
 
MS Experiences 17 - Xamarin: Future of Mobile Development
MS Experiences 17 - Xamarin: Future of Mobile DevelopmentMS Experiences 17 - Xamarin: Future of Mobile Development
MS Experiences 17 - Xamarin: Future of Mobile DevelopmentJames Montemagno
 

Mehr von James Montemagno (20)

What's new and next for mobile development with .NET
What's new and next for mobile development with .NETWhat's new and next for mobile development with .NET
What's new and next for mobile development with .NET
 
Taking Mobile Development Serverless with C#
Taking Mobile Development Serverless with C#Taking Mobile Development Serverless with C#
Taking Mobile Development Serverless with C#
 
.NET North UG - What’s new & next for Xamarin developers
.NET North UG - What’s new & next for Xamarin developers.NET North UG - What’s new & next for Xamarin developers
.NET North UG - What’s new & next for Xamarin developers
 
Building Stream Deck Plugins in C#
Building Stream Deck Plugins in C#Building Stream Deck Plugins in C#
Building Stream Deck Plugins in C#
 
.Net Dev Summit 2020 - What's new and next for Xamarin developers
.Net Dev Summit 2020 - What's new and next for Xamarin developers.Net Dev Summit 2020 - What's new and next for Xamarin developers
.Net Dev Summit 2020 - What's new and next for Xamarin developers
 
Creating Island Tracker - Xamarin, Azure Functions, Table Storage, & More
Creating Island Tracker - Xamarin, Azure Functions, Table Storage, & MoreCreating Island Tracker - Xamarin, Azure Functions, Table Storage, & More
Creating Island Tracker - Xamarin, Azure Functions, Table Storage, & More
 
Xamarin.forms Shell + Navigation
Xamarin.forms Shell + NavigationXamarin.forms Shell + Navigation
Xamarin.forms Shell + Navigation
 
Seattle Mobile .NET User Group - Nov. 13th 2019
Seattle Mobile .NET User Group - Nov. 13th 2019Seattle Mobile .NET User Group - Nov. 13th 2019
Seattle Mobile .NET User Group - Nov. 13th 2019
 
Expert Day - What's New, Hot, & Awesome for Xamarin Devs
Expert Day - What's New, Hot, & Awesome for Xamarin DevsExpert Day - What's New, Hot, & Awesome for Xamarin Devs
Expert Day - What's New, Hot, & Awesome for Xamarin Devs
 
Oxford .NET - Go Mobile with Xamarin
Oxford .NET - Go Mobile with XamarinOxford .NET - Go Mobile with Xamarin
Oxford .NET - Go Mobile with Xamarin
 
Xamarin - New & Awesome + Building Xamarin.Essentials
Xamarin - New & Awesome + Building Xamarin.EssentialsXamarin - New & Awesome + Building Xamarin.Essentials
Xamarin - New & Awesome + Building Xamarin.Essentials
 
Zebra App Forum 2019 - Building iOS & Android Apps with Xamarin
Zebra App Forum 2019 - Building iOS & Android Apps with XamarinZebra App Forum 2019 - Building iOS & Android Apps with Xamarin
Zebra App Forum 2019 - Building iOS & Android Apps with Xamarin
 
Stunning Mobile Apps with the Xamarin Visual Design System​
Stunning Mobile Apps with the Xamarin Visual Design System​Stunning Mobile Apps with the Xamarin Visual Design System​
Stunning Mobile Apps with the Xamarin Visual Design System​
 
What's New, Hot, & Awesome for Xamarin Developers!
What's New, Hot, & Awesome for Xamarin Developers!What's New, Hot, & Awesome for Xamarin Developers!
What's New, Hot, & Awesome for Xamarin Developers!
 
Introduction to Mobile Development with Xamarin -DotNet Westide
Introduction to Mobile Development with Xamarin -DotNet WestideIntroduction to Mobile Development with Xamarin -DotNet Westide
Introduction to Mobile Development with Xamarin -DotNet Westide
 
What's New in Xamarin? - Santo Domingo
What's New in Xamarin? - Santo DomingoWhat's New in Xamarin? - Santo Domingo
What's New in Xamarin? - Santo Domingo
 
Xamarin: The Future of App Development
Xamarin: The Future of App DevelopmentXamarin: The Future of App Development
Xamarin: The Future of App Development
 
Optimizing and Extending Xamarin.Forms iOS, Android, and UWP Apps
Optimizing and Extending Xamarin.Forms iOS, Android, and UWP AppsOptimizing and Extending Xamarin.Forms iOS, Android, and UWP Apps
Optimizing and Extending Xamarin.Forms iOS, Android, and UWP Apps
 
.NET Everywhere and for Everyone
.NET Everywhere and for Everyone.NET Everywhere and for Everyone
.NET Everywhere and for Everyone
 
MS Experiences 17 - Xamarin: Future of Mobile Development
MS Experiences 17 - Xamarin: Future of Mobile DevelopmentMS Experiences 17 - Xamarin: Future of Mobile Development
MS Experiences 17 - Xamarin: Future of Mobile Development
 

Kürzlich hochgeladen

MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINESIVASHANKAR N
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).pptssuser5c9d4b1
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)Suman Mia
 
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...RajaP95
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxAsutosh Ranjan
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...Call Girls in Nagpur High Profile
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝soniya singh
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxDeepakSakkari2
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxupamatechverse
 

Kürzlich hochgeladen (20)

MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
 
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptx
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
 

Don't let your mobile app get lost - iOS Spotlight and App Indexing

  • 1. Don't Let Your Mobile App Get Lost James Montemagno Developer Evangelist, Xamarin
  • 3. Let’s go back to 1997! • TV: • South Park, Buffy the Vampire Slayer, & King of the Hill • Movies: • Star Wars Episode IV - VI theatrical re-releases! • Titanic grossed over $1 billion • Starship Troopers releases! • Games: • Final Fantasy VII releases! Sells 2M in 3 days! • GoldenEye 007 destroys my childhood • Me: • I turned 11! • I got hooked on Tamagotchi • I found the Internet!
  • 5.
  • 6.
  • 7.
  • 8.
  • 10. We Apps! 189M downloads a day 200mins on phone 127mins in apps
  • 11. How many do we actually use?
  • 12. The average app user has 36 apps installed on his or her phone.
  • 13. Only 1/4 are used daily:
  • 14. 1/4 of apps are never used!
  • 15. My Phone 117 Apps 107 “Non-system” Apps!
  • 17. Mobile search is a key way for users to discover and engage with your app’s content.
  • 19. SDKs in our toolkit: • iOS Spotlight Search • Google App Indexing • More: • Facebook AppLinks • Twitter Cards • Schema.org Actions • iOS Universal Linking
  • 20. iOS Search APIs NSUserActivity • Handoff Enabled • Pieces of Content & Pages • When user views • Ability to save state of screen • Less Data • More Functionality Core Spotlight • Pre-Indexing Entire App’s Content • Full set or Part of set • More Data • Less Functionality Web Markup • Deep linking from web
  • 22. NSUserActivity • Set “Activity” • Add metadata • Save “Activity”
  • 23. NSUserActivity CreateActivity() { var activity = new NSUserActivity("com.xamarin.monkeys.monkey" ); activity.EligibleForSearch = true; activity.EligibleForPublicIndexing = true; activity.EligibleForHandoff = false; activity.Title = monkey.Name; activity.Keywords = new NSSet<NSString>(new NSString(monkey.Name), new NSString("Monkey")); var attributeSet = new CoreSpotlight.CSSearchableItemAttributeSet (); attributeSet.ContentDescription = monkey.Details; activity.ContentAttributeSet = attributeSet; var info = NSDictionary.FromObjectAndKey(new NSString(monkey.Name), new NSString("Name")); activity.AddUserInfoEntries(info); return activity; Create Activity
  • 24. public override void ViewWillAppear() { base.ViewWillAppear(); UserActivity = CreateActivity(); UserActivity.BecomeCurrent(); } public override void ViewWillDisappear(bool animated) { base.ViewWillDisappear(animated); UserActivity.ResignCurrent(); } Set Activity
  • 25. public override void UpdateUserActivityState (NSUserActivity activity) { // update activity var info = NSDictionary.FromObjectAndKey(new NSString(monkey.Name), new NSString("Name")); activity.AddUserInfoEntries(info); base.UpdateUserActivityState (activity); } Update State
  • 26. Respond public override bool ContinueUserActivity (UIApplication application, NSUserActivity userActivity, UIApplicationRestorationHandler completionHandler) { // Take action based on the activity type switch (userActivity.ActivityType) { case "com.xamarin.monkeys.monkey": var uid = userActivity.UserInfo.ObjectForKey((NSString)"Name").ToString(); break; } return true; }
  • 28. Google App Indexing • Put your app in front of users in Google Search
  • 29. •iOS • Promote Search Results • Deep Link Content • Enhance Display Elements App Indexing Features •Android • Promote Search Results • Deep Link Content • Enhance Display Elements • Drive Installs: better ranking signal for all Urls • Query Auto completions • Now on Tap
  • 30. • In Google Search Search Better • Connect your Site to App
  • 31. Add support for links (http) and App Indexing API in app How to index your app 1 2 3 Verify you app against your site on Google Play Developer Console Publish links (over API)
  • 32.
  • 33. Add IntentFilter [IntentFilter(new []{ Intent.ActionView }, Categories = new [] { Android.Content.Intent.CategoryDefault, Android.Content.Intent.CategoryBrowsable }, DataScheme = "http", DataHost = "monkeysapp.com", DataPathPrefix ="/Home/Detail/")] public class MainActivity : BaseActivity { }
  • 34. Handle Intent protected override void OnNewIntent(Intent intent) { base.OnNewIntent(intent); var action = intent.Action; var data = intent.DataString; if (Intent.ActionView != action || string.IsNullOrWhiteSpace(data)) return; //only if deep linking if (!data.Contains("/Home/Detail/")) return; var monkeyId = data.Substring( data.LastIndexOf("/", StringComparison.Ordinal) + 1).Replace("%20", " "); if (!string.IsNullOrWhiteSpace(monkeyId)) { var i = new Intent(this, typeof(DetailsActivity)); i.PutExtra("Name", monkeyId); StartActivity(i); }
  • 35.
  • 36.
  • 38.
  • 39.
  • 41. Create “Content Action” GoogleApiClient client; protected override void OnCreate(Android.OS.Bundle savedInstanceState) { base.OnCreate(savedInstanceState); client = new GoogleApiClient.Builder(this).AddApi(AppIndex.API).Build(); } public IndexingAction AppIndexAction { get { var item = new Thing.Builder().SetName(title).SetDescription(description) .SetUrl(Android.Net.Uri.Parse(url)).SetType(schemaType).SetId(url).Build(); var thing = new IndexingAction.Builder(IndexingAction.TypeView) .SetObject(item) .SetActionStatus(IndexingAction.StatusTypeCompleted) .Build(); return thing.JavaCast<IndexingAction>();
  • 42. Index the Content protected override async void OnStart() { base.OnStart(); client.Connect(); await AppIndex.AppIndexApi.StartAsync(client, AppIndexAction); } protected override async void OnStop() { base.OnStop(); await AppIndex.AppIndexApi.EndAsync(client, AppIndexAction); client.Disconnect(); }
  • 43.
  • 46. iOS 9 App Indexing? • Simply Add Universal Links (Web Markup) • Integrate Deep Links in ApplicationDelegate • Add app-to-site association in Info.plist • Install App Indexing Component for iOS • Call: GSDAppIndexing.SharedInstance.RegisterApp(“ITUNES_ID”); • DONE!
  • 47. We can do more! • Developer Accounts • Google Search • Voice Interactions • App Invites
  • 52. Voice Interactions – Build conversational voice experiences into app – Extend System Voice Actions – Interact with your users
  • 53.
  • 54. App Invites – Allow users to share apps – Email or SMS – Deep Link Content – Provide exclusive content
  • 56. Don’t let your app get lost! • Leverage Search and have your users coming back for more • Connect your website and mobile app for a rich experience • Add unique features to bring more users
  • 57. Thank you. James Montemagno Developer Evangelist, Xamarin james@xamarin.com motzcod.es @JamesMontemagno slideshare.net/JamesMontemagno