Recommended watching for iOS and Android - <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=VJsmrTQWD2k" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=VJsmrTQWD2k</a> simple to identify these problems once you know of them. I keep coming across implementations that make some very fatal mistakes about resource management, notably these problems would potentially also happen when not using Xamarin as well (developers not reading documentation&#x2F;being careful with allocations)<p>With Android the most common mistake is cross-heap references, putting a large C# array into a java arrayadapter for example will result in objects that live in both worlds which makes it expensive for Java to see the C# object and C# to see the Java object. The objects are effectively being mirrored, the solution is to use C# all the way down. Where the object was created defines ownership, for example ArrayAdapter containing C# objects means owned by Java with overhead for Java to bridge the C# objects.