KYM PHILLPOTTS
Welcome back to another Weekly Xamarin, and thank you for the feedback regardings the new Xamarin Introductions section. This week we are going to hear from Daniel Causer.
Lots of articles about everyone's favourite new Xamarin.Forms feature, Shell. So if you have been holding off, there are some great articles to get you started.
Also, don't forget that next week WWDC is happening. I expect to see iOS13, a new Apple Watch OS version, and even more #courage ;-) Seriously though, looking forward to it, and I'm sure we will have some links next week to cover off the event.
Till then, take care everyone, have a great weekend.
❤ Kym
ANDROID
64-bit version of your Xamarin Native or Xamarin Forms Android App
Did you also receive the pesky email from Google Play, asking you to create 64-bit version of your fleet of apps? You received instructions to fix the issue, but you realize you don’t use Android Studio for development.
64-bit version of your Xamarin Native or Xamarin Forms Android App by The First Prototype
Preparing Android Apps for Google Play’s 64-bit Requirements
Starting with Android 5.0 apps built for introduced support for 64-bit CPUs. This is a great advancement in Android as 64-bit CPUs deliver great performance improvements for all users running apps.
Preparing Android Apps for Google Play’s 64-bit Requirements by James Montemagno
Exploring CameraX on Android
The CameraX API, is a new exciting piece of the Android framework. In this article, Joe Birch dives into the core library to learn what it is and how we can make use of the functionality that it provides for our applications.
Exploring CameraX on Android: Use Cases by Joe Birch
IOS
Practical Uses for the Mono Interpreter on Xamarin.iOS
One of my favourite developers Ryan Davis gave a talk at the Queensland C# Mobile Developers meetup on the recently announced Mono interpreter and mixed-mode execution support for Xamarin.iOS. This post gives a breakdown of what it's good for, and maybe what it's not so good for.
Practical Uses for the Mono Interpreter on Xamarin.iOS by Ryan Davis
XAMARIN FORMS
Xamarin.Forms Performance Playground
Javier Suárez Ruiz has put together a great github repo to discuss performance considerations.
There are many techniques for increasing the performance of Xamarin.Forms applications. Collectively these techniques can greatly reduce the amount of work being performed by a CPU, and the amount of memory consumed by an application. This repository describes and discusses these techniques.
Getting Started with Shell
Xamarin.Forms 4.0 introduced amazing new features to help streamline development when building beautiful mobile apps with C#. The main highlight was the new Xamarin.Forms Shell, which seeks to reduce the complexity of building mobile apps by providing fundamental app architecture features.
Xamarin.Forms 4.0: Getting Started with Shell by David Ortinau
Routing in Shell
With the 4th version of Xamarin Forms, you should finally feel comfortable using Shell on your production apps. These production apps, more often than not, need to rely on more complex navigation than just tabs and flyout menus, so in this post, I cover how you can use routing to navigate to any part of the shell with just a few lines of code.
May 30 Routing in Shell - The New Navigation Paradigm in Xamarin Forms by Eduardo Rosas Osorno
Extending Visual Material
Xamarin.Forms Visual is out along with the Material Renderers and they are awesome. They make life much easier for developers wanting to offer a consistent appearance of apps on Android and iOS.
The first offering of Visual is Material which lets you make your apps fit Google's Material Design on iOS and Android. There'll be more coming from Xamarin and you can write your own. In this post, Lachlan focuses on creating your own Visual by extending Material.
Extending Visual Material in Xamarin.Forms by Lachlan Gordon
Xamarin.Forms UI Challenges - Art Auction
It’s time for another Xamarin.Forms UI Challenge! This time we are going to see how we can reproduce a design I found over at Dribbble by Alex Pesenka. The design has a reasonably complex layout involving animated popups and overlays, which makes it a good candidate for a Xamarin.Forms UI Challenge.
Google Maps Place Search
Rendy expands on his previous article so that he can specify the origin and destination for our route using the Google Place API.
Displaying Search Results in an Effective Way
John continues his last post discussing the concept of mobile search inside of Xamarin.Forms. While search performance is important throughout the search lifecycle, UI responsiveness is essential to a positive user experience.
Displaying Search Results in an Effective Way using Xamarin.Forms by John Taubensee
Using Dependency Injection Everywhere
Dan Siegel has put together some extensions to make my life even easier with Dependency Injection and Prism. This means you can write code today without any regard for which actual container you may choose 6 months from now. This blog post covers what they are, and why you might want to use them.
.NET
8 Techniques to Avoid GC Pressure and Improve Performance in C# .NET
In a .NET application, memory and performance are very much linked. Poor memory management can hurt performance in many ways. One such effect is called GC Pressure or Memory Pressure.
GC Pressure (garbage collector pressure) is when the GC doesn’t keep up with memory deallocations. When the GC is pressured, it will spend more time garbage collecting, and these collections will come more frequently. When your app spends more time garbage collecting, it spends less time executing code, thus directly hurting performance.
This article will show 8 techniques to minimize GC pressure, and by doing so, improve performance.
8 Techniques to Avoid GC Pressure and Improve Performance in C# .NET by Michael Shpilt
NUGET OF THE WEEK
Context Menu
Andrei Misiukevich has created a great looking nuget for swipy-swipe style context menus.
PODCASTS & VIDEOS
Version Tracking (Xamarin.Essentials API of the Week)
Xamarin.Essentials provides developers with cross-platform APIs for their mobile applications. On this week's Xamarin.Essential API of the week we take a look at the Version Tracking API to enable you track the current and past version number and code.
Version Tracking (Xamarin.Essentials API of the Week) by James Montemagno
In-App Feedback and Bug Reporting with Instabug
This week, James is joined by friend of the show Salma Ali from Instabug shows off a how to easily integrate Instabug into your Xamarin applications for bug reporting, user feedback, surveys, in-app chat, feature requests, and so much more. You don't want to miss out on this episode!
In-App Feedback and Bug Reporting with Instabug by James Montemagno
Merge Conflict 151: The Future of the Future of .NET
At Microsoft Build 2019 the .NET team announced some amazing news around the unification of .NET runtimes with .NET 5. We could not let another week go by without talking about how awesome this is for .NET developers and what it means for the future of application development.
Xamarin Introductions

Xamarin Introductions - Daniel Causer
If you have been around the Xamarin world for long enough, I'm sure you will have heard of Daniel Causer who is based in Toronto, Canada. Let's learn a little more about him:
Tell us a bit about yourself?
I'm a Software consultant @ BSI Labs during the day and Blogger / Public Speaker / OSS Maintainer / Streamer / User Group Co-organizer during the night !
I also happen to have the coolest blog name (causerexception.com) =P
Tell us one thing we probably don't know about you?
I can whistle cricket sounds.
How did you first get into Xamarin development?
I started contributing to the Xamarin Community, after being in contact with a project called Xamarin Marathon, at the time it was organized by the Brazilian community and consisted of weekly courses and challenges that taught not only me, but a whole bunch of Brazilian devs everything we needed to know to call ourselves Mobile Developers.
The organization, passion, synergy and quality of the community impressed me and drove me to change my career, from a miserable web dev to an inspired Xamarin / Mobile Developer! It also made me realize that I wanted to give back and help others, just like I was helped!
What has been the most enjoyable project you have built using Xamarin?
The most recent one I have been working is generating SQLite databases on the Cloud, which will turn into a library soon. For now, I'm sharing the experience here:
https://causerexception.com/category/sqlite/
What advice would you give someone looking at getting started with Xamarin development?
Try to understand what you are using and what exactly Xamarin is capable of. I see a lot of new devs struggling even to ask the right questions.
What are the MUST HAVE tools, resources and libraries that you use when building Xamarin apps?
- ReactiveUI: https://github.com/reactiveui/reactiveui
- Shiny: https://github.com/shinyorg/shiny
- Prism: https://github.com/PrismLibrary
- FFImageLoading: https://github.com/luberda-molinet/FFImageLoading
- HttpTracer: https://github.com/BSiLabs/HttpTracer
Where do you think mobile will be in 5 years?
Mobile development scenario is booming with with a wide range of technologies, and this competition is amazing, it has been making our tools, products and overall development cycle experience much better! I have discussed the future with friends, and it seems that once WebAssembly hits the market, it will change significantly the way things are now.
Any other things you would like to share or promote?
Please, keep an eye on the Toronto Mobile Devs user group meetings, streams and Twitter. We are quite active and are always sharing a whole lot of information about Xamarin / Cloud.
- https://www.meetup.com/TorontoMobileDevelopers/
- https://www.youtube.com/channel/UCASHUenPcHRI0Aabp2QAl6w
- https://www.twitch.tv/torontomobiledevs
- https://twitter.com/tomobiledev
Thanks Daniel for sharing a little about yourself. You can find out more about what Daniel gets up to at:
Blog: https://causerexception.com/
Twitter: @danielcauser
Github: danielcauser