Hello From the Xamarin Docs Org!

Hi all, Bryan Costanich here, director of education at Xamarin. I’m totally stoked about what we’re doing with documentation and developer education here at Xamarin, and I want to take you backstage and show you what we’re up to.

AnDevCon II

First things first, next week Wally McClure (one of the co-authors of the MonoTouch book published by Wrox) is giving a talk at the second annual AnDevCon in San Francisco (November 6th-9th) on Mono for Android. Wally’s talk should be awesome, as they always are. Also, Xamarin will have a booth setup there, so if you’re at the convention, come by and say “hi.” Joseph Hill and I will be hanging out.

Training

In addition to AnDevCon, I’m really excited to announce that a couple major training partners have created training based on the Xamarin platform:

  • AppDev has a great new MonoTouch course created by Wally McClure, you can find it here: AppDev.com. Additionally, AppDev has created a slew of video training courses that cover both MonoTouch and Mono for Android which can be found at LearnMobileNow.com.
  • Pluralsight has created a number of courses both for MonoTouch and Mono for Android. You can find them at Pluralsight-Training.net. Additionally, they’re going to be delivering some new training based on iOS 5 in MonoTouch by John Sonmez.

These are really great ways to learn how to write iOS and Android apps, and we’re really proud to have Pluralsight and AppDev in our community.

A View into the Edu Org

Next up, I wanted to give a glimpse into what we’ve accomplished so far, and some of what we have in store for you.

When I signed on at Xamarin, Nat Friedman, our CEO, told me that he wanted the “best doc experience in the industry.” That’s a pretty high bar, as there are some fantastic doc experiences out there. But it’s also a noble goal. The heart of building a successful platform is getting people to use it, and a key to that is providing a path to learning it.

To that end, we’ve been working at break-neck speed at Xamarin to improve our doc story. Some of the things that we’ve been able to accomplish are:

  • Brand New Docs Portaldocs.xamarin.com is the new home of all documentation things Xamarin. We’ve unified the myriad of MonoTouch, Mono for Android, and Mono sites into a single place to find our content.
  • Lots of New Awesome Guides – The first steps with a new platform are always the hardest. Trying to get the lay of the land and figure out how things are done can be daunting without guidance. For MonoTouch, we’ve got a new Getting Started series that goes from a ground-up introduction to MonoTouch through building iPhone and iPad apps using it. Along the way we cover the MVC, the IDE, the SDK, etc. It’s a great series and we’ve had a ton of positive feedback on it. Additionally, we’ve written and published a ton of other guides. We even launched an Introduction to iOS 5 guide on the very day Apple released iOS 5 to the public.
  • Great Hires – It’s impossible to build an amazing team without amazing hires, and we’ve been really lucky on that front. We’ve picked up some amazing writers; Chris Hardy, Mike Bluestein, Craig Dunn, James Bentley, Warren Moxley, and a secret new hire that starts next week. Every single one of these writers has been tremendously influential and luminary in the Xamarin community – in fact, nearly every one has worked on a MonoTouch book! In addition to our killer writer lineup, we’ve got a great intern team, including Jérémie Laval, Alex Rønne Peterson, and Nina Vyedin. Jérémie and Alex have both been awesome Mono contributors that started out in the Google Summer of Code Program, and Nina builds robots.

We’ve also got a number of super awesome things that are coming down the pipe to look forward to, including:

  • Samples Gallery – Currently in alpha, we’re going to be launching a samples gallery very soon that will provide an easy way to find sample code and applications that illustrate how to do various things in MonoTouch and Mono for Android. And best of all, every sample is released via the MIT X11 license, which means that you’re free to use it however you want, even in your commercial applications! You can watch it evolve here, http://docs.xamarin.com/ios/Samples, as we iron out the bugs and wire up the awesome features that are planned for it.
  • Getting Started with Mono for Android Series – The Getting Started series for MonoTouch has been a tremendous model, and we’re working on a Getting Started series for Mono for Android that is going to be, bar none, the best Android content available. Building applications for Android can be an enigmatic experience and we’re working hard to bring you a Getting Started series for Mono for Android that takes the mystery out of Activities, Intents, and Services and makes it possible for everyone to build responsive, reliable Android applications.
  • More Amazing Guides – In addition to the new Getting Started series, we’re producing all kinds of new, amazing guides for both MonoTouch and Mono for Android.
  • API Reference Upgrades – We’ve been working hard on getting our API Reference docs up to snuff. We’ve already launched platform specific API docs (http://docs.xamarin.com/ios/api, http://docs.xamarin.com/android/api, and http://docs.xamarin.com/mono/api), and we’ve got several features that are about to launch including fast API searching, tree synchronization, and more.
  • Awesome New Docs Portal – The docs portal at docs.xamarin.com is just the first baby step to an amazing docs portal. We’re hard at work designing a very sophisticated documentation portal that make finding and browsing Xamarin documentation a breeze.
  • MD Help Upgrades – Of course all work that we’re doing on the docs portal will be translated to the “In-IDE” experience as well. Once we launch the next version of our docs portal we’re going to be making sure that the IDE has just as an amazing experience built in with a new help browser that will give access to the same awesome content available on our portal.
  • Community Integration Features – The Xamarin community of developers is amazing and I’m continuously impressed by the work they’ve done. Having sophisticated community integration features such as community content submission, etc., is going to be a key to being able to tap into that awesomeness and we’ve got a number of cool features being dreamt up to encourage community engagement.

Of course, none of this would be possible without you, our customer, so a big thank you, and I look forward to blowing you away with great new content and features. 🙂

MonoTouch Native Libraries Made Easy

In today’s release of MonoTouch 5.0.1, we’ve made it much, much easier to use native libraries from your C# code.

MonoTouch has always allowed developers to access third-party Objective-C libraries. But in the past, it required some familiarity with the way native libraries work on Unix. It also required both the native library (libMyCuteVisualization.a) and the managed binding (MyCuteVisualization.dll) to be kept in sync.

With MonoTouch 5.0.1, we have solved these problems. If you are binding native libraries, you can now use the LinkWith attribute to declaratively reference the native library as well as the command line options required to use the library.

If you are consuming a native library that someone else has bound, simply reference the managed library from MonoDevelop. That’s it. No more fussing about with extra command-line arguments and dragging libraries around.

We have updated the public MonoTouch Bindings to use the new LinkWith attribute.

Tasty Android Treats

We have a tasty treat for all of our Mono for Android users.

Our new preview for Mono/Android 2.0 has these tasty features:

  • Google Maps APIs!
    You no longer need to write any manual code to bind to Google Maps. The APIs are ready to be used, come and enjoy!
  • We have added Ice Cream Sandwich API support
    This is an extension to our recent addition of the Honeycomb APIs.
  • System.Numerics library has been added to the build
    Mono for Android is the first to ship with System.Numerics. Our upcoming MonoTouch version will also bring BigInteger and Complex data type support in our Mobile profiles.
  • Improved Visual Studio exception support

There are many other improvements in this release. You can test it now in our Beta channel.

For the full details on this release check our release notes.

iCircuit: From Java to iPad in two months

One of the great things about building a developer platform is that you never know how people will use it. We’re always excited to hear a new story about the apps people are building with MonoTouch and Mono for Android.

This week we launched a new home page for MonoTouch, and we were super proud to include a short video of indie developer Frank Krueger talking about his experiences using our platform:

As a solo developer, Frank used MonoTouch to build an incredible app called iCircuit that has been very successful, sells like crazy, and was even featured on iPads in Apple Stores around the world.

Frank’s video turned out so well, and Frank is so passionate about MonoTouch, that some people even asked us if he’s a paid actor! (He’s not — though we’re going to at least send him a bottle of wine for spending a morning in front of a video camera. Thanks Frank!)

It’s hard to capture all the details of Frank’s story in two minutes. And so we decided to create a real, honest-to-goodness case study. We hope you enjoy it, show it to your boss, and use it as a reason to give MonoTouch a try.

If you have a story you want to share with us about using MonoTouch or Mono for Android, or you want to appear in a future video, please let us know!

Xamarin Hero: Frank Krueger and iCircuit

MonoTouch is not just for experienced C# and .NET developers. Windows Mobile developers can easily justify a decision to use Xamarin’s MonoTouch and MonoDevelop to move a Microsoft Windows Mobile or Windows Phone application to an Apple iPhone or iPad. But why would someone fluent in Objective C and the CocoaTouch framework want to travel that route? Frank Krueger, the developer of iCircuit, a digital and analog circuit simulator for the iPad, has an answer.

When the first iPhone was released in 2007, Krueger was taken with Apple’s new device. As soon as the company announced it would accept applications from third-parties, he knew he wanted to participate in what promised to be a fast growing mass market.

Krueger had always thought of himself as a C++ programmer, so that was the language he chose for his first iPhone apps. ”Objective C has this funny mode called C++ mode,” he recalls. “Though it seems stupid in retrospect, I was willing to learn to program the iPhone in C++, but not Objective C.“ He wrote three apps for the iPhone, but as they grew in size the programming became “torture,” Krueger says. And then MonoTouch came along.

MonoTouch Changes the iPhone and iPad Game

The release of MonoTouch completely changed his game, says Krueger. “It was love at first sight.” With MonoTouch, he could replace Objective C and C++ with the high level C# language and the rich class .NET framework libraries. MonoTouch also included C# bindings for all of the CocoaTouch APIs, which, along with MonoDevelop, a free, open source interactive development environment designed for C# and other .NET languages, gave Krueger the syntax checking, debugging, and API help that are familiar to anyone who’s used an IDE.

“C++ and Objective C are fine for doing UI (user interface) implementations, but when it comes to talking to a network or a database that’s where they fall down,” says Krueger. “The iPad and the iPhone are mobile devices. When you use them, all you want to do is talk to databases and the network.” With MonoTouch, he says, it is a breeze to do both thanks to core libraries such as System.XML and System.Net. Developers also get the benefit of C#’s modern language features, including memory management, reflection, type safety, the popular LINQ (Language Integrated Query) library, and most important of all “discoverability, ” the ability to explore the iPhone CocoaTouch APIs through an IDE without having to search Apple’s online documentation. “I realized I wasn’t as good an iPhone developer as I thought I was,” Krueger says. “It took MonoTouch to show me that.”

After creating several “two- to three-screen” iPhone programs for the Apple App Store with MonoTouch, Krueger decided it was time to try something bigger. With a master’s degree in electrical engineering, he had always been intrigued by the free Circuit Simulator Java applet, which its author, Paul Flastad, had written to help students explore the behavior of digital and analog circuits. Krueger wanted to make it work on the newly released iPad. He gave himself three months, the average time it took him to write one of his 99-cent apps.

Java Applet to iPad app in less than two months

Krueger licensed the Circuit Simulator engine from Flastad and then set about building what became iCircuit. He first translated the engine from Java to C#, and then built his UI. The completed application contained 8000 lines of code, split equally between its core logic and its UI. He was done in less than two months. “All thanks to C# and MonoTouch,” he says. “I can’t remember when I wrote such a large app in such a small amount of time. I was basically coding as fast as my fingers could type.”

Support from the MonoTouch team was “mind blowing, stellar,” he says. I think part of my love of MonoTouch is my love of that community.”

Krueger released iCircuit in August, 2010 to positive reviews. By then, the Apple app store contained more than 300,000 apps, but that fall, Apple featured iCircuit on its “Apple in Business” site and the Register named it one of its top 119 must-have apps for admins, coders and geeks.

Today, Krueger is at work on iCircuit versions for the Mac and for Android devices. For the Mac port, he uses MonoMac and for Android he uses Xamarin’s Mono for Android. “The three most popular platforms right now – iPhone and iPad, the Mac, and Android — all have solutions from Xamarin. You come up with a neat app idea, you write your app in a language you love, and then you sell it to people. It’s a great system.”

MonoTouch 5, with iOS 5 support

Take advantage of iOS 5 APIs with MonoTouch 5. Right on time.

In addition to providing direct access to the thousands of improved APIs in UIKit, MonoTouch 5 now supports all of the new frameworks that ship with iOS 5. Here are a few of our favorites.

To learn more, check out our introduction to using iOS 5 features with MonoTouch. The detailed API updates lists the updates that we have done since MonoTouch 4.2. You can also review our API documentation online.

iCloud

With iCloud you can access cloud storage to upload user files and automatically sync them, wirelessly, between other computers and devices.



Twitter Integration

Take advantage of easy Twitter access, URL shortening, photo uploads, geolocation, and more, all with a simple and easy to use API.



AirPlay

Stream audio, video and photos from iOS devices directly to an HDTV (via Apple TV) or take advantage of encrypted streams using HTTP Live Streaming.



Bluetooth

Using the MonoTouch Bluetooth APIs you can easily access and communicate with external Bluetooth hardware devices and accessories.



Newsstand

Use MonoTouch to interact with the new home screen folder Newsstand to publish and update magazines and newspaper subscriptions. Best of all, handle updates in the background without interrupting the user.



Core Image

The new Core Image API allows access to many built-in features such as applying effects to photos and videos, auto-enhance, reduce red-eye, and facial recognition.

No need to wait! Get started creating amazing iOS 5 ready apps today by downloading a MonoTouch trial!

If you already have MonoTouch, simply launch MonoDevelop and you will be prompted to update – it’s that easy!

MonoDevelop 2.8 is Here!

We’re excited to announce that MonoDevelop 2.8 is now available for download!

Xcode 4

MonoDevelop 2.8 is now fully integrated with Xcode 4. Write C# to interact with interfaces and storyboards built in Xcode’s new UI designer.
Read more

Storyboards

Storyboards allow you to quickly design entire application workflows for iPhone and iPad using the Xcode UI Designer. MonoDevelop recognizes changes to .xib and storyboard files and automatically updates your project files.

iOS Application Settings

New, user-friendly editor for iOS application settings can be accessed in the Project Options dialog or by directly opening the Info.plist file from the Solution Pad.

TestFlight

It’s difficult to deploy your apps for testing – but now, with just a single click, you can use TestFlight to share your apps directly from MonoDevelop.
Learn about TestFlight

Improved Documentation

We want to make it as easy as possible to learn MonoTouch and Mono for Android so we’ve launched an entirely new documentation site with tutorials, samples and more.

Visit docs.xamarin.com

iOS 5 Ready!

We’ve made 2,800 new iOS 5 APIs available to .NET developers, so you can take advantage of features such as Newsstand, CoreImage, Twitter and iCloud. Additionally, you now have access to new UIKit controls, styling, and more.

Available Now

If you’re ready to get started you can download MonoDevelop. If you already have MonoDevelop installed then you will be prompted to update next time the application is opened.

Introducing The Xamarin App Showcase



Did you know that thousands of developers are already creating real apps using MonoTouch and Mono for Android? That’s right, more and more people are choosing to use Xamarin tools to create great iOS and Android apps.

We want everyone to see the amazing apps developers are creating which is why we’re introducing xamarin.com/apps: a showcase of some of the amazing apps people around the world are creating with Xamarin.

Inside, you can find descriptions, screenshots and store links for apps of all types which demonstrate the potential that MonoTouch and Mono for Android bring to mobile development.

It’s easy to get listed — simply contact us with a short description of your app, and a link to where customers can buy it, and we’ll do the rest!

iOS and Android Updated

We are happy to announce some nice upgrades for both our Android and iOS users.

MonoTouch 4.2 has been released with many new features and fixes. These are the highlights for this release:

  • Debugging over USB
  • Mono engine upgraded to Mono 2.10.5
  • iOS HTTP Proxy support for all of your HTTP needs
  • Improved linker produces smaller executables
  • Improved startup time
  • Smaller download, even though we managed to bundle the BCL source code for your debugging pleasure
  • Various API updates, more strongly typed classes for a smoother development experience

Visit the release notes page for the full details on this release.

Mono for Android 1.2 has been released. These are the highlights of this release:

  • Major improvements to Garbage Collection: Our distributed Mono/Java garbage collector has many fixes and performance improvements and we urge anyone using Mono for Android to upgrade.
  • The Visual Studio output window will now reflect the Android output, without having to manually require refreshes.

Visit our release page for details on upgrading your Visual Studio add-in or your MonoDevelop addin and the full release notes.

Both of our releases feature various bug fixes and performance improvements that were reported by our user community. Please keep your feedback and bug reports flowing.

Xamarin @ BUILD

Pssst! Xamarin operatives have found a way to smuggle some interesting contraband into BUILD.  Well, near BUILD.  Practically in the same building…

Come see .NET on iPhone, iPad, and Android, Thursday evening, 6:30p-8:30p at the Sheraton Park Hotel Anaheim.

Hang out with Xamaritans (including Miguel).  Enjoy seeing C# as it was meant to be.  We’ll answer all of your questions about MonoTouch, Mono for Android, and the future of cross-platform .NET. We’ll also have a special offer just for attendees.

We’ll even pay for drinks so you don’t have to feel bad about ditching those other guys.

MonoDevelop 2.6 is out.

We are very happy to announce that we’ve just released MonoDevelop 2.6 into the stable channel.

This release packs a lot of new features. Some of my favorite features in this release are:

  • Git support.
    • It not only provides the regular source code control commands, it adds full support for the various Git idioms not available in our Subversion addin.
    • Based on Java’s JGit engine
    • Ported to C# using db4Object’s sharpen tool. Which Lluis updated significantly
    • Logging and Blaming are built into the editor.
  • Mac support:
    • Our fancy MonoMac support lets you build native Cocoa applications. If you have not jumped into this Steve Jobs Love Fest, you can get started with our built-in templates and our online API documentation.
    • Native File Dialogs! We now use the operating system file dialogs, and we even used our own MonoMac bindings to get this done.
    • You can also check my Mac/iOS-specific blog for more details.
  • Unified editor for Gtk#, ASP.NET, MonoTouch and MonoDroid: we no longer have to track various forks of MonoDevelop, they have all converged into one tree.

The above is just a taste of the new features in MonoDevelop 2.6. There are many more — nominate your own!