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.

September 18

Learn How The Lean Cook Uses Mobile to Drive Revenue and Promote Healthy Living

The Lean Cook, a popular UK diet and fitness blog started as a hobby by a husband and wife team, is a prime example of how to design apps for the user. Instead of simply replicating web content on a smaller screen, the team crafted an interactive shopping and cooking experience. They’ve grown a loyal following, and their latest project (available on Android and iOS) is already getting five-star reviews and overtaking established food personalities.

Today, Chris Foulds joins us to share how he, a first-time C# developer, launched the Lean Cook in just six months using Xamarin.Forms to share 90%+ code across platforms, with in-app upgrades, dynamic customization features, and more on the roadmap. 

Tell us a little bit about your company and role. Who are your customers?

We’re a new startup focused on the “lean revolution.” Popularized in the UK by “The Body Coach” Joe Wicks, the lean revolution focuses on fresh, healthy meals and smart exercise: eating the right things at the right time and changing your lifestyle. Our customers are anyone, of any age, looking for lean, flavorful versions of everyday recipes.

During our own lean transformation, my wife starting blogging and sharing her healthy creations,  and in the first year her website saw 850K+ visitors without any paid promotion. As a long-time software engineer, I’d spent the last four years as a freelance mobile developer, and I knew that a mobile app could take the website to the next level by creating a unique, fully interactive cookbook experience.

How long have you been building apps? 

I’ve been writing software since I was a teenager in the early 90’s, writing in 68k assembler for the Commodore Amiga. I graduated university with my degree in software engineering. Over the years, my career path took me into management.

In 2010, I decided to go back to actively working on projects, and I’ve been writing mobile apps ever since. I’ve written Android and iOS apps with native languages and tools (Java and Obj-C), and I’ve also used other frameworks, like Gideros and Unity.

I’d never programmed in C# before building the Lean Cook, but since I’ve written in various forms of C since the mid-90’s, there wasn’t much of a learning curve.

How did you get up to speed with cross-platform mobile development?  

After creating the basic design and requirements, I reviewed the Xamarin samples and just started writing, learning as I went along. I made wrong turns along the way, but that’s part of the learning process for me.

Lean Chef on Android (HTC)

Walk us through your app and what prompted you to build it. 

We built the Lean Cook app to be the best interactive cookbook possible. With it, users can search and find our recipes, make them as-is or make customizations own based on their needs and preferences, and upgrade to access more recipes and premium features.

It’s key for me to ensure that anyone can benefit from the app without purchasing a subscription; we include 75 free recipes and give one “premium freebie,” allowing users to try out subscription features, such as customizing ingredients for their nutritional needs, on one recipe before they commit to buy.

The three standout features that make The Lean Cook go beyond a mere recreation of our website to become an interactive recipe book are:

  1. Dynamic recipe sizes and nutritional information: Not only do we allow users to change amounts of certain (or all) recipe ingredients, we automatically recalculate the calories and macros for any altered recipe. Our users can quickly customize our recipes, making the version that best fits their personal nutritional goals. I haven’t seen any other app in our category offer this capability.
  2. Intelligent shopping lists: Most cooking apps allow you to add a recipe and its associated ingredients to a shopping list, but our app takes this one step further. As you add multiple recipes to your list, we intelligently identify ingredients from each recipe and allow you to see a combined grocery list, grouping ingredients across all recipes so you can quickly see what you need to buy to make all your saved meals.
    • For example, if one recipe calls for two tomatoes and another calls for four tomatoes, we’ll add six tomatoes to your grocery list. It seems small, but it’s a huge time saver, because instead of forcing users to skim lists for similar ingredients or realize ten minutes later that they need to return to the produce section for more tomatoes, they get everything they need in one shot, check out, and get on with their day.
  3. Interactive recipe steps: We’ve organized all of our recipes like task lists and, as users complete each recipe step (like chopping vegetables or mixing sauces) they can tap to mark the step complete, so they don’t get lost while cooking or forget critical steps. We call this “crossing off the method,” and it’s another way that we’ve taken advantage of mobile-unique capabilities, such as interactive screens to create a better user experience.

I think the entire application is exciting, but I may be biased!

How long did it take to ship your apps, from design to deploy?  

Lean Chef on Android (Nexus)

In total, it took about five months to write a completely release-ready app for Android (phones and tablets), iPhone, and iPad.

I wrote the majority of the app on my PC, focusing on Android as the lead development platform, before finally transferring to my MacBook Pro to finalize the iOS app to ship to the Apple App Store.

With Visual Studio Tools for Xamarin, and Xamarin.Forms specifically, I share nearly 94% of the code across Android and iOS. The evolving nature of Xamarin.Forms drew me to Xamarin, as I wanted to be able to write my UI once and have it work—and look and feel native—across platforms. To me, a native app is one that looks “at home” on a user’s device; no UI or interactive elements should be a jarring or unfamiliar experience. Delivering this level of quality is important to me, as I want our customers to instantly feel at home and comfortable with our apps, not fighting to understand the UI.

While I may have been able to write an iOS app in three months using Obj-C, I’d then have to start all over again, from the beginning, to build the Android version.

I was not only able to get both platforms out to users faster, I can now concentrate on developing and adding new features, rather than trying to maintain feature parity across platforms or managing two codebases. We plan to add new recipes to our existing packs every month, and we’ll roll out new recipe themes and authors (and associated free and premium recipe packs) with new app features timed with these monthly / quarterly content updates.

Lean Chef on iOS (iPhone)

What’s feedback been like so far? 

We’ve had amazing five-star reviews across the board, with a few of my favorites:

“Probably one of the best cooking/recipe apps to date. Lovely, healthy food … brilliant addition of being able to adjust the servings, making it great to cook for one or for 6. Oh, and the brilliant idea of adding items to a shopping basket and it totals all required items, so no miscalculations.”

“This app is so easy to use and has some brilliant features… the recipes are so varied and delicious and really helped me through The Body Coach SSS plan! Thank you 👍

“Can’t imagine life without this amazing app. Makes food planning so easy and such a mix of recipes that it makes choosing what to eat a joy.”

“Fantastic app, full of awesome recipes and lots of fab little add-ons like editing your own quantities”

My wife also loves the app (seeing her recipes “come to life” in her words), and she uses it herself to recook her recipes or make tweaks to existing ones. 

Outside of reviews, we saw 2K+ downloads within 24 hours of our launch, placing us #1 in the Food & Drink category for the day, and ahead of Jamie Oliver’s app! Since Jamie Oliver is one of the biggest food stars in the UK (and extremely popular around the rest of the world), seeing our app place ahead of his and other well-known personalities was an amazing feeling.

What are your future plans for the app?

Our strategy is two-fold. First, we’ll continue to grow The Lean Cook app, and we’re partnering with other prominent internet food personalities (chefs, bloggers, social media celebrities) to surface their content in it, making it a one-stop shop for anyone interested in healthy food.

Second, we want to expand the brand with additional health and fitness applications. As we’ve adopted this lifestyle, we’ve realized that thousands of people don’t use the existing apps how they’re designed to be used, but instead try to make them fit various needs. We’re not ready to share any details, but we’re aiming to create a suite of apps designed with users’ real needs in mind.

I’d also love to get international food writers to contribute to give the apps broader appeal, reaching users across the globe in addition to partnering with health bloggers in the UK.

What advice do you have for developers who are just starting out or investigating mobile development?

Choose something really small, like a simple 4–5 page application, and see it through to the end. You’ll be surprised how many hurdles you come up against and, if you’re committed to seeing the project to the finish line, figuring out how to overcome each challenge forces you to learn the most vital steps to successfully building mobile apps.
Visitxamarin.com/customersto learn how our customers across industries and geographies deliver amazing mobile apps, and visitxamarin.com/downloadto start building your own. 

The post Learn How The Lean Cook Uses Mobile to Drive Revenue and Promote Healthy Living appeared first on Xamarin Blog.

September 15

Xamarin.Forms: Tips for Beating the Learning Curve

As a first time user learning any new technology or pattern, there’s always a curve, and over the years I’ve stood at the threshold of a product and gazed up that curve to determine how painfully steep it appeared and how long it would take until I was productive. Now, as the Program Manager for Xamarin.Forms, I gather and receive a lot of feedback from first time users, and stand in a position of being able to offer some help.

I’ve curated some great resources to get you over the curve, from our documentation guides to Xamarin University training materials, blog posts, and more. Whether you’re new to Xamarin.Forms or a seasoned user, I think you’ll find something useful below.

Quick Index

The Giddyup: Prerequisites


What do I need to install?

Mobile development requires more than a few things before you can be productive, including mobile platform SDKs, an IDE, and some combination of emulators, simulators, and devices. These guides will get you going quickly:

Windows Installation
Mac Installation

Also check out this self-guided session from Xamarin University, Getting Started With Xamarin [XAM101].

Simplified iOS Development

We’ve been hard at work simplifying iOS development by introducing the Xamarin Live Player (currently in Preview 2). Xamarin Live allows you to code in Visual Studio 2017 and see your app immediately on device via the Xamarin Live Player app.

When you’re ready to compile and deploy your applications for iOS, or outgrow the Xamarin Live Player’s capabilities, you can connect to your Mac and use the Remote iOS Simulator for Windows.

Common First Questions


How do I navigate from one screen to another?

Xamarin.Forms screens are called Pages and use the base class ContentPage. Xamarin.Forms follows a stack concept and you push and pop from that stack. Before you can do that, you need a navigation stack. The easiest way to introduce one is to start your application with a NavigationPage.

Now, from within a ContentPage, you can simply use the Navigation service to push a new page onto the navigation stack:

MainPage = new NavigationPage( new FirstPage() );

await Navigation.PushAsync( new SecondPage() );

For more information about navigation, visit the guide here.

How do I lay out my content?

Xamarin.Forms supports several layout patterns, including Grid, StackLayout, AbsoluteLayout, and RelativeLayout. I recommend you learn to use and love the Grid, as it’s presently the most flexible and performant option.

For highly optimized layouts, explore creating a custom layout, where you can finely control aspects of the measure and invalidation cycles.

Check out our Xamarin University Self-Guided course on Layout in Xamarin.Forms[XAM135].

Awesomeness Alert! Some adventurous community members have recently taken exception to the long held opinion that Xamarin.Forms cannot create highly polished layouts:



How do I see my design?

You have a few options here. As the Xamarin Live Player gets better and better, it’s a great companion for live editing XAML in the text editor and seeing an instant rendering. A little tip: use an application like Reflector to mirror your device on your development machine.

Our designer team has also been making improvements to the Xamarin.Forms Previewer.

Where do I find _____ control?

Xamarin.Forms provides implementations of many native UI controls across each target platform. This concept of abstraction becomes more clear when you see the mapping of Xamarin.Forms renderers to native controls.

Still looking? Xamarin has a great ecosystem of third party and community controls to fill in the gaps and extend the platform. Spend a few minutes on your favorite search engine, GitHub, and searching NuGet.

Moving Beyond Basics


How do I customize a control?

Out-of-the-box Xamarin.Forms controls provide basic customization possibilities, and we provide doors for when you “hit a wall.” Here are your options:

Platform Specifics

When you need to customize a control for only a specific platform, you can implement a Platform Specific. A good example is one provided to adjust the font size of an Entry to fit the control width.


Effects are good for when you need to add a customization on each platform to a control, which may be useful across a variety of controls, and when you just need to modify a single property that isn’t currently exposed in the control abstraction. Some common examples are adding shadows or one from the Xamarin.Forms Community Toolkit that I often use to remove the border of an Entry.

Sign up for the live Xamarin University class Using Effects in Xamarin.Forms [XAM330] to learn more.

Custom Renderers

Creating a custom renderer gives you total control of the native platform control for design and behavior. This guide demonstrates creating a simple custom Entry renderer.

Custom renderers are also where you want to go when implementing a control that may not currently exist in Xamarin.Forms, such as a Floating Action Button. Xamarin University covers this topic, as well, for scenarios such as interactive graphs, a custom drawing surface, and more in the live session Xamarin.Forms Renderers [XAM335].

How do I use custom fonts?

While Xamarin.Forms makes a lot of cross-platform development smooth, and while setting font attributes is included, custom fonts require a bit more attention.

We use a custom icon font, WeatherIcons, in our Weather demo app. Once you have the font properly set up in the platform projects, using the font in XAML is pretty simple.

<Label Text="{Binding WeatherIcon}" FontSize="18" Grid.Column="0" VerticalTextAlignment="Center" TextColor="White">
        <OnPlatform x:TypeArguments="x:String">
            <On Platform="UWP" Value="/Assets/WeatherIcons.ttf#Weather Icons"></On>
            <On Platform="iOS" Value="Weather Icons"></On>
            <On Platform="Android" Value="WeatherIcons.ttf#Weather Icons"></On>

Where do I put my images?

Like fonts, managing images requires more effort. This is in part due to the way each platform handles images differently, and the variety of sizes and densities each requires or supports. This guide will show you where each expects to find images and how you can load them. When you place them in the right place, referencing them is as simple as <Image Source="waterfront.jpg" />. The platforms will find the image and deliver the proper density for the device.

How can I store data locally?

Each platform has a storage API that Xamarin.Forms exposes via Application.Current.Properties. This API is good for storing simple data.

As your storage needs become more complex, you’ll want to start exploring options like sqlite, Azure Mobile Apps, Realm + Azure, or any number of other options available.

Where do I get started with Push Notifications?

Azure Mobile Apps is a great option for Xamarin.Forms apps. The Azure documentation site includes an article on enabling push notifications in your app.

Other services such as Urban Airship provide components for Xamarin apps to enable use of their APIs.

How do I authenticate with ______ service?

This is fairly dependent on what the service is, but in general I recommend starting with the service’s component to see if they expose an API for authentication. Take a look at using Xamarin.Auth which has built-in authenticators for Google, Microsoft, Facebook, and Twitter. I’ve also used it to authenticate with the Strava oAuth service.

How do I inspect my app UI tree?

Visual Studio Enterprise license holders have access to the Xamarin Inspector for this very purpose! While this is our clear favorite and what we use, there are other commercial and open source projects out there for inspecting mobile apps.

Bonus: Additional “Stuff”

  • Checking connectivity is something you’ll probably bake into every mobile app, so check out the Connectivity plugin.
  • There are lots of good plugins out there to make cross-platform development easier. Check out this list and browse NuGet and GitHub to discover even more.
  • I love to promote and share useful resources, but it’s gonna be hard to top Xamarin University instructor Kym Phillpotts’ recent blog of Xamarin Tools and Resources.
  • Our performance guide is “recommended mandatory” reading.

Get Coding

I hope you discovered a few tips that are useful for you, and I encourage you to share your own discoveries as you begin the journey. If you happen to tweet something, please mention me (@davidortinau) so I can add it to my list and help share with others.

Discuss this post in the Xamarin Forums

The post Xamarin.Forms: Tips for Beating the Learning Curve appeared first on Xamarin Blog.

September 14

Xamarin All-Stars at .NET Conf 2017!

Join Xamarin Product Managers and Engineers at .NET Conf 2017, a free virtual event for any developer.

This year’s speaker line-up consists of all-star Xamarin speakers, including Miguel de Icaza, James Montemagno, and Mikayla Hutchinson, who will present on Xamarin tooling and the latest on what’s happening with Xamarin and related technologies.

What’s .NET Conf?

.NET Conf is a free, three-day virtual developer event co-organized by the .NET community and Microsoft. Developers can select from a wide selection of live sessions that feature speakers from the community and .NET product teams. This is your chance to learn, ask questions live, and get inspired for your next development project from these experts in the field.

Attend a Local .NET Conf Event!

If you’re unable to attend the conference in Stockholm, .NET Conf is partnering with organizers around the globe to bring you local, in-person events from September 19 through the end of October! Join your fellow developers in a city near you to learn more about .NET and the new .NET Core 2.0 release.

The post Xamarin All-Stars at .NET Conf 2017! appeared first on Xamarin Blog.

September 13

Get Your Apps Ready for iOS 11!

We’ve just updated our iOS 11 support to go along with the Xcode 9 GM Seed release. You can use this build along with the Xcode 9 GM to submit applications that take advantage of the new features in iOS 11, tvOS 11 and watchOS 4 to the Apple AppStore. We also have awesome new sample documentation for iOS 11 features!

Getting Started with iOS 11

Visit our Getting Started with iOS 11 guide to stay up-to-date on installation details, samples and the latest information on what’s new. Here is what you’ll need:

iPhone and iPad showing iOS 11

Augment your apps with iOS 11

iOS 11 brings some exciting new features to the platform. We’ve created a new section in our documentation for iOS 11 to make it as easy as possible to integrate those features into your apps. To get started, visit the Xamarin Developer Center and check out our iOS 11 Samples and Introduction to iOS 11. Here are some of the exciting new samples that are available:

  • ARKit – Create next-generation apps using the camera on the device to augment the world around you.
  • CoreML – Analyze problems directly on the device with new Machine Learning APIs available with CoreML.
  • Drag and Drop – Discover new ways to move images and more across your app or into another app.
  • MapKit – Improvements include a new compass view and easier ways to render custom overlays.
  • SiriKit – SiriKit now has additional intents for Payments, new support for lists, notes and more.
  • Vision – New image processing techniques directly in your apps including face and feature detection for images and videos.

Be sure to follow along with the Xamarin Release Blog for up-to-date information about known issues and other release notes.

Discuss this post in the Xamarin Forums

The post Get Your Apps Ready for iOS 11! appeared first on Xamarin Blog.

September 11

Xamarin.Android 8.0 Gets Even Sweeter with Oreo

Android 8.0 Oreo is by far the sweetest version of Android to date, with great new features including notification channels, notification badges, custom fonts in XML, downloadable fonts, instant apps, background limits, autofill, and picture-in-picture (PIP). We’re excited to announce Xamarin.Android support for Android Oreo in our latest release of Xamarin.Android for both Visual Studio and Visual Studio for Mac.

Installing Xamarin.Android for Android 8.0

You can get Android Oreo support inside Xamarin.Android and above, which is available today in the Visual Studio Preview channel and Visual Studio for Mac Beta channel.

Visual Studio

  • Open the Visual Studio Installer and download the latest Preview (15.4 Preview 2).

Visual Studio for Mac

Both Visual Studio and Visual Studio for Mac

Android 8.0 development requires JDK 1.8 for compilation of applications; JDK 1.8 is available from Oracle. See the requirements documentation for more information.

Install the Android Oreo SDK

Start the Android SDK Manager:

  • Visual Studio, use Tools > Android > Android SDK Manager
  • Visual Studio for Mac, use Tools > Open Android SDK Manager

Install Android 8.0(API 26) SDKs and Device Images:

Install the latest Android SDK tools, which are listed under Tools and include Android SDK Tools revision 26.0.2 or later, SDK Platform-tools 26 or later, and SDK Build-tools 26.0.0 or later:

For more information about using the Android SDK Manager to install the Android SDK, see Using the SDK Manager.

After restarting Visual Studio, you’ll be able to set your <TargetFrameworkVersion> to Android 8.0 (Oreo) in your project to take advantage of the new APIs:

If you do not see the new Android SDK Manager in Visual Studio 2017, you can install it manually from the Visual Studio Marketplace.

Want to know what features to start implementing first in your app? We have a full Introduction to Android Oreo guide that outlines the latest features, and we’ll continue to add more content over time. Here are a few of the stand out new features in action:

Autofill Framework

The new Autofill framework in Android Oreo makes it easier for users to handle repetitive tasks such as login, account creation, and credit card transactions, allowing users to spend less time re-typing information (which can also lead to input errors).


Android Oreo makes it possible for an Activity to launch in picture-in-picture (PIP) mode, overlaying the screen of another Activity. Currently, this feature is intended to be used for video playback.

Notification Badges

Android Oreo now shows notifications the user has not yet acted upon associated with one or more notification channels in an application. Users can long press on an application icon to see notifications associated with it.

Learn More

For more detailed information on how to get started with Android Oreo, please see our documentation.

We encourage your feedback on any issues to be filed as a bug. If you have any questions regarding Android Oreo APIs, please post them on the Xamarin Forums or Stack Overflow.

Discuss this post in the Xamarin Forums

The post Xamarin.Android 8.0 Gets Even Sweeter with Oreo appeared first on Xamarin Blog.

Podcast: Android Oreo Support, Xamarin Live Player Preview 2, New iOS 11 Previews, and more!

In this episode of the Xamarin Podcast, James Montemagno and I discuss all of the amazing new previews available to Xamarin developers, including Android Oreo, iOS 11, Xamarin Live Player, Xamarin.Forms, and more! We also discuss some exciting news with the Xamarin MVP Program and a new certification level for Xamarin developers. Be sure to download today’s episode from your favorite podcasting app.

Subscribe or Download Today

Keeping up with the latest in .NET, C#, and Xamarin is easier than ever with the Xamarin Podcast! Cohosts Pierce Boggan and James Montemagno cover topics relevant to Xamarin developers, from designing mobile apps to identity management. Be sure to subscribe to the Xamarin Podcast on iTunes, Google Play Music, Stitcher, or your favorite podcast app you use to ensure you don’t miss an episode.

The post Podcast: Android Oreo Support, Xamarin Live Player Preview 2, New iOS 11 Previews, and more! appeared first on Xamarin Blog.

September 7

Digitally Imported Delivers 10 Music Streaming Apps to Millions of Fans Globally

One of the first music streaming services and the #1 radio network for electronic music fans, Digitally Imported’s laser focus on UX and mobile quality helps them retain their competitive edge and keep users coming back for more. The team has grown from one developer and one app to a global team supporting five (near five-star) music genre apps, available on Android and iOS, and millions of users.

Today, we’ve invited Jo Friedman, DI’s VP Product Development, and Andrew Simpson, DI Mobile Architect, to share how their technology choices and mobile DevOps processes, including Visual Studio for Mac, Xamarin Test Cloud, and HockeyApp, free their extremely distributed team to collaborate, hand off work, ensure high quality with every commit, and release updates every two weeks.

Tell us about your company and your roles.

[Jo Friedman (JF)]: Digitally Imported creates 100% human-curated radio experiences, and our flagship product DI.FM has streamed electronic music to fans since 1999. In addition to DI.FM’s 90+ unique electronic music channels, as a company, we’ve expanded to even more music genres, and now offer five different streaming services (Rock, Jazz, etc.).Digitally Imported on iPhone

Our customers are music lovers who want to listen to the newest, best music in a “lean-back” radio experience. To make this possible, our staff and volunteer music enthusiasts (spread across the globe) sort through and select content submissions, so we play only the best music on each channel.

As DI’s VP Product Development, I manage and prioritize our development, UX, and QA teams for all of our web and mobile services, and I’m constantly identifying ways to enhance the listening experience and roll out new exciting features to our listeners.

[Andrew Simpson (AS)]: I’m a Mobile Architect, and my main role includes helping create technical requirements and implementation specs for new features, sharing and ensuring we uphold development best practices, and developing our apps alongside the rest of the team. We’re a small, fully remote team, split across eight time zones and ten countries, and we’re always improving our multiple apps: adding great new features that our users want or fixing any bugs.

[JF]: While I’m not a developer myself, I’ve worked on product management, user experience and product development teams for my entire professional career (20 years!), creating and bringing mobile apps to market since the earliest “smart devices” in 2000 (Palm Pilots, then pocket PC’s and J2ME or BREW devices, years before the iPhone).

[AS]: I’ve developed software professionally for over seven years. I instantly fell in love with programing in high school, and, after getting my Bachelor of Computing Honors degree, I joined a boutique app agency. I learned mobile development for BlackBerry OS 3.x (which was the “smartphone” at the time), and clients were soon requesting iOS and Android apps. It was a fairly small company, so I had to learn to develop native apps for each platform: a fantastic and challenging experience.

Tell us about your apps and what prompted you to build them.

[JS]: Our apps are all about enabling listeners to listen to the best music available in their preferred genre and style. We provide a very deep experience; I mentioned this before, but rather than offering everything and relying on users to find songs, our music is fully human-curated.

Music listening and mobile go hand-in-hand. Today, somewhere around 60% of all music streaming is done from mobile (Spotify for Brands report, 2016). We’ve seen a major shift over the last five years, with over 50% of our users currently experiencing DI for the first time via mobile. We have over nine million app downloads, and mobile accounts for a large percentage of our revenue.

Why did you choose Xamarin?

[JF]: In 2015, it became clear that we needed to develop Android and iOS apps for all of our music services, and to do it quickly, but our team was almost entirely web and backend developers.

Digitally Imported on AndroidOur one (very talented) mobile developer suggested Xamarin, because it would make the most of our small resource pool and allow us to share as much code as possible across platforms. Today, we’re actively developing five Android apps and five iOS apps with Xamarin, and we’ve grown the team considerably.

[AS]: While I wasn’t on the team, I started looking at Xamarin for this position, and immediately saw the appeal. I’d always loved native development; having 100% control over what you can do with the app and device is great. Even though it takes a lot of extra, duplicative effort to ship apps for both platforms, I’d found it worth it to get a great end product.

Xamarin was an easy win to me: I knew Obj-C, Java, and C#, and Xamarin gave us access to native features, while code sharing reduced the effort. Between a single platform (Android or iOS), we’ve architected our apps to be very similar, with only 10% of the “look and feel” code different across brands. But, Xamarin allows us to do something unique: share business logic across platforms. For reference, we currently share over 20,000 lines of code, or 40% of our total code for each platform, across all of our Android and iOS versions.

What does “native app” mean to you?

[AS]: An experience that tells you “this is a quality app,” not a mobile styled website. As a developer, this means: (1) uses core platform features to the fullest extent (2) properly takes advantage of built-in hardware and operating system frameworks and (3) renders a UX with smooth animations and instant UI feedback.

I used to think “native” equaled writing from scratch for each platform. Xamarin surprised me: full access to underlying OS features, just as if you were writing an Android app in Java. Every function and feature was there and ready to be used immediately.

We integrate with things like Bluetooth and create efficient media systems, and our customers appreciate our high quality audio. Not only are our users happy with the performance, other developers are surprised to learn that our apps aren’t “truly native” (i.e. written from scratch for each platform in Obj-C and Java).

How did you get up to speed with cross-platform mobile development?

[JF]: Most of our developers had some exposure to cross-platform mobile development before they joined the team, whether Xamarin or another platform. Regardless, getting up to speed has been very quick, and our new hires are typically productive within a few weeks.

In an extreme case, a Mobile Architect candidate learned Xamarin in seven days! We had a one week break between his initial technical interview and his hands-on lab exercise, and he went from no experience to coding his lab with Xamarin—successfully earning him the job!

[AS] … I wonder who that could be…

I have a history of learning new programming languages, starting with Java and C in University. I really cut my teeth on Java with BlackBerry; I still remember implementing String.Split() (it didn’t exist in in the early versions of BlackBerry’s Java). Around the same time, I learnt C#/ASP.NET to build our apps’ backend API services, and, from there, I taught myself Objective-C. I shipped my first professional iPhone app for iOS 3.1, and from there, I developed my first Android app (targeting Android Cupcake 2.3). I’ve also written Windows 10 and Windows Phone apps with C# and XAML.

Describe your development process.

Digitally Imported on Android 2[AS]: We have Mac and Windows users, based on personal preference, so we use Visual Studio Tools for Xamarin and Visual Studio for Mac. Architecting our codebase with Xamarin has helped increase code reuse and reduce duplicated effort.

We automate as much as we can. Our developers pull bugs or feature requests from our “inbox” stack and work on a separate branch, and every line of code must pass a round of peer review and QA before being accepted into the master branch. Once a developer thinks an issue is fixed, or the new feature is working, the pull request triggers a code review with another member of the team, and the original developer either gets the greenlight to move to QA, or makes any requested changes and kicks off another round of code review.

We’ve set up Xamarin Test Cloud to augment our manual QA processes; each push kicks off unit tests and UI test suites. Xamarin Test Cloud runs through the “important” user behaviors and stories for every app, and testing the same steps on many different devices, capturing screenshots, and seeing stack traces adds peace of mind.

At the same time, our CI server integrates with HockeyApp to build, upload, and distribute all five brands’ apps builds to our QA team to for internal alpha/beta testing on their devices.

If all tests pass, QA manually reviews to ensure features meet the expected deliverables and no bugs were introduced. Once the change has passed code review, automated testing, and QA, we merge into master.

After we’ve accumulated a fair amount of changes, we double-check the branch, and ship to our users, usually once every two weeks.

I’ve played around with the Visual Studio Mobile Center Preview, and I’m looking forward to having everything fully integrated.

How has Xamarin helped you get high quality experiences into your users’ hands?

[JF]: Xamarin helps us bring new features to market quickly. We’ve structured our team with iOS and Android specialists, with one specialist leading development for a new feature on one platform. While new features are ready for one OS first, the second developer already has 75% of the development work complete and can quickly build for the other platform. This saves time and uses our team’s resources efficiently, allowing us to deliver high quality experience to all of our users.

What have your users said about your apps?

[JF]: Our listeners love our apps, particularly: our channel diversity, ease of streaming, and our intuitive features.

We consistently get high ratings in both iTunes and Google Play, and this recent feedback summarizes what we hear fairly often:

“Perfect, curated music from all electronic genres. I use this predominantly over all other services, as I can be sure whichever channel I choose, usually trance and deep house, the content will be a divine blend of new and old, and never hear any annoying repeats.”

Harry A., June 13, 2017

[AS]: App quality is super important to us, and we pride ourselves on our highly rated apps (4.5+ stars). We always want our users who to have a great experience, and we work hard to make sure that we’re producing high quality apps.

Have you accomplished your goals?

[JF]: We’ve built a quality listening experience: beautiful, usable web and mobile apps across five music genres. This is a great accomplishment, but we’re always striving to meet new, bigger goals, from offering more music and new ways to listen to delivering better usability, performance and user experience.

We have many, many things that we want to build to create the ultimate listening experience. This will involve a much bigger focus on personalization…

[AS]: In addition to building new features, we’re planning to do more public betas. Today, we have a few savvy, invested users who are hugely helpful in testing our pre-release versions and making sure we’re ready for general release.

What advice do you have for mobile developers who are just starting out?

[AS]: The problem isn’t that there aren’t enough good resources, there are far too many good resources! From free university lectures to endless documentation from Apple and Google’s official websites to podcasts, free ebooks, and more. It’s easy to get bogged down, and think you need to know it all before writing your first line of code.

In my experience, being personally invested and interested in your project is the absolute best learning tool. From there, just try to build it. Obviously, when you’re just getting started, limit yourself to something small and achievable, but nothing helps me learn faster than trying to make something work. When I get stuck, I can go look for specific answer, solve my problem, and keep coding.
Visit xamarin.com/download to get started and explore xamarin.com/customers to get inspired.

The post Digitally Imported Delivers 10 Music Streaming Apps to Millions of Fans Globally appeared first on Xamarin Blog.

September 6

Live Webinar | Xamarin University Presents: Exploring UrhoSharp 3D with Xamarin Workbooks

Join me on Thursday, September 21 at 9 am PST for my upcoming webinar on using UrhoSharp 3D with Xamarin Workbooks, which combines what I like most: graphics programming and helping developers build better apps.


I love how graphics programming allows you to visualize something in your mind, and then see it on the computer screen. About 10 years ago, I was heavy into 3D programming in the Windows Presentation Foundation, and I had one of those visions: I saw a little two-lane highway in the form of a Möbius strip, with cars driving on the top, bottom, and sides. It looked great in my imagination, but I never found the time to code it.

Lately, I’ve been exploring UrhoSharp, Xamarin’s C# wrapper for the open-source Urho3D graphics programming framework, and the Möbius mental image came back. This time, I was determined to make it real.

Since I knew the math would be tricky, I needed a programming environment that made it easy to experiment and play around with my code. Xamarin Workbooks gave me exactly what I wanted; an immediate and interactive experience, where I simply type C# code into Workbooks and see the results on the screen.

With UrhoSharp and Xamarin Workbooks, my vision and my code came together:

Charles Petzold's Möbius car track

I’ll show you how to write the code to do this, share my advice for getting started, and I (and other Xamarin University instructors and mobile experts) will answer your questions.

Register now and join me on Thursday, September 21 at 9 am PST for a Möbiusly graphical 3D experience!
We encourage all registrants to attend the webinar live, as we will be answering questions throughout the event. However, we will share recordings with registrants after the session, so sign up even if you’re unable to join us at the scheduled time.

The post Live Webinar | Xamarin University Presents: Exploring UrhoSharp 3D with Xamarin Workbooks appeared first on Xamarin Blog.

September 5

Explore iOS 11 Previews Today

Since the announcement of iOS 11 at WWDC, we’ve been working on providing the new APIs as web previews with Xamarin.iOS from our releases blog. To help you get started building apps with the new iOS 11 APIs, we’ve put together an Introduction to iOS 11 guide covering new features in iOS 11. We’ll regularly update our iOS 11 content, so be sure to check back for new updates!

New App Store app added in iOS 11

iOS 11

iPhone using Vision framework
iOS 11 brings some exciting new frameworks to the platform. You can create augmented reality applications with ARKit. Apps can take advantage of machine learning, using CoreML to leverage trained models for solving complex problems. Coupled with the Vision framework, apps can recognize faces, text, and identify features in photos using free models from Apple. You can find more examples on our iOS 11 samples page.


Visit our Introduction to iOS 11 documentation for details on how to download the latest Xamarin tools to start supporting iOS 11 in your applications. You’ll need to install the latest Xcode 9 Beta from the Apple Developer Portal. We encourage your feedback on any issues be filed as a bug and let us know what APIs you want to see bound; you can keep up-to-date on our binding status page.

Discuss this post in the Xamarin Forums

The post Explore iOS 11 Previews Today 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.