MotzCod.es Blog
638 FOLLOWERS
I crush code and share it with the world, publish NuGet packages, speak at conferences, upload videos, live stream coding, tweet up a storm. I'm James Montemagno, and my primary focus is on ensuring a delightful experience for developers using Xamarin to build mobile applications in C# for iOS, Android, macOS, and Windows.
MotzCod.es Blog
10M ago
I am by no means a cloud-native developer, I am a client developer. I have spent some time though to get a general understanding about microservices, images, containers, docker, and all the buzz words that surround the topic. I recently got really into DevContainers and using them on GitHub Codespaces and Visual Studio Code to create an environment to run apps in. From there, I went down a rabbit hole of educating myself more by taking Microsoft Learn training courses, watching the new containers for beginner series, and actually trying to build something myself.
However, this is where I alwa ..read more
MotzCod.es Blog
11M ago
Everything is building great in your CI/CD pipeline and then BOOM your build fails for no reason. You didn't change anything in your code!?!?! That was me this morning as I was updating my InAppBilling Plugin for .NET. I got hit with this beauty:
error XA0031: Java SDK 11.0 or above is required when using $(TargetFrameworkVersion) v13.0
What is going on?!?!? Starting with Visual Studio 2022 17.8, which was just released, the Xamarin.Andriod tooling requires Java SDK 11.... but the default images on Azure DevOps still have the default set to an earlier version. No worries! as you can manually s ..read more
MotzCod.es Blog
1y ago
I have gone all in on Arm devices! My main MAC machine is a Mac Book Air M1 and now my main driver at work is a Windows Dev Kit 2023 (aka Project Volterra). One tricky thing for developers is getting all the software we use to work properly on Arm. Things have come a long way since the original release of Arm devices for Mac and Windows. I have a full setup guide for my M1 for Xamarin and now .NET MAUI development, but what about Windows?
Visual Studio 2022 recently released a full native Arm version and they have been adding more workloads for developers to use. .NET MAUI was recently introd ..read more
MotzCod.es Blog
2y ago
You know I love talking about in app purchases and subscriptions. Due to my InAppBilling library I get all the "fun" updates when Apple or Google force developers to make changes to stay compliant. Upcoming is a nice large change from Google to push Android developers to use Billing v4 (which my library does!) and another is that we must now give users a way to easily manage and cancel their subscriptions. You may have recently seen this message from google:
We’re updating our Subscriptions policy to state that users must be able to easily cancel their subscriptions from within the app.
What ..read more
MotzCod.es Blog
2y ago
.NET MAUI is right around the corner and Preview 13 is out right now! There are so many great features packed into .NET MAUI and my favorite has to be all of the great Dependency Injection and configuration that goes into the MauiProgram startup. If you want to know more checkout my most recent YouTube video breaking down Preview 13 and all of the configuration that is built in including Essentials, Blazor, and more.
But, what if you want to do other things that aren't included out of the box... such as reading app configuration through a appsettings.json file?!?!? Well you can, and it is su ..read more
MotzCod.es Blog
2y ago
Over the years I have created several apps that I am super proud of, and for the most part, I have always put them out for free onto the app stores. More recently I have been experimenting with different monetization strategies for the apps so users can unlock features or just leave a tip. For the longest time I kept things simple with a "non-consumable" one-time purchase. The strategy is straight forward, they either purchased the item or they didn't. Based on this information you would unlock the features in the app. My nifty InAppBilling .NET plugin for iOS, Android, macOS, and Windows com ..read more
MotzCod.es Blog
3y ago
Android Emulators have been a pain in everyone's side for pretty much ever. Intel HAXM is great, but limited to Intel, then there were custom emulators like Xamarin Android Player and Genymotion, but required additional installs, and finally Hyper-V support, which brought with it AMD support, and side by side Docker support as well. But now, Windows 11 is here and so is a brand new Insiders Preview that brings with it Android app support, which is CRAZY AWESOME. More so is that you can use the new Windows Subsystem for Android to develop, debug, and deploy your Android apps from your favorite ..read more
MotzCod.es Blog
3y ago
As an app developer it is hard enough to create your app, test your app, prep the app store listings, and then get your app approved. The last thing you want to think about is how fast or slow to roll out your app and updates to users. For the past 10 years all I have ever done was just release the app to everyone all at once, and for a long time this all that was available to us. However, now there are options for developers from both Google and Apple that can manage your release. Unfortunately, Google's staged rollouts and Apple's phased release aren't exactly the same, so let's talk about ..read more
MotzCod.es Blog
3y ago
Last year I ventured into building my own workout area at the house, and it all started with a $400 investment to put together a DIY spin bike. It has been 9 months and over 150 rides of my Sunny SF-B1002 Bike and moofit cadence sensor. They continue to go strong and I love them. Looking back, I did a lot of research up front about what bike to get, how heavy the fly wheel should be, and what type of resistance. The Sunny bike seemed like a great fit as it has leather resistance, a 49 lbs. fly wheel, and super sturdy.
Since then, the Yosuda bikes have continued to rise to the top of the chart ..read more
MotzCod.es Blog
3y ago
One issue that sometimes comes up in app development is keeping your app alive and running during long running processes. In my case with My Stream Timer, when the user starts a timer, it needs to keep running no matter what. My first solution was to simply turn on Screen Saver mode.
var appDelegate = ((AppDelegate)NSApplication.SharedApplication.Delegate);
appDelegate.MainWindow.Level = NSWindowLevel.ScreenSaver;
This solution "works" but has the side effect that the app will always be on top all the time, no matter what. As you could imagine this is not an ideal solution. Then out ..read more