I've been a little quiet this past year and it's been for a good reason... I'm very pleased to show off the newest addition to my little product family, Ansight!
Ansight is a macOS application for monitoring, capturing and replaying the runtime behaviour of your Android apps.
In early 2021 I was building offline mining software that ran on Android devices, trying to diagnose memory related bugs that occurred only after long periods of app usage (2+ hours).
Trying to work out the steps that led to these slow leaks was very difficult and required trawling through huge ADB logs, hunting down the core actions a user performed.
This led me to wishing for a tool that could do the following:
- Make it easy to capture and filter ADB logs for a specific app.
- Capture all device and app details. This would eliminate the "Oh but what version of XX were you running" conversations.
- Capture a screen recording and allow me to correlate ADB logs to what was happening on screen.
- Capture app memory usage and correlate it to ADB logs and the screen recording.
- Did not require the use of ADB via the command line or Android Studio (both fantastic but highly technical). The tool needed to be plug and play and require minimal technical know-how to make life easier for software testers.
When you're investigating a bug, do these questions look familiar?
- What device were you using?
- What app version were you running?
- Did you grab any logs?
- Did you grab a screen recording?
- What did you do leading up to the problem?
Wouldn't it be nice if, instead of that conversation, it was simply: XYZ happened, here's the capture for the issue.
And so, in typical developer fashion, I decided to build a tool to do this!
Ansight is super easy to use
As mentioned previously, maybe the single most important goal for Ansight is that it's dead easy to use.
Testers, engineers and product people should be able to plug in a device, record captures and then replay those captures very, very easily. I want the conversation to be about how to solve a bug, not how to capture the information about the bug.
After downloading and starting Ansight, enable developer mode on a device and plug it into your computer. Ansight immediately connects and shows you the logs and screen for the device.
Simply put, Ansight is plug and play:
- It does not require any code changes or SDK's to be added to your apps.
- It does not require any app's to be installed onto a users device.
- It does not require any developer tools on your computer.
- It is compatible with all Android development frameworks and tools.
That last point is super important: Ansight works with all Android development frameworks. It doesn't matter if the app is built using Java, Kotlin, Flutter, React Native, Xamarin, Unity, Unreal Engine etc; Ansight uses ADB only and so is completely framework and tool agnostic!
Deep Application Insights
Ansight records a screen recording, device logs, device details, app details and app memory usage in a single replayable file (.ans).
With Ansight, you can:
- View the live behaviour of a device and optionally target a specific app to monitor.
- Record a device session and then replay it. Correlate application and system-level events with a screen recording.
- View and filter incoming Android device logs with an easy to log viewer.
- View the memory usage for a specific app.
Built With .NET MAUI + MFractor
Under the hood, Ansight is built with .NET MAUI. This has played a very important part of how I've built and tested MFractors recent .NET MAUI support.
With MAUI, I could create a tool that is a native macOS app, is extremely performant and runs on multiple platforms (a Windows version is currently in development).
A huge credit to the .NET MAUI team for their work on the platform!
Try Ansight Today
Ansight is completely free to use and can be downloaded here.
You may receive an unknown developer warning when trying to run the app. If so, right click on the app and click Open.
I've used Ansight extensively with my clients this past year and it's been instrumental in capturing, reproducing and quickly fixing bugs in their apps. When we've captured a bug in an Ansight recording, we often fixed it in less than an hour; usually we would still be talking about how to reproduce it in that time!
Shoot me an email, firstname.lastname@example.org, to report any bugs or give feedback.
I look forward to hearing your thoughts on Ansight, both good and bad.
Happy bug hunting! 🏹 🐛
Matthew Robbins - Creator of Ansight and MFractor ✌️