This video provides a quick introduction to the important features of Xamarin for folks that may not have worked with it before. Learn about the Xamarin mobile development landscape, and discover some of Xamarin's offerings (for example,Test Cloud and Insights). Plus, this video covers both the Xamarin native and the Xamarin.Forms APIs, and shows when to consider each one.
- [Instructor] Now, let's switch sides and talk to some of you folks who are more familiar with F#, and might be missing some context around Xamarin. I'll start with a few of the features available from Xamarin. First up, Xamarin test cloud. This is a suite of services that Xamarin offers that will help you more easily test your apps. Record as many tests as you like, and the test cloud will automatically run them. It can handle testing on as many as 2,000 devices. There's also memory and performance tracking so you can make sure your app is production ready.
Next, Xamarin University is a full set of more than 80 courses plus guest lectures devoted to Xamarin development. You can join live or watch recordings of previous courses. You'll also have unlimited access to the courses as well as a handful of one on one office hours that you can take advantage of. The Xamarin component store is a one stop shop for components that will easily fit into your apps with features such as authentication or a connection to Microsoft Azure. Browse right from Xamarin studio, and instantly download and incorporate various components.
Now, you'll have a couple of options when choosing to write an app with Xamarin. Your first option is to choose their native offerings. Xamarin.Android and Xamarin.iOS. As mentioned, these compile down to completely native code. Your app will look and feel native. The Xamarin team also have made a point of keeping their code up to date with the latest changes. In fact, they ship same day support for iOS five through eight, but there are a few drawbacks. You'll have to write fairly individualized front ends for iOS and Android. You can still use a common library, and we'll talk more about your options in a minute, but there won't be much reuse on the front end.
So, it's a good idea to choose the native Xamarin option if the app you're building will have any of the following. Interactions that require native behavior such as using material design. A highly polished design. Several platform-specific APIs or a very customized UI. Your other option is Xamarin.Forms which we'll be using in this course. This gives you access to five page types, seven layout types, and 24 controls which all compile down to standard controls on all three platforms.
You'll also be able to use XAML, MVVM, and two-way data binding which are likely familiar to you to build your app. It's a good idea to use Xamarin.Forms if you're creating an app focused on data entry, a prototype or proof of concept, less platform-specific functionality or code sharing. Now, you have two options for your shared code when you create a Xamarin app. You can use a shared project or a portable class library referred to as a PCL or occasionally as a Pickel. With a shared library there's no output assembly.
During compilation the files are considered to be part of the referencing assembly, and they're compiled into it. You'll also need to use compiler directives to separate which parts of your codes should be called for which platform. This can be a good thing, because you'll be able to add in specialized functionality in particular cases. A PCL on the other hand, is fully cross-platform. But because of that, there's only a subset of the .NET libraries available based on the profile that you're using. This isn't actually a big trade off. The subset that's available is the subset that's been optimized to work for mobile development, and is honestly a fairly thorough set.
We'll be using PCLs for our development in this course.
- Developing in F#
- Developing in Xamarin
- Developing in XAML
- Using Paket
- Creating an application
- Adding buttons and views
- Asynchronous workflows
- Adding a mailbox processor to an app
- Modifying the core code
- Adding a reply feature to an app