James Montemagno
James Montemagno

Live, Love, Bike, and Code.

Tags


James Montemagno

cedar_format_image

Developing & Working with .NET Containers on Windows ARM Devices

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 container…

James Montemagno James Montemagno

Developing Android Apps on Windows Arm Devices

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 v…

James Montemagno James Montemagno

App Configuration Settings in .NET MAUI (appsettings.json)

.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 [https://www.youtube.com/watch?v=2Dkk-74x-V8] and all of the configuration that is built in including Essentials, Blazor, and more. But, what if you want to do oth…

James Montemagno James Montemagno

Implementing In-App Subscriptions in iOS & Android with no backend servers

Over the years I have created several apps [https://montemagno.com/my-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&#…

James Montemagno James Montemagno

Staged Rollouts & Phased Release on Google Play and App Store Connect

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…

James Montemagno James Montemagno

Yosuda spin bike review, a $230 Peloton & Apple Fitness+ DIY bike

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 [https://montemagno.com/building-an-at-home-diy-spin-bike-for-peloton-apple-fitness/]. It has been 9 months and over 150 rides of my Sunny SF-B1002 Bike [https://amzn.to/37gQMcB] and moofit cadence sensor [https://amzn.to/349DpZM]. 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…

James Montemagno James Montemagno

Long-running Operations on macOS and iOS with NSProcessInfo

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 [https://www.mystreamtimer.com], 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 si…

James Montemagno James Montemagno

5 Years of Merge Conflict

It feels like just yesterday that Frank [https://twitter.com/praeclarum]and I were sitting at a bar in Redmond enjoying a nice craft cocktail and talking about the best way to store settings in shared preferences. After chatting with someone for 2 hours about isolated storage how could you not become best friends and start a podcast [https://montemagno.com/so-we-started-a-podcast-merge-conflict/], record 266 episodes, and have such amazing listeners that they have downloaded our podcasts over 1.…

James Montemagno James Montemagno