Technical Workshop 2024


PSA: The goal is to create a productive and engaging workshop that fosters clear communication and helps everyone align on the best architectural approaches.


Workshop Topics


1. Internationalization (i18n) Structure

  • Goal: Establish a clear and consistent pattern for organizing language translations.
  • Discussion Points:
    • Should we adopt a ScreenOrComponent.Text format (e.g.,t("LoadingPlaceholder.Connection"))?
    • How do we handle commonly used phrases like "Cancel" or "Accept"?
    • Are there other naming conventions or organizational structures we should consider?


2. Customization Levels

  • Goal: Make the application easier to customize at different levels without overwhelming developers with a complex theming system.
  • Discussion Points:
    • Simple Style Overrides: How can we enable easy overrides for basic styles like button borders or colors?
    • Component Replacement: What's the best way to allow teams to completely replace a component with their own custom implementation?
    • Navigation Customization: How do we handle overrides for navigation elements while maintaining a consistent user experience?

Additional Considerations (Optional)

  • Include a section on best practices and tools for internationalization and customization.
  • Theming
    • Toasters? Yes/No/Maybe
    • Dark Mode / Light Mode
    • Backwards Compatible (when something is added, it shouldn't break)
    • Logos/Images
  • If time permits, a hands-on exercise or example could help solidify understanding.


3. NPM namespace

  • Goal: Migrate to a new namespace so that we can leave the "aries"
  • Discussion Points:
    • We need to migrate away from the use of the "aries" name in our packages
    • This can be done at the same time as we move to release 1.0.0 of the bifold package


4. File System Organization

  • Goal: To better organize the project structure is it is easier to reason about and maintain
  • Discussion Points:
    • Rename "App" to "src"
    • There are two "app" in Bifold where there should be one, probably at the root of the project.


5. Upgrade React Native and use Expo

  • Goal: To better maintain forward compatibility with RN and other related projects
  • Discussion Points:
    • Update to lates RN
    • Looks as through Expo is not the oficial package management system