Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Amplify Boostup #2 monorepo 運用による複数プロジェクト開発
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
cohe aoki
March 20, 2023
Programming
760
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Amplify Boostup #2 monorepo 運用による複数プロジェクト開発
cohe aoki
March 20, 2023
More Decks by cohe aoki
See All by cohe aoki
BMG が生成したピッチ資料のデモ
coa00
0
600
Amplify Boostup #2 Multi project using monorepo
coa00
0
78
LLMを使ったチームのプロダクト開発の生産性を向上させる取り組み
coa00
0
48
サーバレス技術を活用したエンジョイ スピード開発
coa00
1
400
【Amplify Japan UG x Startup】Amplify チームによる プロダクト開発
coa00
0
720
Expo と Amplifyを使って Webとアプリを同時開発
coa00
0
1.5k
Expo & Amplifyを使ってWebとアプリを同時開発した話
coa00
2
1k
Other Decks in Programming
See All in Programming
気持ちぃ〜角丸 Squircle
ryu1013
0
320
ActionController meets Protocol Buffers
sorah
0
660
Next.js: The final boss of Web Performance
guaca
0
310
ChromeでローカルLLM
ryu1013
0
160
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
2
1.2k
contenteditable と日本語入力に向き合う
colorful12
0
210
GraphQL の onError と Nullability のこれから
quramy
0
140
No More NoSuchMethodError
exoego
1
110
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
310
Event is what happens
moro
2
1.2k
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
3
1k
Featured
See All Featured
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
360
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
410
WCS-LA-2024
lcolladotor
0
900
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Exploring anti-patterns in Rails
aemeredith
4
540
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
500
GitHub's CSS Performance
jonrohan
1033
470k
Speed Design
sergeychernyshev
33
2.2k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Transcript
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
Amplify Boostup #2 monorepo 運用による複数プロジェクト開発 株式会社 PURPOM MEDIA LAB (ピュアポムメディアラボ) 青木光平
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
自己紹介 青木光平 (フロントエンドプログラマー、開発ディ レクター、UIUXデザイナー) 趣味 音楽、スプラトゥーン、メディアアート Amplifyいにしえ歴 3年 所属 Purpom Media Lab CEO Active Core CTO
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
目次 1. 自己紹介 2. 事例紹介 3. Ampfliy monorepo 4. nest.js による lambda の開発 5. 最後に
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
プロダクト開発は冒険。発注するお客さんに楽しんでもらいたい。
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
最小からはじめてサービスを大きくしたい MVP(最小限のプロダクト)を早期に 実際にユーザが触れることができる状 態を継続的に構築します。 お客様が実際にユーザー目線で触れ、 フィードバックをすることで、大きな ずれを防ぎます。 またリリース後もフィードバックを通 してアップデートすることで市場の指 示が得られるサービスを構築すること ができます。
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
デザインシステム デザイン、フロント構築も早くするた めにReact、Figmaのデザインシステ ムを日々育てています。 Amplify UIを使うとこのあたりも完全 に自動化できます。
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
どんなもの作っているの?(事例
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
介護IoT iOS アプリ(2023年リリース予定
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
スタートアップのプロダクト
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
Ampfliy monorepo
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
ユースケース)リソースを共有しつつ複数のフロントアプ リケーションに分けたい Front Web CMS Admin AppSync Congito S3 library
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
1. ディレクトリを作る apps/ backend amplify nextApp1 src nextApp2 https://docs.aws.amazon.com/ja_jp/amplify/latest/userguide/monorepo-configuration.html - apps ディレクトリ配下にbackend 飲み のディレクトリ、フロントエンドディレ クトリをそれぞれ作成 - backend は amplify init を行いバックエ ンド生成を実施。 - nextApp1, nextApp2 はnpx create-next-appを実行して生成しま す。
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
2. ビルドの設定 フロント - next.js の ホスティングの みを記述します。
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
3. ビルドの設定 バックエンド - バックエンドのみを生成し ます。 - フロントは特に何も行いま せん。
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
4. Graphql のコードの生成場所の調整 その1 - Amplifyが生成するGraphQL のコー ドをそれぞれに出力する - backend 配下に.graphqlconfig.yml を作成し、生成する場所を指定する ことが可能です。 - こちらは複数記述可能です。 - backend の中で amplify codegen を行うと指定したディレクトリに graqphql ディレクトリを作成する ことが可能です。
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
4. Graphql のコードの生成場所の調整 その2 1. フロントエンドで aws appsync get-introspection-schema --api-id {API ID} --format JSON schema.json 2. .graphqlconfig.yml を作成、 schemePathは、1でダウン ロードしたファイルを指定 3. amplify code gen で生成
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
6. 接続情報共有 - 通常だけど複雑 - aws-exports.js 経由で取得します。そのためにはフロント エンドに amplify pull を行う必要があります。 - 完全に分離 - フロント側でシンプルにするために環境は固定で切り替え る - 例 dotenv など
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
6. コードの共有 - npm, yarn の packages を使う - typesciptなら tsconfig の path を使う。 - next-transpile-modules(next.js) 限定を使う
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
6.1 packages workspace を使う - root の package に packages を作って、nodemodules も monorepo 管理することもできます。 - 注意点 yarn classic では動作しますが、yarn berry 以降での動 作が不安定です。他にもこのケースは動かないなどがあるよう です。 - 反省)はまりどころが多いので、個人的には設定しなくても良 いのではと思います。
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
6.2 tsconfig
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
nest.js による lambda の開発
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
ユースケース)アプリケーションの開発が進んだことによる functions 数の増加した - アプリケーションの開発が増えると function 数が増加します。 - 同じようなコードが増える。ライブラリの共通化 - デバッグの高速化が課題。 解決策が二つ - lambda Layer - monorepo
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
Nest.jsの特徴 - Webpack, node.js でビルドが 可能 - monorepo ベースの開発に対 応 - library の構築も可能 - TypeScript で対応可能
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
Demo
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
最後に ピュアポムメディアラボではAmplifyを使ったMVP開発の研究を行っています。 さらに高速開発をどうすればいいのか、工夫しながらやっています。 一緒に研究してくれる仲間募集中です。
[email protected]
Twitter: coa00
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
MVP 技術を 様々な案件を行いながら、PDCA回しながら改善してい ます
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
Thank You