Gone Mobile

106: Structuring Apps

May 10th, 2024

The conversation discusses the importance of structuring apps in terms of business requirements and how to make them easier to navigate and understand. It emphasizes the need to focus on translating business requirements into technology and suggests organizing projects based on business logic rather than technology layers. The conversation also touches on the use of services and the benefits of grouping them by section or feature. Additionally, the conversation explores the challenges of using IL manipulators and the limitations of certain frameworks in the context of C# hot reload. It concludes with a discussion on the need for base implementations and templates that provide guidance on structuring apps and implementing MVVM patterns. In this conversation, Jonathan and John discuss the importance of structuring services in mobile app development. They explore the use of MVVM frameworks like Prism and the challenges of writing technical code on top of existing tech services. They also discuss the benefits of using events and observables in services, as well as the use of dependency injection and the Microsoft implementation. The conversation concludes with a recommendation for the Refit library as the plugin packager product of the week.


  • Organize projects based on business logic rather than technology layers
  • Group services by section or feature to improve discoverability
  • Be cautious when using IL manipulators in mobile apps
  • Consider the limitations of certain frameworks in the context of C# hot reload
  • Provide base implementations and templates to guide app structure and MVVM implementation Structuring services in mobile app development is crucial for maintaining code organization and scalability.
  • MVVM frameworks like Prism provide a comprehensive structure for building full-featured apps.
  • Writing technical code on top of existing tech services can lead to complexity and bugs.
  • Using events and observables in services can simplify communication between components and reduce code duplication.
  • Dependency injection is a powerful tool for managing service dependencies and improving testability.
  • The Refit library is a recommended tool for generating HTTP clients from interfaces in a clean and efficient way.


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


  • 00:00 Introduction
  • 00:59 Challenges of App Layout
  • 01:27 Discoverability of Business Logic
  • 03:18 Organizing Projects by Business Logic
  • 04:47 Grouping Services by Section
  • 06:44 Considerations for Global Services
  • 08:42 Moving Services to Relevant Folders
  • 10:03 Multiple Implementations of Services
  • 13:18 Challenges of IL Manipulators and C# Hot Reload
  • 19:07 Importance of Base Implementations and Templates
  • 00:12 Introduction
  • 00:29 Structuring Services in Mobile App Development
  • 34:20 The Benefits of Using Events and Observables in Services
  • 39:43 Dependency Injection and the Microsoft Implementation
  • 53:07 Plugin Packager Product of the Week: Refit
  • 01:03:36 Conclusion

Episode Comments