Disclaimer: this is an automatic aggregator which pulls feeds and comments from many blogs of contributors that have contributed to the Mono project. The contents of these blog entries do not necessarily reflect Xamarin's position.

October 27

Live Webinar | Scale Your Mobile Quality: Industry Benchmarks and Testing Best Practices

Join Justin Raczak, Senior Program Manager at Microsoft, for a live webinar on November 10, 2016 at 9 am PST / 12 pm EST / 4 pm GST to learn how organizations everywhere are staying competitive by changing the way they think about mobile development. We’ll provide practical steps on how to evaluate your organization’s mobile practices so you can chart a course to become an industry leader.

Whether you’re a small startup whose entire business lies within your mobile apps or a large enterprise arming your workforce with productivity tools, the principles of a healthy mobile development culture are the same. Your people, processes, and tools must focus on facilitating continuous learning and rapid iteration as the means to consistently deliver first-class mobile experiences.

Justin RaczakWe’ve leveraged our experience in the field observing demonstrated best practices to develop a model for thinking about your own mobile practices. Justin will introduce the basics of the index and define characteristics of organizations at various stages of mobile maturity, so you can identify what your organization needs to do to achieve excellence in your mobile efforts. From teams just beginning to explore mobile app testing to those with established test automation practices, all attendees will leave with steps they can take today to begin their journey to mobile excellence.

Register now to join Justin on November 10, 2016 at 9 am PST / 12 pm EST / 4 pm GST and:

  • Explore why Mobile DevOps is critical to mobile success and how test automation unlocks even more value
  • Benchmark your organization’s quality culture, release cadence, test automation, and device support strategy using the Mobile Maturity Index
  • Learn how Xamarin Test Cloud supports Mobile DevOps and makes it possible to ship high quality mobile experiences faster



All registrants will receive the recording of the webinar, so we encourage you to sign up even if you can’t join us on the day of the event.

The post Live Webinar | Scale Your Mobile Quality: Industry Benchmarks and Testing Best Practices appeared first on Xamarin Blog.

October 26

Adding the Microsoft Graph to Your Xamarin.Forms Mobile Apps

The Microsoft Graph provides a unified API endpoint for access to various services like mail, contacts, calendar, files, and more. To help make it as easy as possible to interact with the Microsoft Graph in your mobile apps, Microsoft released the Graph SDK, which wraps these APIs into an easy-to-use SDK.

In a previous blog post, we walked through building a mobile app that consumed the Microsoft Graph using HttpClient. Today, you’ll learn how to build a mobile app that interacts with the Microsoft Graph using the brand new Microsoft Graph SDK.

Step 1: Register App

Previously, developers would need to register their mobile app on the Azure Portal. With the latest update, it’s now possible to register the app at https://apps.dev.microsoft.com. Click on Add an app on the page, give the app a name, and click Create application.


Once the app has been created, make a note of the App ID. It’s now time to request permissions for both our app and the user. In this sample, we’ll focus on the process of providing permissions to the user.


Once the application is created, it’s time to give it permissions. There can be permissions for the user as well as for the application. In this sample, we’ll be giving permissions to the user.


Step 2: Authenticate

To authenticate the user against Active Directory, we’ll be using the Microsoft Authentication Library (MSAL). Let’s start by declaring the required variables and scopes in our app’s App.cs file.

public static PublicClientApplication IdentityClientApp = null;
public static string ClientID = "3b1def2e-5b4e-413d-9a96-b8d8e9776029";
public static string[] Scopes = {
public App()
   IdentityClientApp = new PublicClientApplication(ClientID);
   MainPage = new HomePage();

AuthenticationHelper.cs is a helper class which fetches the AccessToken behind the scene and authorizes the requests.

graphClient = new GraphServiceClient(
         new DelegateAuthenticationProvider(
         async (requestMessage) =>
            var token = await GetTokenForUserAsync();
            requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", token);
return graphClient;

Step 3: Using the Graph API

Using the Graph SDK is pretty straight forward. The snippet of code below will fetch information about the user, which includes their calendar and contacts.

var graphClient = AuthenticationHelper.GetAuthenticatedClient();
var me = await graphClient.Me.Request().GetAsync();
UserName.Text = me.DisplayName;
UserRole.Text = me.JobTitle;
UserOffice.Text = me.OfficeLocation;
var calendar = await graphClient.Me.Calendar.Events.Request().GetAsync();
var evnt = calendar.FirstOrDefault();
EventsTitle.Text = evnt.Subject;
EventDate.Text = evnt.Start.DateTime.ToString();
var contacts = await graphClient.Me.Contacts.Request().GetAsync();
var contact = contacts.FirstOrDefault();
ContactName.Text = contact.DisplayName;
ContactEmail.Text = contact.EmailAddresses.FirstOrDefault().Address;

Remember, as each platform implements the authentication experience differently, using CustomRenderer IPlatformParameters can be passed separately.

The app will now display the details outlined above when it’s run.

Wrapping Up

The Microsoft Graph SDK makes it simple to consume Graph APIs in any .NET application, allowing us to add user data like mail, contacts, calendar, and files to our apps with a single unified API. You can find the fully functional sample used in this blog here and the SDK used is available here

The post Adding the Microsoft Graph to Your Xamarin.Forms Mobile Apps appeared first on Xamarin Blog.

October 25

Kickstart Your Project with Our New Bootstrapped Mobile Apps

Xamarin makes it fast, easy, and fun to build great mobile apps. Building a mobile app starts in the same place any other project does, with File -> New Project. With that in mind, we’re excited to share new cross-platform mobile apps for iOS, Android, and Windows 10 that will eventually become a part of the File -> New Project experience for Xamarin developers, but that you can use today to bootstrap your own cross-platform mobile app development.

Your feedback matters

We’re sharing these projects early so that we can incorporate your feedback into our upcoming templates. If you have ideas for how we can improve the apps, please let us know on the Xamarin Forums.

We’ll select one random Xamarin community member who leaves feedback to receive a free code for Continuous, a C# and F# IDE for the iPad.

Connected App Template

Try Out Bootstrapped Apps Today

You can try out the apps in just two simple steps:

  1. Download the bootstrapped apps.
  2. Open one of the four bootstrapped apps in Visual Studio.

Connected Mobile Apps

Many mobile applications also require cloud backends. The bootstrapped apps launched today also include “connected” versions of the apps that include a preconfigured cloud data storage layer with Azure Mobile Apps, complete with online/offline synchronization and automatic conflict resolution, as well as built-in support for five identity providers: Facebook, Twitter, Google, Microsoft accounts, and Azure Active Directory.

To try out the connected apps, you’ll need to have the Azure .NET SDK for Visual Studio installed. After that, you can configure cloud data storage and authentication and connect them to your app in just a few lines of code.

Don’t forget to leave your feedback on the Xamarin Forums fora chance to win a free copy of Continuous! We look forward to hearing your feedback.

The post Kickstart Your Project with Our New Bootstrapped Mobile Apps appeared first on Xamarin Blog.

October 21

Last Xamarin Dev Days of 2016

Xamarin Dev Days provides an easy way for you to learn mobile development for iOS, Android, and Windows in a free, full-day event complete with introductory sessions, live demos, and a hands-on workshop. We’ve seen a remarkable response from developers looking to dive into mobile development, with over 125 events in more than 40 countries, and sessions in 15+ languages!

As the year nears it’s end, we’re announcing the last round of events for 2016 and we’ve partnered with our experienced Xamarin MVPs, Microsoft MVPs, and community leaders to help bring Xamarin Dev Days to a town near you. Come learn about the power of building mobile apps with Xamarin and Microsoft Azure with your local developer community, and leave after building your first cloud-connected, cross-platform app to kickstart your next mobile project.


Last Xamarin Dev Days of 2016!

The following cities are now officially open for registration:

Xamarin Dev Days for 2016 are all announced, but don’t worry—there are still over 70 events happening around the world through December! Visit the Xamarin Dev Days website for a full list of cities, or use this interactive map to find an upcoming Xamarin Dev Days near you:

Want To Support Xamarin Dev Days?

Xamarin Partners and community members from all over the world are helping to support the Xamarin Dev Days series. If your company is interested in potentially participating in Xamarin Dev Days in the future, you can apply here to be a sponsor.

The post Last Xamarin Dev Days of 2016 appeared first on Xamarin Blog.

October 20

Mobile Leaders Podcast | Understanding the Uniqueness of Mobile DevOps with Roy Cornelissen, Xpirit

roy-cornelissenThis is the second episode in our Mobile Leaders podcast series, focused on helping you achieve success with your mobile initiatives faster through different perspectives and experiences from industry analysts, veterans, and mobile leaders from large and small organizations.

In today’s episode, join Steve Hall and I as we discuss the hot topic of Mobile DevOps along with special guest Roy Cornelissen. Roy leads the mobile competence at Xpirit, a consulting company focused on Cloud, Mobile, and Application Lifecycle Management based in Netherlands.

DevOps for mobile apps is unique and more challenging than for web. Device fragmentation, with hundreds of combinations of devices, operating systems, and screen sizes in play, makes it hard to ensure that your apps look, behave, and perform well for all users. Most teams think about getting apps to market and fail to consider the time and costs of maintaining apps and users.

Subscribe or Download Today

You can find the Mobile Leaders Podcast on SoundCloud and iTunes to download today’s episode,
Understanding the Uniqueness of Mobile DevOps with Roy Cornelissen, Xpirit. Don’t forget to subscribe to the podcast for new episodes over the next few weeks!

You can also listen to our first episode, Enterprise Mobility Trends – Where are things headed? With Maribel Lopez, Founder, Lopez Research here.

The post Mobile Leaders Podcast | Understanding the Uniqueness of Mobile DevOps with Roy Cornelissen, Xpirit appeared first on Xamarin Blog.

October 19

Create a Game with iOS 10 and Message App Extensions

iMessage App
With the release of iOS 10, Apple introduced an exciting new feature called Message App Extensions. This new extension type can send text, stickers, media files, as well as interactive messages and integrates with the Messages app, presenting new functionality for users.

Message App Extensions support different types of content that can be shared. One of the most exciting of these is “Interactive Messages,” which allows you to launch an app from Messages, create custom content, and then use the new Messages Framework APIs to send it in Messages. In this blog post, we’ll explore iMessage App Extensions by creating an interactive game named Monkey Tap.

Building Your First iMessage App Extension

Creating an iMessage App Extension is easy! Use the New Project wizard via “File -> New Solution” to start a Single View iOS App. Then, add another New Project to the solution by right clicking it in your Solution Pad. Under the iOS templates, select the Extension menu item and select iMessage Extension. The main difference between this and other extension types is that there is not a “container” app project; instead, the Message app we are creating itself acts as the container.



Message App Extensions introduce a new type: MSMessagesAppViewController. This acts a lot like what we’re used to, but introduces some message-specific items we need. For example, an MSConversation object is available that represents the conversation we’re in. This is useful so we know where to send a message. We can now create a new controller to handle displaying the score for the game, thereby allowing us to send the score to our recipient as a message.

public partial class ScoreViewController : MSMessagesAppViewController
	public override void ViewDidLoad()
		FinalScoreLabel.Text = string.Format("You scored {0}!", finalScore);
		// Set up the message layout
		MSMessageTemplateLayout layout = new MSMessageTemplateLayout()
			Image = UIImage.FromBundle("Monkey"),
			Caption = "Try and beat my score!",
			TrailingCaption = "" + finalScore,
			Subcaption = "MonkeyTap"
		// Create a new message with the above layout
		MSMessage message = new MSMessage()
			Layout = layout
		// Send the message when the button is tapped
		PostScore.TouchUpInside += (sender, e) =>
			conversation.InsertMessage(message, (Foundation.NSError error) =>
				if (error == null)
					// Handle successful send
				else {
					// Report Error
					Console.WriteLine("Error: {0}", error);
		PlayAgain.TouchUpInside += (sender, e) =>
			DismissViewController(true, null);

The interesting parts are still in ViewDidLoad. Here, MSMessage is created and being used to send the score. The Layout property accepts a MSMessageTemplateLayout. The properties handle what’s displayed:

MSMessageTemplateLayout layout = new MSMessageTemplateLayout()
	Image = UIImage.FromBundle("Monkey"),
	Caption = "Try and beat my score!",
	TrailingCaption = "" + finalScore,
	Subcaption = "MonkeyTap"

Here is what our iMessage App Extension looks like:

We’ll use another controller to handle the the game logic. This will capture any taps from the user and add them as a score.

public partial class GameViewController : MSMessagesAppViewController
	public override void ViewDidLoad()
		// As we are using a UIImageView, we need to detect taps with a UITapGestureRecognizer
		UITapGestureRecognizer tapGesture = new UITapGestureRecognizer((obj) =>
			// Game logic
		gameTimer.Elapsed += (sender, e) =>
			if (time.Equals(0))
				// Once we run out of time, stop the timer
				gameInProgress = false;
				InvokeOnMainThread(() =>
					ScoreViewController scoreVC = Storyboard.InstantiateViewController("ScoreVC") as ScoreViewController;
					// Pass the score and ActiveConversation to the next ViewController
					scoreVC.finalScore = score;
					scoreVC.conversation = ActiveConversation;
					ShowViewController(scoreVC, this);
					// Reset the labels
					ScoreLabel.Text = "Tap monkey to begin!";
					TimerLabel.Text = "Time: 0.0s";


That’s it! We’ve made a little game where the user can tap on the view and increase their score during the countdown. When it’s over, we compose a message to send to our recipient. This is where the MSConversation comes in handy.

conversation.InsertMessage(message, (Foundation.NSError error) =>
	if (error == null)
		// Handle successful send
	else {
		// Report Error
		Console.WriteLine("Error: {0}", error);

We’ve Only Scratched the Surface

We’ve just touched on some of what’s possible with these new extensions. If you’d like to learn more about this topic, check out the documentation. You’ll find more information about other available APIs, learn about Sticker Packs, group conversations, and more. You can browse the entire source code for the Monkey Tap project in this post.

The post Create a Game with iOS 10 and Message App Extensions appeared first on Xamarin Blog.

October 18

Xamarin.Forms Book Now Available in Easy to Digest Chapter Summaries

Creating Mobile Apps with Xamarin.FormsPeople learn in different ways. Some people like to learn a new API framework by reading a big book; for those people I’ve written Creating Mobile Apps with Xamarin.Forms with 28 chapters available as a free download to help you to get started building mobile apps for iOS, Android, and Windows today.

Other programmers—particularly those who have experience with similar frameworks—might prefer to accelerate the learning process. Generally, these folks can get much of what they need from API documentation and sample code; they don’t need massive books.

For this group of future Xamarin.Forms developers, I’ve written a summary (or abstract) of sorts for each chapter of the book. Each summary describes what’s in the corresponding chapter and contains links to the documentation for each of the APIs described in the chapter, links to the sample code from that chapter, links to related Xamarin.Forms guides, and a link to the full chapter itself.

These summaries allow you to learn Xamarin.Forms in a structured, brick-by-brick manner and a minimal amount of reading. You can also use the summaries to check if a particular chapter has information that you might need before consulting the full chapter for a more detailed exposition.

You’ll find the links to these summaries on the web page for the book. Each listed chapter (such as Navigation and MVVM) has links to both the full text in a PDF file and to the summary page. The summaries are also listed on their own page.

Consuming a 1,200-page Petzold book has never been easier and neither has learning Xamarin.Forms!

The post Xamarin.Forms Book Now Available in Easy to Digest Chapter Summaries appeared first on Xamarin Blog.


Monologue is a window into the world, work, and lives of the community members and developers that make up the Mono Project, which is a free cross-platform development environment used primarily on Linux.

If you would rather follow Monologue using a newsreader, we provide the following feed:

RSS 2.0 Feed

Monologue is powered by Mono and the Monologue software.