Hello, Weekly Xamarin newsletter subscriber. I (Geoff) am stepping up as this newsletters scribe/writer/producer - thank you for letting me into your inbox.
A little bit about me: I've been involved in the Xamarin community ever since early days of Monotouch and Monodroid and was fortunate enough to attend the very first Evolve conference in 2013. It left one hell of a permanent impression. If you went to Orlando, then I'm positive you know what I'm talking about. Since then I've gone on to become an active contributor to the .NET open-source ecosystem and one of the maintainers of ReactiveUI, which is an MVVM framework based on the Reactive Extensions.
Adam, thank you for trusting me to continue the work that you started, 91 weeks is one heck of an unbroken chain. Jerry Seinfeld would be proud.
Xamarin Evolve 2016 sessions now available
All of the Xamarin Evolve 2016 conference sessions are available for you to view at your leisure, sortable by topic.
Introducing Realm Xamarin, a reactive mobile database
A reactive database allows you to structure your code so that you "react" to changes in your data layer - you don't have to re-run queries to get updates because Realm updates all your data objects to point to the newest version of your data. There is a PR open to expose high-level notification API based on the Reactive Extensions (IObservable/IObserver) which should be in the next release. Realm on Xamarin, under the hood, is powered by Fody (Simon Cropp) and a bespoke c++ engine.
APP OF THE WEEK
JetBlue is using Xamarin to move to iOS and Android from specialized devices, which weren’t available on all flights and often lost credit card transactions during syncing. JetBlue’s flight attendants use the app to process purchases and track inflight inventory, resulting in smooth transactions and better service.
Xamarin.Android compiling on Linux
Dylan Borg has got Xamarin.Android compiling applications on Linux working by using a mixture of command line build scripts, Android Studio for AXML and VSCode for editing C#. Join the Xamarin Android SDK community on Gitter to find out more.
Time instrumentation re-enabled!
Time instrumentation in the Android Profiler has been re-enabled, putting an end to an era of bypasses using WPF Snoop!
Advanced memory management on Android
Do you know what a cross-heap reference is and what problems they cause when developing an Android application with Xamarin? No? Stop everything right now, watch this video then go back and do a review on your code base. Seriously.
Xamarin.iOS, the garbage collector and me
René goes deep and explains how the garbage collector works and provides examples of common mistakes people make when developing a Xamarin iOS application.
Advanced memory management on iOS
Do you know what a indirect cycle is and what problems they cause when developing an iOS application with Xamarin? No? Stop everything right now, watch this video and go back and do a review on your code base. Seriously.
Xamarin.Mac [libraries] compiling on Windows
For the last month or so, I have been hacking away at getting Xamarin.Mac compiling on Windows to simplify the ReactiveUI continuous integration story. Thanks to the recent open sourcing of the SDK's I'm proud to announce that compiling Xamarin.Mac libraries on Windows is now possible. If you maintain an open-source project that targets Xamarin.Mac please get in contact.
Coming soon. Today, Finder Sync and Share extensions for Xamarin.Mac
Hot off the presses as a super early preview, on GitHub there is an XMExtensions branch which adds support for Today, Finder Sync and Share extensions. IDE integration is not ready yet. Join the Xamarin.Mac team in Gitter to find out more.
Announcing SlideOverKit and FreshEssentials
Michael Ridland has updated his SlideOverKit and FreshEssentials components to support UWP.
The first ever community pull-request to Xamarin.Forms
A light bulb immediately appeared over Nick Gamroth's head when he saw the open source announcement on Twitter. Congratulations on being the first community pull-request to be merged into Xamarin.Forms!
Jason Smith's Xamarin Forms performance tips
Jason Smith, the lead engineer of Xamarin Forms, gave a great talk at this year’s Evolve. He went through a long list of performance tips, as well as a Q&A session. Kent Boogaart has transcribed the session to make this information more readily accessible.
Why you should be building better mobile apps
Reactive programming is popping up everywhere lately, and big companies like Netflix, Slack and GitHub are using it as the cornerstone of their development. Unfortunately, reactive programming can look scary and complicated at first glance, but in this video Michael Stonis from the ReativeUI framework dispels those myths. You will learn what is so compelling about reactive programming as Michael breaks down the fundamentals.
Implementing a Hamburger menu on iOS using MvvmCross
Marc Bruins takes you on an informative journey on how to implement a hamburger menu using MvvmCross.
.NET framework ported to NetBSD by the community
Why is this important? NetBSD is a very portable BSD-licensed operating system. Programs for NetBSD can be run in a stripped-down NetBSD kernel and libc (a unikernel) called rumpkernel, which can be run on any platform, including on bare metal. It is also extremely minimal - an operating system image for nethack was a mere 4MB. Rump can also run on any architecture that NetBSD runs on (including MIPS, VAX, m68k, as well as standard platforms like amd64 and ARM) and also on those without fully NetBSD support, but just with a functional C compiler (like RISCV). Many people use rump as an extremely lightweight container - it can run on Linux and others.
1 billion packages have been downloaded from NuGet!
Who was the 1,000,000,000th download? <spoiler>Json.NET</spoiler>
Announcing NuGet 3.4.3
This update resolves problems with NuGet on Xamarin where packages failed to unzip. ModernHttpClient was nominated as a specific example.
Expert in C# and .NET? Experience building frameworks in any language?
Realm is looking for developers who can help ship Realm for .NET platforms and make it the new default for persistence! Ideally, candidates would be based in Copenhagen, but we have employees in nine different countries. Relocation assistance is available for the right candidate.