Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Melos で始めるマルチパッケージ構成な開発
Search
Ryo Takeuchi
June 05, 2023
Programming
1
330
Melos で始めるマルチパッケージ構成な開発
Gamma で作成したオリジナルのスライドはこちらです。
https://gamma.app/docs/Melos--9421nyi6p0i2og1?mode=doc
Ryo Takeuchi
June 05, 2023
Tweet
Share
Other Decks in Programming
See All in Programming
PHPでWebSocketサーバーを実装しよう2025
kubotak
0
280
関数型まつりレポート for JuliaTokai #22
antimon2
0
160
レベル1の開発生産性向上に取り組む − 日々の作業の効率化・自動化を通じた改善活動
kesoji
0
130
NPOでのDevinの活用
codeforeveryone
0
810
Hypervel - A Coroutine Framework for Laravel Artisans
albertcht
1
110
効率的な開発手段として VRTを活用する
ishkawa
0
130
Is Xcode slowly dying out in 2025?
uetyo
1
260
PicoRuby on Rails
makicamel
2
130
A2A プロトコルを試してみる
azukiazusa1
2
1.3k
High-Level Programming Languages in AI Era -Human Thought and Mind-
hayat01sh1da
PRO
0
760
GraphRAGの仕組みまるわかり
tosuri13
8
530
テストから始めるAgentic Coding 〜Claude Codeと共に行うTDD〜 / Agentic Coding starts with testing
rkaga
12
3.2k
Featured
See All Featured
RailsConf 2023
tenderlove
30
1.1k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
A designer walks into a library…
pauljervisheath
207
24k
Side Projects
sachag
455
42k
Code Review Best Practice
trishagee
69
18k
The Cult of Friendly URLs
andyhume
79
6.5k
Automating Front-end Workflow
addyosmani
1370
200k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Practical Orchestrator
shlominoach
188
11k
Designing Experiences People Love
moore
142
24k
Transcript
Melos で始めるマルチ パッケージ構成な開発 YOUTRUST x ゆめみ Flutter LT 会@ 渋谷
by Ryo Takeuchi
自己紹介 たっつー Twitter: @tatsutakein GitHub: tatsutakein 株式会社ゆめみ所属 Android エンジニア Flutter
は趣味で少し触っている程度
目次 マルチパッケージ構成とは何か マルチパッケージ構成を使うメリット Melos とは何か Melos の基本的な使い方 Melos を使った開発の一例 おわりに
マルチパッケージ構成とは何か マルチパッケージ構成は、複数のパッケージを1 つのアプリケーションとして開発する方法です。各パッケ ージは独自の役割や機能を持ち、必要に応じて別々にインストールやアップデートができます。 android のリポジトリですが nowinandroid は非常 に参考になるマルチモジュール構成をしていま す。
GitHub GitHub -… A fully functional Android app built…
マルチパッケージ構成を使うメリット 1 保守性が高い 依存関係が明確になり、コードの保守が容易になります。 2 テストがしやすい パッケージごとに単体テストを実施することで、バグを検出しやすくなります。 3 開発が速い 各パッケージを独立に開発できるため、全体の開発期間が短縮されます。
4 拡張性が高い 新しい機能を追加する際、必要なパッケージだけを追加すれば済みます。
Melos とは何か Melos は、複数のパッケージを持つ Dart プロジェクトの管理を支援 するために使用される CLI ツールです。現在活発に開発が行われて おり、FlutterFire
などのプロジェクトで使用されています。 https://melos.invertase.dev/~melos-latest/ フロントエンドエンジニアの方は馴染みがあるかもしれませんが、 Lerna からインスパイアされたという記載があります。
Melos を使い始める Melos を使い始めるために簡単な手順が必要です。 Melos のインストール 1. ワークスペースのセットアップ 2. ワークスペースに
Melos をインストール 3. ワークスペースの設定 4. ブートストラップ を実行 5. 詳しくは公式の Getting Started を参照してください。 https://melos.invertase.dev/~melos-latest/getting-started
Melos を使った開発の一例
Melos を使った開発の一例 バレルで公開するファイルやメンバを制限できます。
Melos を使った開発の一例 デフォルトでは公開されていないメンバを使用しようとすると警告が出ます。 DON'T import implementation files from another package.
https://dart-lang.github.io/linter/lints/implementation_imports.html
Melos を使った開発の一例 analysis_options.yaml に以下の記載を追加します。
Melos を使った開発の一例 先ほどまでの Warning が Error に変わったことが確認できます 🎉
他にも便利なところ スクリプトを定義できる。 フィルタを設定することも可能。( build_runner に依存しているパッケージなど ) melos.yaml に 以下の記載をすると fvm
と入力する手間が省ける。 sdkPath: .fvm/flutter_sdk
おまけ 依存関係も各パッケージ毎に行えるようになるため Pull Request Labeler などを利用していると Renovate による PR 時の視認性もよくなります。
おわりに マルチパッケージな構成にすると本当に共通で利用したいもの・各パッケージのみで利用したいものが見 えてくると思います。 適切な責務で切り出す意識のきっかけになるので、ぜひ Melos の導入を検討してみてください。 また、実装を他のパッケージから隠蔽できることで DI をする時のメリットが大きくなります。 Riverpod
などを使用していると DI もしやすくなっていいですね 🍀