Reviving Old Dreams: My .NET MAUI Geology App Journey
Dusting Off the Old Windows Phone Dreams
Sometimes the best ideas come full circle. Years ago, during the Windows Phone era (remember those beautiful Live Tiles?), I had an idea for a geology-focused mobile application. Life, technology shifts, and the inevitable demise of Windows Phone put that dream on the back burner. But here we are in 2025, and with .NET MAUI offering true cross-platform development, it’s time to resurrect that old concept.
Why .NET MAUI? Why Now?
The mobile development landscape has evolved dramatically since my Windows Phone days. Today’s developers have multiple paths to cross-platform development - React Native, Flutter, Xamarin.Forms, and now .NET MAUI. What drew me back to the Microsoft ecosystem was the promise of true native performance with shared business logic, and frankly, the chance to dust off my C# and XAML skills.
As someone who’s been primarily focused on web development with Astro and various other technologies recently, diving back into mobile development feels both nostalgic and refreshing. There’s something satisfying about creating apps that users can carry in their pockets.
The Geology Connection
The original concept was born from my fascination with geology, fossils and the idea that almost anyone needed better digital tools to understand what lies beneath their feet. While there are geological apps available, I wanted to create something that combined:
Field Data Collection: GPS-enabled rock sample logging
Mineral Identification: Visual guides and decision trees
Geological Mapping: Offline-capable mapping with geological overlays
Educational Content: Interactive learning modules for geology students
The app isn’t about professional use - it’s about making geology accessible to hobbyists, students, and anyone curious about the ground beneath their feet. Whats there now and what was there millions of years ago.
The Development Reality Check
Starting this project has been an immediate reality check about the current state of mobile development, particularly around iOS development. While .NET MAUI promises “write once, run everywhere,” the reality is more nuanced:
The Apple Ecosystem Hurdles
If you’re coming from web development or Windows-focused development, preparing for iOS deployment is… well, it’s quite the journey:
Apple Developer Account: $99/year just to get started with device testing and App Store deployment
Mac Requirement: You absolutely need a Mac for iOS development and deployment
Provisioning Profiles: The certificate and provisioning profile dance is real
App Store Guidelines: Apple’s review process and guidelines are extensive
Thus the iOS app is definitely on the back burner for now. Coming from the relatively straightforward world of web deployment, this feels like a significant barrier to entry. It’s not insurmountable, but it definitely adds complexity and cost to what might otherwise be a simple cross-platform project.
The Learning Curve
My C# and XAML skills are definitely rusty. While the core concepts remain the same, .NET MAUI introduces new patterns, controls, and ways of thinking about UI development. Some observations so far:
MVVM is Still King: The Model-View-ViewModel pattern remains central to MAUI development
Hot Reload: The development experience has improved significantly with hot reload capabilities
Platform-Specific Code: While you can share most code, platform-specific implementations are sometimes necessary
Pair Programming with AI
This project represents my second major “pair coding with AI” endeavor (the first being my NHS Trawler project). The experience has been fascinating: AI can handle a lot of the boilerplate and repetitive tasks, but it still requires human oversight for architecture decisions, user experience considerations, and domain-specific knowledge. [15/09/2025 - I’ve been using GPT-5 and Claude for this project, and it’s been a bit of a learning curve in terms of productivity, definitely sometimes think why do I bother, its good at the logic code bit but not so much at the higher level design especially UX - for example white text on a white background, clearly it needs some kind of visualization pipeline. It’s still early days for AI pair programming, but I do think it has a future.]
What AI Does Well
Boilerplate Generation: Setting up MVVM patterns, dependency injection, and basic project structure
XAML Layout Assistance: Helping with complex UI layouts and styling
Platform-Specific Solutions: Providing iOS and Android specific implementations when needed
Best Practices: Suggesting modern .NET MAUI patterns and approaches
Where Human Insight Remains Crucial
Architecture Decisions: High-level app structure and data flow design
User Experience: Understanding the actual workflow of field geologists, and steering the UI/UX accordingly
Problem Domain Knowledge: Geology-specific requirements and terminology
Testing Strategy: Knowing what edge cases matter in real-world geological applications
Debugging Complex Issues: AI can help identify problems, but human intuition is often needed to resolve them
UI/UX Design: AI can suggest layouts, but human eyes are needed to ensure they work in practice
Basic project structure is in place with proper MVVM architecture
SQLite database integration for offline data storage
GPS integration for location-based sample logging
Basic UI wireframes for the main modules
Initial Android deployment and testing is successful
Google AdMob integration for potential monetization, at least for the Android version
Current Roadblocks
iOS development environment setup (working on accessing a Mac)
Offline mapping implementation (evaluating different mapping libraries)
Complex geological data structures (mineral classification hierarchies)
The Road Ahead
This project is more than just a coding exercise - it’s a journey back to mobile development after years away, a chance to refresh foundational skills, and an opportunity to create something genuinely useful for anyone interested in geology.
Immediate Goals
Complete MVP: Basic sample logging with GPS coordinates
iOS Development Setup: Get the Apple development pipeline working
Offline Capabilities: Implement robust offline data storage and sync
Testing Framework: Set up proper unit and integration testing
Future Aspirations - definitely aspirational
Community Features: Allow geologists to share findings and collaborate
Machine Learning: Image recognition for mineral identification
AR Integration: Augmented reality features for field visualization
Educational Platform: Interactive learning modules for geology students
Lessons Learned (So Far)
Platform Complexity is Real: Cross-platform development still requires platform-specific knowledge
Tooling Has Improved: The development experience is much better than the Xamarin.Forms days
AI Partnership Works: The combination of AI assistance and domain knowledge is powerful
Patience is Essential: Mobile development moves slower than web development
Following Along
I’ll be documenting this journey through regular blog updates and maintaining a detailed project page. If you’re interested in .NET MAUI development, geology, or just enjoy following along with someone else’s coding adventures, stay tuned.
The intersection of technology and science has always fascinated me, and this project sits right at that crossroads. Whether it ends up being used by professional geologists or becomes a learning tool for students, the journey itself is proving invaluable.
Related: Check out the detailed project documentation for technical specifics, code samples, and architecture decisions.
Next up: Getting that iOS development environment properly configured and diving deeper into offline mapping solutions. The real fun is just beginning!