Skip to content

Instantly share code, notes, and snippets.

View jonathanpeppers's full-sized avatar
✈️
traveling to NDC Oslo!

Jonathan Peppers jonathanpeppers

✈️
traveling to NDC Oslo!
View GitHub Profile
@jonathanpeppers
jonathanpeppers / is-this-a-cycle.md
Last active June 30, 2023 16:39
Is this a memory leak?

Consider the XAML:

<VerticalStackLayout>
  <Image Source="foo.png" />
</VerticalStackLayout>
 graph TD;
@jonathanpeppers
jonathanpeppers / memory-snapshot-mono.md
Last active July 12, 2023 16:28
Describing how I get .gcdump files from the Mono runtime

How I Work on .NET MAUI

This is a description on how I build/contribute to .NET MAUI, it may differ from DEVELOPMENT.md. I thought I would write this down in case it helps someone.

Building

If I'm testing the provisioning of .NET and workloads, I may run:

@jonathanpeppers
jonathanpeppers / net-maui-8-preview.1.md
Last active February 16, 2023 18:03
Installation instructions for .NET 8 Preview 1 and .NET MAUI
@jonathanpeppers
jonathanpeppers / A-msbuild-binlog.md
Last active October 20, 2022 15:36
Notes on collecting MSBuild logs (for performance, or other reasons)

.NET Workload Troubleshooting

To install the maui workload, you have two options:

  1. dotnet workload install commands
  2. Visual Studio on Windows can install .msi files for each workload pack. Note that the concept of a "Visual Studio workload" is different than a ".NET workload".

VS for Mac's installer and updater use dotnet workload install commands. It's considerably simpler to get a Mac machine to a clean state.

Mac

@jonathanpeppers
jonathanpeppers / java.interop.md
Last active November 9, 2021 16:49
Android / Java / .NET interop TLDR

How does Java interop work in .NET 6?

Most of this also applies to Xamarin.Android, as we have nearly the same implementation.

Let's start with a simple Android API call:

Android.Util.Log.Debug ("MYTAG", "MyMessage");
@jonathanpeppers
jonathanpeppers / profiles.json
Created February 22, 2020 01:36
Windows Terminal settings
{
"$schema": "https://aka.ms/terminal-profiles-schema",
"globals" :
{
"alwaysShowTabs" : true,
"defaultProfile" : "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
"initialCols" : 120,
"initialRows" : 30,
"keybindings" :
[
@jonathanpeppers
jonathanpeppers / .zprofile
Created February 13, 2020 22:58
My default zsh profile for macOS / xamarin-android development
SRC_DIR="/Users/jopepper/src"
XA_DIR="$SRC_DIR/xamarin-android"
XA_TOOLCHAIN_DIR="/Users/jopepper/android-toolchain"
XA_ANDROID_SDK_DIR="$XA_TOOLCHAIN_DIR/sdk"
JAVA_HOME="$XA_TOOLCHAIN_DIR/jdk"
alias xabuild="$XA_DIR/bin/Debug/bin/xabuild"
alias xabuildr="$XA_DIR/bin/Release/bin/xabuild"
alias adb="$XA_ANDROID_SDK_DIR/platform-tools/adb"
alias java="$JAVA_HOME/bin/java"
alias javac="$JAVA_HOME/bin/javac"
@jonathanpeppers
jonathanpeppers / Xamarin.Forms.perf.md
Last active January 16, 2020 06:15
Xamarin.Forms performance results

Over December, I have been able to work on Xamarin.Forms + Android startup perf. Here is the initial results I'm seeing with the accumulation of all my changes.

All runs were on a Pixel 3 XL

16.4 Blank Forms App template, Xamarin.Forms 4.4.0.991265

Debug:

01-15 23:46:01.157  1473  1503 I ActivityTaskManager: Displayed com.xamarin.forms.helloforms/crc6450e568c951913723.MainActivity: +859ms
01-15 23:46:04.919  1473  1503 I ActivityTaskManager: Displayed com.xamarin.forms.helloforms/crc6450e568c951913723.MainActivity: +843ms