Dart Mono-repo Management for Efficient Code Sharing & Collaboration

Generated by BlueWillow AI

Majid Hajian

mhadaily

Problem

mhadaily

import 'package:flutter/material.dart';
MaterialApp(
   ThemeData(
        name: "Majid Hajian",
        location: "Oslo, Norway",
        description: '''
                Google Developer Expert
        	Passionate Software engineer, 
	        Community Leader, Author and international Speaker
         ''',
        main: "Head of DevRel at Invertase.io",
        homepage: "https://www.majidhajian.com",
        socials: {
          twitter: "https://www.twitter.com/mhadaily",
          github: "https://www.github.com/mhadaily"
        },
        author: {
          Pluralsight: "www.pluralsight.com/authors/majid-hajian",
          Apress: "Progressive Web App with Angular, Book",
          PacktPub: "PWA development",
          Udemy: "PWA development",
        }
        founder: "Softiware As (www.Softiware.com)"
        devDependencies: {
          tea: "Ginger", 
          mac: "10.14+",
        },
        community: {
          FlutterVikings: "Orginizer", 
          FlutterCommunity: "Admin/Lead",
          ...more
        },
        ),
       );

mhadaily

Find me on the internet by

Head of DevRel at Invertase

Majid Hajian

mhadaily

Photo from monorepo.tools

Monorepo ≠ Monolith

?

Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure.

-- Melvin Conway

Advantages 

  • Collaboration
  • Dependencies management
  • Refactoring

Disadvantages 

  • Git operation might be slow 
  • Pipeline issues
  • Versioning 
  • Broken master
  • IDE lag
  • Bazel (by Google)

  • Gradle Build Tool (by Gradle, Inc),

  • Lage (by Microsoft),

  • Nx (by Nrwl),

  • Rush (by Microsoft)

  • Melos (by Invertase)

Transparent remote execution

Code generation

Code sharing

Local task orchestration Fast

Workspace analysis

Distributed task execution

Local task orchestration

Detecting affected projects/packages

Dependency graph visualization

Project constraints and visibility 

monorepo.tools

Consistent Coding

customer 

id

name

interest

Sales

customer 

id

name

email

phone

Models

 

customer 

id

address

availability

Order

Fetch

 

 

Data Layer

 

Services

Open Host Service

API

mhadaily

App1

App2

Backend

A tool for managing Dart projects with multiple packages

DEMO

mhadaily

Find me on the internet by

Head of DevRel at Invertase

Majid Hajian

Slides

slides.com/mhadaily

Made with Slides.com