Thanks for coming to build 5-star autopsy with app center
Cross-reporting, today you are going to see
How to build cross-reporting in your autopsy.
I'm sara ford, working on crash reporting on our team and this
Is a big moment for me because seven years ago i got seriously
Hurt and i used to do a ton of speaking before and this is my
First time back on stage since recoverying so thank you, i've
Been waiting for this for a long time but back in the day people
Knew me from visual studio tips and tricks and one of the things
I did back then was write a book on visual studio and one of the
Tips was about holding down the control key and making it show
As transparent on the visual studio and i'm a big doctor who
Wan and i wrote best doctor, david tenant don't blink.
I thought it would be cool if i could get his signature, and last month i did!
[Applause] and this is me explaining to
David tenant this hollywood actor, who is a shakespearean
Actor, and he's been in one of the "harry potter" movies, and
I'm like, you're in the troop loop you will be the best doctor
Forever and he goes, "you are so creative "scpo i'm like, i just
Floated to the land of unicorns and hello kitty.
Don't meet your heros, unless it's david tenant, then totally
Do that. The tip about holding down the
Control key still works today in visual studio on windows, so try
It out. Since i feel like i need to do a
Visual studio tips and tricks reunion tour!
So speaking of visual studio and visual studio services, so app
Center. Your one-stop shop for build,
Testing and distributing and monitoring your autopsy and you
Can pick and choose between services. Today you're going to see
Me use the cross services, it's also
Free. App center will scale to
Millions of users on demand and just remember the journey to a
Million users starts with a single install, moment of zen
For the day, you're welcome! you've seen enough to do
You're going to see something unique today.
You're going to see an app that allows you to report sightings
Of a time traveller. Right?
With that, here is a quick app i wrote where you can book
Sightings of a time traveller, which one did you see, and
We'll, let's see, let's put a companion.
Because i like k9. Yes, this is my art work, hold
That thought, hold that thought! and what a good dog, k9, affirmative!
I just love that! and you can look up the
Sighting, this is seattle. I consider myself an abstract
Artist. [Laughter]
And you've got to stay true to the classics, so all right.
What was the whole point of that?
You're going to see how you can incorporate app center to
Monitor this app. Let's do it.
All right. So we're going to pretend
Getting started for the first time let's tall
This dr. And let's use
Ios and you can see how app center allows you to use
Different frame works and the reason why this is important,
Depending on the app center for your app you will get
Instructions and you will follow the instructions for starting a
New package, installing sdk and using this line of code and for
This example i'm going to copy
This app secret. And i'm
Meticulous just to make sure i copied the whole thing
And we're going to introduce two classes on that main page and
This is to sara's ipad, all right.
So let's say you're actually for real working on an app and you
Don't want to write bad code, my coding skills have tanked since
I took this job having to crash an app all the time.
We offer in the documentation that you can generate a test
Crash and it will only happen in debug release so it's okay if it
Goes out into an actual release build it's not going to crash
The app. Then we've deployed -- i'm going
To click book sighting, the app crashes and i will restart app
Because you need to restart the app to send the logs.
Now the logs have been sent and just fyi we have a
Troubleshooting guide for whatever reason your app is not
Talking to app center, maybe there is no internet connection
On the mobile device, you can set the log level to verbose.
With that, i have stalled enough and we come over to
Diagnostics, the crash 33 seconds ago, just
As good as home cooked meals,
The crash to be technically correct and you can see this is
Form speak for this crash when you click the button to navigate
To the next page, why don't we go over here and fix that and
Here is the on button book click method and let's if i can crash
No. 1, And for those reading ahead, yes, we have a second crash.
All right so that is getting started.
If you've read the abstract for this talk we're going to assume
Three months having by and now your app has been in the well
And your app is out there and you start to get one-star
Reviews and it's like, hey, why isn't my -- what's going on?
People are like, it doesn't work!
And you're like that xkcd cartoon, what did you see denver
Coder 9, what did you see? i see nods!
App center can help with that. So for this registration, let's
Assume that you've been in the wild for three months and let's
See what's going on here. First is acrashes three users
Per day and this is the percentage of users that are
Happy, and this is the crashes per day and this tells you what
The good days were good and the bad days were really bad for
Your users and this number, 30, is the total time frame for
These filters and let's say we have a new release and you're
Getting 1-star reviews so let's filter that new release and see
What's going on. Here at the pot tomorrow
There's -- oh yeah, we start by default last crash, for
Development purposes but if you're in production you want to
See a count, which is, yeah, last crash is great when you're
Developing you want to find out what was the most recent crash
For qa but in production you need to prioritize what do i
Need to do, give me a to do list so i can make my users happy so
When you sort by count that's what it's showing and the number
Is for the first one is 103 instances of this crash affected
89 Users, whereas the next one 56 occurrences for 55 users.
So clearly this is a more important crash to look into.
Hear you get more details and a couple of notes to call out is
The most affected device which is helpful if you're on android
Or most affected operating systems and like for my own
Personal autopsy that i have in the apple store they don't work
On iphone 10 because i've never tried with iphone 10.
So i can imagine for my personal apps this line is probably all
The way to the end and i would have no clue if i didn't have
This information and then you can go to individual reports and
Threads and events and attachments and let's look at a
Different crash for this. For this one i'm all actually
Going to look at the -- one of my crashes from today.
I don't know if anyone can read that but i hope you can. I hear a laugh.
All right. So overview about threads so
This one only had one thread but this would tell you what was
Happening on the device, maybe it wasn't your code, maybe it
Was a combination of things. There is a different one that
Has event but you can send a screen shot or like in the debug
Version or your -- if you have a log that -- if you have a log
That you are keeping in a bug or release build you can send that at the time of the crash and let
Me find that. So this would be a plain text
Log. 205 So what type of log, like,
Text. Here is an event and you might
Have seen the code that i was logging analytics events as i go
Along so you can have a series of bread crumbs so you can
Figure out what was the user's path.
No one is going to sit here and just refresh, refresh, refresh,
To see crashes. You want to be notified and if
You are the type that hits refresh, please let me know,
Seriously, i want to hear about your use cases. You should see the stuff that i
Do because things don't quite work the way i want them to so
We're going to introduce a second crash but i need to make
It talk to this guy first. So let's start here.
There are three ways you can be notified when a new crash group
Comes in. So there's bug tracker, and with
The bug tracker you can -- with the bug tracker you can use
Github, vsts and agera. Someone in the audience said
What about coflux and my response is too soon!
I think i'm the only person in the world that can say they
Started in an open source in one company and shut it down in the
Other, i brought it into the this world, i was going to take
It out! [laughter] so we have the bug tracker
Hooked up here, a web hook, i have a slack channel just for
This app and i have a web hook here and basically a web hook
Allows you to send mess seniles to a url when something happens.
We're going to enable this. Ages
We're going to enable and test it and we see hello from your
App. So that has enabled and there is
A third way but hold on tight for a second.
And just to double-check, we are now going to crash reports top
Find a doctor app and this is to my ipad and along z, all right.
The third way is in the box you can also get email
Notifications, and let's see if that has builts.
It's still building. Open, succeeded, there we go, it
Crashed and we send a crash log. Let's minimize this.
And mao we see a notification that
A crash was detected and if we go over to github it's now at
6, This is that crash and just to make sure, 32 seconds ago.
So that is -- [applause]
Yes, let's here appreciation! for cross-reporting!
All right. Yeah, so that is all the time i
Have for demos. Just like david said, i don't
Want to go. So you can come and see us at
The app center booth for my questions that i have and i just
Want to close on one thing. The reason why i -- and give
David -- hang here with me for a second. I want to give david tenant the
Last word. This will make sense in
April second. Ten years ago he gave an
Incredible performance in his regeneration episode with
Dr. Who, the end of time and he gave a speech that moved me to
The core when he had to open up the door and trade places with
Donna's dad, ending his character, and it was the first
Time in 20 years that i could point to someone and say, that
Is how i felt when i had to go home from the naval academy
Because i was too short for flight.
I cannot overstate how much i could connect with someone else
Out there, they understood. This was like ten years ago and
I was like, i want to thank him one day, i'm going to figure out
A way, maybe if i put him in the book i will figure out a way to
Meet him and thank him and i did. I said thank you for your
Performance in dr. Who, it really helped me and he said and
This is true, he said e "i appreciate that and thank you
For writing software so that we can have creative apps!"
With that all i can say suspect thank you for writing software
So we have apps to capture moments like these. Thank you.
[Applause] please, like i said, this is my
First time back, please, please, please fill out an eval, let me
Know what you thought of the talk, we take this feedback
Seriously and, again, thank you for your time and have a great
Build. Thank you.