 Hi, my name is James White, a Program Manager on the Visual Studio App Center team, and I am excited to share with you today about what App Center has to offer developers alongside the launch of Visual Studio 2019. No matter what type of mobile application you build, whether they be games, internal line of business apps, or even public-facing commercial applications, we have something for you to help make your lives easier. When it comes to app development, expectations from users, your customers, has never been higher. First, think about apps have evolved over the last decade with their quality and design the best they have ever been. Additionally, in this fast information age, you need to keep up with a steady stream of updates and new content available to help ensure your users remain engaged and continue to use your apps. Customers also interact with a wider variety of devices on a daily basis. They wake up to an alarm on their smartwatch, browse notifications and social media from their phone, and listen to music with their smart speakers while getting ready for the day, all before sitting down in front of their computer or tablet to start the actual workday. These factors bring their own challenges to you as the developer to meet in this new world. First, you need to leverage integrations into a variety of tools and ecosystems. You need to consider things like how users will authenticate, what tools will help process payments, or even how you will store and manage your data. Along with managing integrations, developers are continually shipping updates and fixing issues. There is no longer a concept of an annual release cycle. You need the ability to rapidly go from new feature to implementation to shipped release in less time than ever. In today's ratings-driven world, one bad release can really slow the adoption of your app. Failing to address the issue can have a significant impact on your bottom line. With new devices continually available, we need to be able to support our apps where our customers are, whether that be a computer, phone, watch, or whatever comes next. The broader their support, the more we can engage with users. That is where we at Microsoft come in. We have offerings to cover your needs on any app and any platform, whether it's writing code and developing tools with Visual Studio, leveraging our Cloud Backend services on Azure or automating your development pipeline with AppCenter. There is a tool for the job to help you face the challenges you see on a daily basis. Now, with AppCenter, we truly strive to offer something for everyone. We support the platforms you need to support, including Android, iOS, and UWP. Initially, we support many of the development frameworks you are already working in, including Java, Swift, Xamarin, Unity, and React Native. While all our tools are built to work well together, AppCenter has been designed with modularity in mind. Use the services that you need that best complements your development pipeline. Our hope is that we can meet you wherever you are. When looking at AppCenter's offerings, you can generally group our services into two categories, your mobile DevOps pipeline and engagement with customers. The DevOps tools are all about automation. Continuously build your app on every commit, configured for both the development and release cycles. Run tests on a broad range of devices using test automation to help you find issues sooner, and test your apps on the devices your customers use. Finally, distribute your app, automatically publishing builds to your QA teams, beta testers, and the App Store. Once you have a build ready to share with customers, that is when engagement tools come into play. Our diagnostics tools allow you to monitor your app health with real-time crash reports and error handling, diagnose issues and fix problems quickly, catch and report exceptions that occur, then prioritize based on the impact. You can use app analytics and events to help prioritize feature development based on usage data about your core audience. Devices used, location, session information, and more. Track events to see if new features are discovered, and how your users engage with your app. Finally, you can send targeted messaging and experiences through intelligent push notifications across Android, iOS, and Windows to drive better user engagement all from the App Center portal. Now that we have had a chance to overview what App Center can offer, let us take a moment to see it in action. So here we are. I have been working on a new app that I want to share with my friends. I recently integrated App Center into the app to start tracking analytics and crash reports as they occur. To get started, all I had to do was add the App Center SDK using NuGet and initialize in my main activity with the app ID. Shortly after getting this set up, I actually had an app crash while running some tests. I can go to the diagnostics tab and start looking at some of the crashes as they've come in. Looking at this first one, I can click the latest crash and dig into its details, see an overview of what it was, the devices affected, and also the report where I can get more information. What I am most interested in is both the stack trace leading up to the crash, and you can see in this case there wasn't a lot, but I know that it was the specific experiment clicked app event. As well, I can look at the events that took place as I process the app to lead up to it. Now, I have an idea of where this error is. This experiment clicked event is pretty specific. So let's jump into Visual Studio and take a look. In this application written in Xamarin, I had recently added a new button that was to be a placeholder for some new functionality I had in mind to add in the future. I can jump to the associated event in the code and take a look here. Now, what I did is, wrote a block of code and then actually generated a crash to force me to remember to implement functionality in the future because I knew I would forget. In this case, it worked. So I need to do something. I'm not actually ready to implement new functionality yet, but I don't want my app to crash, so I'm actually just going to put a try catch into my app instead. That way, things stay nice and smooth. But I do want to be able to come back and revisit this in the future. So what I'm going to do is use the App Center crashes SDK to still track this exception. That way, I get a report of the issue, but it doesn't force my app to crash in case someone else uses this. This is just a simple fix with a few lines of code, but I'm good to go. I'm also feeling daring, so I'm going to immediately commit all of these changes into GitHub straight from Visual Studio. Added better crash handling. I'll just commit all of these, save my update, and then sync my changes. So we'll let that get going. As soon as all of the updates are made, we're going to jump back into App Center. Perfect. So what's nice about what I did is I integrated App Center to automatically build my app every time I commit code to GitHub. All I had to do was connect App Center to my GitHub repository and change some of the build settings and configuration. Digging in, you can see that I have it set to be every time I commit code, it builds this branch. Soon, I'm going to probably want to share my app with users. Once I'm ready to sign my build and actually distribute a real app, I can actually automatically integrate it so that it will distribute a new build every time I commit code. That way my friends or QA testers or family that are checking out the app will get updates as frequently as I update my app. If I'm not ready to integrate with build, I can actually just release the app directly itself to my friends and collaborators. Final thing I want to mention is I do have that functionality that I need to block out at some point. When I'm ready to actually implement that functionality, I can write tests and add them to my existing automation tests and run them on a number of devices to make sure that as I add new features to my app, it doesn't break existing functionality that I've already written. You can see here examples where I've got this app that tests the sentiment of a user based on their text and I've got tests for if they're happy or sad. So once I've got my new feature idea written, I can add extra tests here to be able to make sure that those things continue to still work. That's it. A quick tour of how you can iterate App Center into your development pipeline. Now, we on the App Center team know that there is more we can offer. We are just at the start of our journey. We are now working on new offerings that will enable deeper Azure integrated experiences to power your apps. In development right now, we are working on new identity management solutions for easier user authentication, data storage and real-time sync offerings to make data management easier and integration with PlayFab for real-time diagnostics behavior and much more. We are excited to share more details about this with you in the months ahead. Now, it is one thing for me to tell you about the things App Center can offer, another for you to experience it for yourself. App Center is free to use so there is no reason to not at least give it a try. Go to aka.ms.appcenter, create an account and get started. If you have any questions or feedback, make sure to reach out to us on Twitter or you can submit your ideas for what you would like to see next at aka.ms.appcenterfeedback. We have a public repository for you to share your requests. We also publish a roadmap and active work items so you can know what is coming next and share your thoughts. Now, that's it for me. It's time for you to go and build some great apps. We look forward to seeing what you can build with Visual Studio 2019 and App Center.