Gone Mobile

94: Anatomy of an App

February 16th, 2024

In this episode, Jon and Allan discuss the process of building a mobile app, starting with the analogy of building a lightsaber at Disney. They explore the anatomy of a mobile app, including the use of MVVM architecture and the importance of gluing logic together. They also delve into navigation and the use of Shell in Xamarin.Forms. The conversation then shifts to the benefits of using dependency injection in app development and the considerations for cross-platform development. In this episode, Allan and Jon discuss various aspects of app development, including dependency injection, core services, and cross-platform services. They emphasize the importance of creating a base set of services and thinking outside the box when faced with UI design challenges. They also highlight the significance of solving business problems first and introduce Prism as a comprehensive app architecture framework.


  • Building a mobile app involves various components, including the user interface, logic, and navigation.
  • MVVM (Model-View-ViewModel) architecture is a popular approach for separating the presentation logic from the user interface.
  • Shell in Xamarin.Forms provides a convenient way to handle navigation in mobile apps.
  • Dependency injection (DI) can simplify the management of dependencies and improve testability in app development.
  • Cross-platform development allows for code sharing and reduces development time and effort. Use dependency injection and service injection to manage dependencies and improve code maintainability.
  • Create a base set of services that are core to every page in your app to simplify dependency injection.
  • Think outside the box and consider alternative approaches when faced with UI design challenges.
  • Solve business problems first and focus on reusability only when patterns emerge.


  • Hosts: Jon Dick, Allan Ritchie
  • Audio Engineer: Jim Heath


  • 00:00 Introduction and Building a Lightsaber
  • 03:11 Anatomy of a Mobile App
  • 08:15 Gluing Logic with MVVM
  • 17:36 Navigation and Shell
  • 23:42 Using Dependency Injection
  • 30:34 Cross-Platform Considerations
  • 33:24 Dependency Injection and Service Injection
  • 34:35 Core Services and Cross-Platform Services
  • 36:25 Creating a Base Set of Services
  • 37:11 Anatomy of a Maui App
  • 38:19 The UI as the Top Bun
  • 39:17 The Importance of Connectivity
  • 41:14 Thinking Outside the Box in App Development
  • 44:48 Navigating UI Design Challenges
  • 48:09 Custom Controls and Creative Solutions
  • 54:29 Solving Business Problems First
  • 58:38 Prism: A Comprehensive App Architecture Framework

Episode Comments