Visual Studio 2019 Launch: CI/CD for your mobile apps and games with Visual Studio App Center

July 29, 2019 posted by

>> 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 how
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, or 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 shift release
in less time than ever. In today's ratings driven world, one bad released 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 broad other 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 App Center. There is a tool for
the job to help you face the challenges you
see on a daily basis. Now, with App Center, 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, App Center has been designed
with modularity in mind, use the services that you need that best compliments your
development pipeline. Our hope is that we can
meet you wherever you are. When looking at
App Center'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, configure it 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
engaged 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've 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 the setup, 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 to 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 stacktrace
leading up to the crash. You can see in this case
there wasn't a lot, but I know that it was the specific
experiment clicked app event, and 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 the 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
and 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, commit all these, save my update, and then save my changes. All right. So we'll
let that get going, and 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 everytime 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. Finally, I'm not ready
to integrate with built, 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
the 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 integrate 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 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 We have a public repository for
you to share your requests. We also publish our 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. .

No Comments

Leave a Comment

Your email address will not be published. Required fields are marked *