Craig Dunn

Principal SW Engineer, Surface Duo Developer Experience

Craig works on the Surface Duo Developer Experience team, where he enjoys writing cross-platform code for Android using a variety of tools including the web, React Native, Flutter, Unity, and Xamarin.

Post by this author

Built-in model pre-processing with ONNX

Hello Android developers, Previously we looked at how to pre-process image inputs for an ONNX model using Kotlin. It’s useful to understand this process because the principles apply to any model that you wish to use. On the other hand, having to write boilerplate code for input processing can be tedious – it also means there’s...

Bringing ONNX models to Android

Hello Android developers, One of the advantages of the ONNX runtime is the ability to run locally on a variety of devices, including mobile devices. This means that your users get fast response times, but also comes with the need to respect mobile device limitations such as app size and the ability to support performance ...

ONNX runtime inputs and outputs

Hello Android developers, Last week we got an ONNX runtime demo running on Android, which classified the subject of images being streamed from the device’s camera. Setup required downloading a pre-trained model and adding it to the sample app on GitHub. This week we’re going to look into the details of preparing inputs for the ...

On-device machine learning with ONNX

Hello Android developers, This week we’re going to get started with on-device machine learning using the ONNX Runtime and check out an Android sample that identifies the objects using the camera video stream. What is ONNX? ONNX stands for Open Neural Network eXchange and is an open-source format for AI models. ONNX supports...

Happy Holidays 2022

Hello Android developers, Inspired by the growth of AI and its role in products like GitHub’s Copilot this year, we asked ChatGPT to “propose some applications for Surface Duo owners to use over the holidays”… One possible application for Surface Duo owners to use over the holidays could be to use the dual screens ...

Drag and drop with AndroidX

Hello Android developers, Foldable and large-screen devices are great for multi-tasking – you can position two apps side-by-side to compare data or just do two things at once! The other benefit of side-by-side apps is the ability to drag and drop content between them, whether the apps are across screens on a dual-screen device, or...

Large-screen design patterns

Hello app designers, At the first Android Dev Summit of 2022 Google announced updated large screen design guidance, gallery, and tips for foldables. These updates included a list of canonical layouts which are complementary to the dual-screen design patterns featured in the Surface Duo developer documentation. Material Design has ...

.NET MAUI for Android and cross-platform apps

Hello .NET developers, .NET Conf is happening this week and one of the big announcements is the release of .NET 7 which includes an updated release of .NET MAUI for .NET 7. The latest .NET MAUI release includes dual-screen Android support based on Jetpack Window Manager, so you can build cross-platform apps for mobile and desktop that ...

Develop with Windows Subsystem for Android

Hello Android developers! We recently had a query via social media about how Windows Subsystem for Android (WSA) might be relevant for Microsoft Surface Duo developers. Today’s post explains how to install the Windows Subsystem for Android and some of the ways it can be useful for developers. WSA won’t replace other methods of ...

Microsoft Edge dual-screen web APIs

Hello dual-screen web developers! Microsoft Edge version 97 included the dual-screen web APIs that have been in preview since last year. Now Microsoft Surface Duo users with the latest Edge will get an enhanced web experience automatically when sites have implemented the CSS or JavaScript dual-screen APIs. Visit the dual-screen web ...