September 11, 2014

Android L and So Much More Webinar

By

The Android L Developer Preview introduced a plethora of new APIs for developers to take advantage of, including Material Design, notifications, and new animations, to name a few. l-dev-prevXamarin developers can already access these new APIs right now with our recently announced preliminary support in Xamarin.Android. With Google expected to release Android L fully this fall, it will be increasingly important to take advantage of these new APIs and get your app up-to-date.

Developer Evangelist James Montemagno walks through the top new and updated APIs in the release as well as the new features in Google Play Services, Support Libraries, Android Wear, and Android TV SDKs, in this recording of the webinar.

TwitterFacebookGoogle+LinkedInEmail
September 10, 2014

iOS 8 Bigger and Better with Xamarin

By

We are excited to announce that we have just released our support for all of the new APIs introduced in iOS 8.

We have added support for the just-announced Apple Pay API, so developers can integrate this new payment system into their iOS apps, continuing our streak ofios8-icon shipping same day support for iOS since iOS 5 and enabling developers to add the latest features to their iOS apps immediately.

This release is the perfect companion to the iOS 8 GM developer release so you can start submitting apps to the App Store that take advantage of the new iOS 8 APIs.

To ensure you get the most out of these exciting changes in iOS 8 using Xamarin and C#, we’ve created an extensive set of resources to help you get started:

iOS 8 Samples

First off we have plenty of new iOS 8 samples that provide examples of using updated iOS features in Xamarin and C#

App Extensions

app-extensions-iconExtensions allow applications to deliver functionality throughout the system. Applications can now offer such things as today widgets that live on the notification screen, custom keyboards and sharing extensions to name just a few of the new ways to reach beyond the application itself.

TouchID Authentication

touch-id-iconTouchID allows applications to tap into the authentication capability of Apple’s biometric touch sensor.

PhotoKit

photokit-iconPhoto Kit is a new framework that allows applications to query the system image library and create custom user interfaces to view and modify its contents.  For an example of using the PhotoKit framework in Xamarin, see Mike Bluestein’s Build Great Photo Experiences in iOS 8 with Photokit blog post.

Manual Camera Controls

camera-api-icon

The AVFoundation Framework has been enhanced to offer many features that developers can use to deliver professional camera applications, including the ability to control the camera at a low level, with direct access to such things as exposure and focus.

HealthKit

healthkit-iconHealthKit provides system-wide health API that applications can use to store and query a vast amount of health data provided by other apps and accessories.

HomeKit

homekit-iconHomeKit is a home automation API that allows iOS applications to control devices within the home. It brings home automation capabilities to third party applications, extending the reach of such functionality beyond the device makers themselves.

CloudKit

cloudkit-iconCloudKit allows applications to deliver server-based authentication and storage all from a client side API that is available out of the box to iOS 8 users.

Document Picker

document-picker-iconThe document picker provides a mechanism for applications to access documents beyond the applications sandbox in a consistent manner.

Handoff

handoff-iconHandoff allows applications to deliver seamless experiences between OS X and iOS, letting users pick up in an application on one platform right from where they left off on the other platform.

Unified Storyboards

unified-storyboards-iconUnified Storyboards allow a common design-time experience to create user interfaces that works across a variety iOS devices and screen sizes.

SceneKit

scenekit-iconSceneKit is a 3D scene graph API that makes integrating 3D content into your application and causal 3D games a breeze. For an example of using the SceneKit framework in Xamarin, see Mike Bluestein’s Lights, Camera, Action – 3D in iOS 8 with Scene Kit blog post.

SpriteKit

spritekit-iconSprite Kit, the 2D game framework from Apple, has some interesting new features in iOS 8 and OS X Yosemite, including integration with Scene Kit, lighting  and physics enhancements.. For an example of using the SpriteKit framework in Xamarin, see Mike Bluestein’s New Sprite Kit Physics Features in iOS 8 blog post.

Installing Xamarin.iOS for iOS 8

Windows users with Visual Studio, in addition should:

  • Switch Visual Studio Xamarin Updater Channel to “Beta”.
  • Install the Visual Studio extension update.

You can browse our entire API change log and release notes to find out the latest features released today with Xamarin.iOS 8.0 and the new iOS 8 APIs.

Get Ready for iOS 8 Webinar

Xamarin Developer Evangelist Mike Bluestein provides an overview of the top new and updated APIs in iOS 8 in this pre-recorded webinar. View it now to incorporate all of these great new features into your app.

TwitterFacebookGoogle+LinkedInEmail
September 9, 2014

Get Ready for iOS 8 with Xamarin Webinar

By

iOS 8 iconOn September 17th, iOS 8 will launch with over 4,000 new APIs, making it one of the largest iOS releases ever. Xamarin developers are already able to take advantage of our iOS 8 support, currently in the alpha channel, to start developing with App Extensions, TouchID Authentication, PhotoKit, HealthKit, HomeKit, and so much more.

Xamarin Developer Evangelist Mike Bluestein provides an overview of the top new and updated APIs, and how to incorporate all of the great new features into your app, in this previously recorded webinar here.

TwitterFacebookGoogle+LinkedInEmail

Xamarin Evolve 2014 Speaker Spotlight: Jonathan Peppers

By

This is the third post in our Xamarin Evolve 2014 “Speaker Spotlight” series, helping you get to know a little bit more about some of the amazing speakers who will be contributing at this year’s conference.

Photo of Jonathan PeppersToday we’re highlighting Jonathan Peppers, a Xamarin MVP and the lead developer on the MonoGame title, Draw a Stickman: EPIC, winner of two Webby awards for best mobile game and people’s choice for best tablet game. He leads the app development department at Hitcents, a Xamarin Premier consulting partner, and has worked on other successful apps such as The Harlem Shake, Battlepillars, and even the Xamarin Field Service sample app. You can catch Jonathan at Xamarin Evolve giving the talk, “If You Can Ship Your app in China, You Can Ship it Anywhere: In-App Purchase, Piracy Protection, Localization, Culturalization, and More.”

Why did you get into software development?

I’ve always enjoyed computers and playing video games. I started a degree in Computer Science hoping to work on video games some day, but I still enjoy programming in general. In my day job, I’m lucky enough to work on games and interesting apps.

How long have you been doing mobile development?

I’ve been doing mobile development since 2010, when MonoTouch came out. We had to build an iOS app, and we could not stomach Objective-C.

What are your favorite open source libraries, and why?

quotation markI ALWAYS FIND MYSELF USING JSON.NET IN EVERY PROJECT. MY OTHER FAVORITE LIBRARIES ARE MODERNHTTPCLIENT, APPROVALTESTS, AND RAYGUN.

ModernHttpClient is a solid improvement for any web service-based app. ApprovalTests is a great way to think about unit testing, and I always use it for certain types of unit tests. Raygun has helped us on every project we’ve used it with; getting real time error reports is invaluable with mobile apps.

What is the biggest lesson you’ve learned?

My best learning experience was with the first cross-platform app I was involved in developing. Learning techniques for code sharing in cross-platform applications is useful, but can be difficult to wrap your head around. There wasn’t a lot of information out there at the time, since Xamarin was so new.

What devices are you carrying around with you right now?

I have an iPhone 5S and a Macbook Pro that is always in my bag. I used to carry around an iPad as well, but that has become my wife’s full-time “computer”.

What are you doing when you’re not doing mobile development with Xamarin?

I enjoy spending time with my family and playing “nerd games” like Hearthstone and Magic: the Gathering.

If you missed our first two posts, click through to read about Jesse Liberty and Jon Skeet.

TwitterFacebookGoogle+LinkedInEmail
September 8, 2014

Evolve Countdown iOS 8 Today Widget

By

Count down how many days until Evolve from the iOS 8 notification screen using a Today Widget:

today extension

iOS 8 introduces a variety of extensibility features called extensions. Extensions allow applications to offer user experiences throughout the system in ways that were not available previously to third party developers.

With app extensions, applications can now offer features such as custom keyboards, content sharing, and photo editing to name just a few of the new ways to provide system-wide functionality.

Today Widgets

One type of extension is called a Today Widget, which is an extension that lives on the notification screen along with the widgets provided by Apple. This is a great place for an application to offer updated data for people to consume at a glance without having to open the application. Scenarios involving sports scores, package trackers and news headlines make for good Today Widget use cases.

Evolve Countdown Widget

Let’s take a look at a Today Widget that displays the number of days until Xamarin Evolve 2014.

Widgets are created using an Extension Project template under the Unified API project templates, as extensions are required to support both 64 and 32 bit architectures.

extension project templates

You don’t create a stand-alone extension, rather it must be created and referenced from a container application. In this case, I created a small app that displays the Evolve website in a WKWebView and then added the extension project as a reference.

container project

There are a few configurations that need to be set in the Info.plist for the extension:

extension info plist

In this case, I included a button in the extension that, when tapped, will launch the app so the app registers a custom url scheme as well:

custom url scheme

To create the extension, I designed the UI in a storyboard with a UIImage, UILabel and UIButton respectively. Note, since the unified API is required, use Xcode to wire up controls to code (code generation support for the Xamarin designer will come in a future release).

The notification center determines the frame for the extension. The best way to control the layout of controls is using auto-layout, which is what I used here.

Adding the Extension’s Code

A today widget is just a view controller. Therefore, the code is implemented much like other view controllers, as shown below:

public override void ViewDidLoad ()
{
  base.ViewDidLoad ();
  PreferredContentSize = new CGSize (PreferredContentSize.Width, 55f);
  var evolveStartDate = new DateTime (2014, 10, 6);
  var numDays = (evolveStartDate - DateTime.Now).Days;
  WidgetTitle.Text = String.Format ("{0} days until Evolve", numDays);
  WidgetButton.SetTitle ("Tap here to register", UIControlState.Normal);
  WidgetButton.TouchUpInside += (sender, e) => UIApplication.SharedApplication.OpenUrl (new NSUrl ("evolveCountdown://"));
}

When the application is deployed, the user will have the option to include the widget in the notification screen:

include today extension

After adding the widget, tapping the butting results in the app opening, thanks to the custom url scheme it registered:

container app launched

Extensions like Today Widgets allow applications to deliver experiences that only for Apple could provide in the past, so it’s great to see this added flexibility come to iOS.

Join me at Evolve to discuss this and many other exciting new iOS 8 features!

The code from this post is available here.

Discuss this blog post in the Xamarin Forums

TwitterFacebookGoogle+LinkedInEmail

Xamarin.Android Garbage Collection Improvements

By

Mobile operating systems continue to evolve year over year, delivering great APIs for developers to integrate into their apps to create delightful experiences. However, a side effect of this is that the size of the mobile apps that developers are creating on Xamarin is growing. When we designed Xamarin.Android, our Garbage Collector integration was built to handle small to medium sized apps.

Garbage-Sorting-RobotIn large applications this integration, also known as the GC Bridge, was brought to our attention as a source of longer than expected pauses. We took time to dive into the problem and remedy it by introducing two new bridge modes in Xamarin.Android 4.14, currently in the stable channel.

The GC Bridge is responsible for bringing two worlds together: Java and C#. It takes care of the objects that exist on both sides, such as Activity, and makes their lifetime correct for both the Java garbage collector and Mono’s.

Let’s take a look at a benchmark test that creates objects and randomly connects them, which is similar to deep object models we’ve seen in real world apps.

GC Performance 1

As you can see, performance improvements in the new GC bridges are quite drastic. Performance improves 2x to 10x between what we used to get with 4.12 and the new Tarjan mode.

The GC Bridges

Before diving into more details and performance benchmarks, I want to take a moment to describe the different GC Bridges.

    • Old – The default implementation, considered the most stable of the three. This is the bridge that an application should use if the GC_BRIDGE pauses are acceptable.
    • New – A major overhaul of the original code, fixing two instances of quadratic behavior but keeping the core algorithm, based on Kosaraju’s algorithm for finding strongly connected components.
    • Tarjan – A completely new design of the GC Bridge based on Robert Tarjan’s algorithm and backwards reference propagation. It does perform the best under our simulated workloads but has a larger share of experimental code.
    • You can learn more about the Garbage Collector in Xamarin.Android in our Android documentation.

Better, Faster, Stronger

Let’s take a look at a few more performance benchmarks to really see how these new GC Bridges increase the overall app performance.

GC Performance 2

This second benchmark simulates the case where a very popular object is referenced by many objects, which happens frequently when the GUI has lots of callbacks to a central backend object. As you can see, it’s not just faster, but scalable, as the number of incoming links barely affects performance.

GC Performance 3

This last benchmark creates a structure where half of the objects point to a single object that in turn points to the other half of the objects. It’s not common in practice, but it shows how both new bridge modes are necessary – each one shines when used on different workloads, which can only be discovered by trying both.

Enabling this new functionality is as easy as adding an environment.txt file to your project with the BuildAction set to AndroidEnvironment. Then you can specify which GC_BRIDGE option your application should use by passing bridge-implementation=old, bridge-implementation=new, or bridge-implementation=tarjan to the MONO_GC_PARAMS environment variable. Here is an example:

MONO_GC_PARAMS=bridge-implementation=tarjan<br />

Enabling Garbage collection

Our awesome documentation explains in detail how to enable the new bridges so you can make your apps more responsive today.

Learn More

Xamarin Evolve 2014 banner with dates (October 6-10) and location (Atlanta, Georgia)To learn even more about GC Bridges, be sure to join me at Xamarin Evolve 2014, where I will be deep diving into GC and performance on both iOS and Android during multiple sessions.

TwitterFacebookGoogle+LinkedInEmail
September 5, 2014

Xamarin at the Top of the Visionary Quadrant in Gartner’s Report

By

We are honored to be recognized by Gartner as a Visionary for the second year in a row in their recently published 2014 Gartner Magic Quadrant report for Mobile Application Development Platforms.

As mobile development becomes critical to the success of all businesses, Gartner acknowledges the rapidly growing market for mobile application development by assessing, “major vendors that enable enterprise IT developers to create mobile applications for customers, partners and employees.” We are excited to be recognized for a second year out of just 20 companies selected for the report overall, and to be one of only three to be selected as Visionaries.

In assessing Xamarin, Gartner called out some of our strengths, including:

“Xamarin addresses an untapped market need: C# developers who want to apply their skills to mobile, while delivering fully native user experiences and application performance.”

Xamarin continued to build a significant presence in the enterprise market, as well as has built a growing partner ecosystem…both in terms of strategic partnerships, such as with Microsoft and SAP, as well as a significant pool of implementation and channel partners.”

We are thrilled to have achieved this recognition as a three-year old company, as it’s a strong indicator that we are succeeding in our goal to help you transform your customer relationship and business processes through mobile technology.

To find out why Xamarin is a visionary in mobile application development, download Xamarin today.

TwitterFacebookGoogle+LinkedInEmail
September 4, 2014

Xamarin Evolve 2014 Speaker Spotlight: Jon Skeet

By

This is the second post in our Xamarin Evolve 2014 “Speaker Spotlight” series, helping you get to know a little bit more about some of the amazing speakers who will be contributing at this year’s conference.

Jon SkeetToday’s featured speaker is Jon Skeet, who will present, “A Canon in C#,” in the Xamarin Platform track at Evolve. Jon is a software engineer at Google in London, but outside work his passion is for C# and its community, which is why you’ll often find him writing about it in his blog, books or on Stack Overflow. He loves twisting the language in knots, often to the horror of those he’s presenting the code to…but never for production code, of course.

Why did you get into software development?

I started programming when I was around 8 or 9. My first “big project” was writing a Logo interpreter for the ZX Spectrum, a few years later – we had Logo on the BBC Micros at school, and I wanted to play with it at home… so I learned trigonometry from the Spectrum manual, and built a Logo interpreter. I didn’t know that it was a far bigger project than I should have been taking on. Since then, it’s been clear to me that that’s what I would do.

What are you doing when you’re not doing mobile development with Xamarin?

My “day job” is a software engineer at Google, and “on the side” I write and speak about C# (in my blog and books, user groups and conferences), code in C# (primarily for my Noda Time date/time API) and answer a lot of questions on Stack Overflow.

What will attendees get out of your talk?

Passion and an appreciation for just how many smart people are doing amazing things with C#, whether that’s in terms of language design, infrastructure, libraries or applications.

What is your favorite platform to develop for and why?

quotation markI LOVE BUILDING LIBRARIES RATHER THAN APPLICATIONS – THERE’S A SORT OF PURITY ABOUT IT, AND THE FEELING THAT YOU CAN HELP OTHER PEOPLE BUILD GREAT APPS.
Either that, or you could put it down to a lack of imagination.

But definitely C#…

What are your favorite open source libraries, and why?

Noda Time, of course – it’s certainly the one I’ve got most out of, being the main author. Open Source is a fabulous way to really hone your API design skills, and learn more about a domain that you might not otherwise see much of.

I really like Json.NET as well. Easy to use, gets the job done.

What is your favorite line of code that you have ever written?

Probably this:

for (Dog dog = animal as Dog; dog != null; dog = null)

… mostly because the wonderful Eric Lippert said it was, “the best abuse of C# I’ve seen in a while.”

It’s a way of executing a block of code if a variable value is actually of a particular type using the “as” operator, but without polluting the outer scope with an extra variable.

I enjoy *deleting* code even more than writing it though. There are few things as satisfying as refactoring code to be simpler, shorter, more coherent and more efficient.

Our first Xamarin Evolve 2014 Speaker Spotlight, with Jesse Liberty, can be read here.

TwitterFacebookGoogle+LinkedInEmail
September 3, 2014

Xamarin Evolve 2014 for the Enterprise Developer

By

Miguel de Icaza at the Xamarin Evolve 2013 KeynoteXamarin is helping thousands of companies turn their mobile strategy into a reality, and Xamarin Evolve 2014 has a number of excellent sessions designed specifically for the enterprise developer building employee-driven apps.

Prior to joining Xamarin as Director of Product Marketing I was Senior Director of Mobile and Cloud Solutions at Avanade. I helped many customers write and deploy their first mobile apps; many of the lessons learned and crucial information to succeed in enterprise mobile app development are in this year’s Evolve sessions.

To help you convince your boss, I’ve highlighted the best training tracks and conference sessions for building enterprise apps.

Xamarin University at Evolve 2014

Xamarin University LogoWe are close to selling out the Training portion of Xamarin Evolve 2014, which is two days of comprehensive hands-on training, so you’ll want to register right away. For both new and experienced this developers, this is a great way to quickly ramp up and dig into code.

Conference Sessions

Training is followed by 3 days of conference sessions delivered by Xamarin and industry experts from Microsoft, Salesforce, Amazon, GitHub, Couchbase and more. Talks you’ll want to prioritize include:

Xamarin Platform

  • Getting the Most from Visual Studio for Mobile Development, Daniel Cazzulino & Victor Garcia Aprea, Visual Studio experts and the co-founders of Clarius Consulting, recently acquired by Xamarin
  • The Future of C#, Mads Torgersen, Microsoft

Cross-Platform

  • Patterns for Building Cross-Platform .NET Apps, Daniel Plaisted, Microsoft
  • Evolving From Web to Mobile Apps With Xamarin, Jesse Liberty, Falafel Consulting
  • Your First Xamarin.Forms App, Craig Dunn, Xamarin
  • Xamarin.Forms is Even Cooler Than You Think, Charles Petzold, Xamarin
  • Extending Xamarin.Forms With Your Own Controls and Layouts, Jason Smith, Xamarin

Enterprise

  • Building a Modern DevOps Solution For Your App, Brian Randell, Partner at MCW Technologies and Visual Studio ALM MVP
  • Mobile for the Enterprise: Architecting Authentication, Security, and Extending Existing Systems, Steven Yi (me), Xamarin
  • Panel: Mobile Security Best Practices, moderated by Xamarin’s Director of Enterprise Mobility, Steve Hall, with representatives from the top mobile security companies including Airwatch and others soon to be announced
  • Build Apps Faster with an Enterprise Component Library, Steve Hall, Xamarin
  • Keeping Apps Relevant: Deployment, Support and Management Best Practices for Your Enterprise Mobile Apps, Greg Truty, Distinguished Engineer and Chief Architect, IBM
  • The Future of Mobile in the Enterprise, Michael Facemire, Principal Analyst, Forrester

Testing

  • Find Bugs Before Your Users Do With Xamarin Test Cloud & C#, Rasmus Kormann-Larsen, Xamarin
  • Using Continuous Integration with Xamarin Apps, Greg Shackles, Xamarin MVP and Senior Engineer at Olo

Cloud & Partner Integration

The Xamarin partner ecosystem is also rapidly growing with ready-to-go libraries integrating into cloud, SaaS, and mobile backends. This year’s Evolve will include speakers from Salesforce, Microsoft Azure, Amazon Web Services, Couchbase, and IBM.

One-on-One Sessions

One-on-one session at Xamarin Evolve 2013In addition to all of the great training and conference content, you can schedule one-on-one time with the Xamarin Engineering team to help you debug your code, provide architecture guidance, and answer questions about UI design, platform-specific issues, and performance management. The complete agenda also includes a whole range of other topics including emerging devices and wearable computing.

Register Today

As you can see the lineup of speakers is impressive. I’m most looking forward to the keynotes and ground-breaking product announcements delivered by co-founders Nat Friedman and Miguel de Icaza, as well great sessions from Jason Smith, the lead developer of Xamarin.Forms, and Rasmus Kormann-Larsen, who leads development of the Xamarin Test Cloud automation framework that powers the 500+ devices running in Xamarin Test Cloud.

I’m also really looking forward to hearing from Charles Petzold and Jesse Liberty – authors and living legends in the software industry. I still remember poring over their books earlier in my career when I was getting my head around the latest in C# and .NET development.

You’ll notice that I have a session in there too. It’s a tall order to be in this speaker lineup, so I’m already heads down preparing.

Register now to transform your enterprise mobile career and projects and I look forward to meeting you in Atlanta!

Register Now

TwitterFacebookGoogle+LinkedInEmail
August 29, 2014

Xamarin Evolve 2014 Speaker Spotlight: Jesse Liberty

By

Xamarin Evolve 2014 is only a month away, and we couldn’t be more excited for all of the amazing talks we have lined up for you this year. We have some of the top mobile development experts from around the world coming to Atlanta, Georgia, October 6th-10th, so we thought we’d take a look behind the brilliant code and get to know this year’s Xamarin Evolve 2014 speakers a little bit better. We’ll be sharing these spotlights for the next month leading up to the conference; we hope you enjoy getting to know this year’s speakers before you meet them in person in October!

First in the series is Jesse Liberty, who will present, “Evolving From Web to Mobile App with Xamarin,” in the Cross-Platform track. Jesse is a Master Consultant for Falafel Software, Jesse Libertya Microsoft MVP, an author, and he creates courses for Pluralsight. He hosts the popular, Yet Another Podcast, and his blog should be considered required reading. He was a Senior Evangelist for Microsoft, a XAML Evangelist for Telerik, a Distinguished Software Engineer at AT&T, Software Architect for PBS, and Vice President of Information Technology at Citibank.

Why did you get into software development?

quotation markSOFTWARE DEVELOPMENT IS THE ONLY WORK THAT I’VE DONE WHERE I CAN SIT DOWN AT 7 AM AND GET UP AT 7 PM HAVING BEEN TOTALLY ABSORBED AND NEVER BORED.

What is the biggest lesson about mobile development that you’ve learned?

It is imperative to understand the expected user experience on each individual platform.

What are your favorite mobile apps and why?

The Kindle and Audible apps have transformed the way I read books. Evernote has become an extension of my memory. Waze has improved my travel as has Tripit. And Shazam/Soundhound is just magic.

What will attendees get out of your talk?

My hope is that attendees will get a new perspective on Xamarin as a way to transition from web through hybrid to native development.

What are you looking forward to most at this year’s Evolve?

While I’m very much looking forward to many of the presentations, it’s the hallway conversations I most look forward to.

What are your favorite open source libraries, and why?

I’m growing increasingly fond of Xamarin Forms Labs as a wonderful extension of Xamarin Forms. Of course, JSON.NET is a life saver and there are many others as well.

TwitterFacebookGoogle+LinkedInEmail