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
TypeScript と Amplify を使った概念検証術
Search
oto trip
March 04, 2023
Technology
0
430
TypeScript と Amplify を使った概念検証術
oto trip
March 04, 2023
Tweet
Share
More Decks by oto trip
See All by oto trip
AWS Amplify Gen2 GA ! 裏側をちょっと覗いて、Gen2と仲良くなろう.pdf
ototrip
1
330
さっそくチェック! Amplify Gen2のデプロイ体験
ototrip
1
460
Maestroで楽がしたい!
ototrip
0
230
Amplify + React Nativeで挑む! 新規事業アプリの開発
ototrip
0
430
Other Decks in Technology
See All in Technology
DroidKaigi 2025 Androidエンジニアとしてのキャリア
mhidaka
2
390
メルカリIBISの紹介
0gm
0
550
IoT x エッジAI - リアルタイ ムAI活用のPoCを今すぐ始め る方法 -
niizawat
0
130
AIがコード書きすぎ問題にはAIで立ち向かえ
jyoshise
1
460
RSCの時代にReactとフレームワークの境界を探る
uhyo
11
3.5k
新規プロダクトでプロトタイプから正式リリースまでNext.jsで開発したリアル
kawanoriku0
1
220
AI時代を生き抜くエンジニアキャリアの築き方 (AI-Native 時代、エンジニアという道は 「最大の挑戦の場」となる) / Building an Engineering Career to Thrive in the Age of AI (In the AI-Native Era, the Path of Engineering Becomes the Ultimate Arena of Challenge)
jeongjaesoon
0
260
人工衛星のファームウェアをRustで書く理由
koba789
15
8.3k
dbt開発 with Claude Codeのためのガードレール設計
10xinc
2
1.3k
Claude Code でアプリ開発をオートパイロットにするためのTips集 Zennの場合 / Claude Code Tips in Zenn
wadayusuke
5
2.2k
MagicPod導入から半年、オープンロジQAチームで実際にやったこと
tjoko
0
110
開発者を支える Internal Developer Portal のイマとコレカラ / To-day and To-morrow of Internal Developer Portals: Supporting Developers
aoto
PRO
1
480
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
RailsConf 2023
tenderlove
30
1.2k
What's in a price? How to price your products and services
michaelherold
246
12k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
A designer walks into a library…
pauljervisheath
207
24k
We Have a Design System, Now What?
morganepeng
53
7.8k
For a Future-Friendly Web
brad_frost
180
9.9k
How GitHub (no longer) Works
holman
315
140k
Git: the NoSQL Database
bkeepers
PRO
431
66k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Transcript
1 TypeScriptとAmplifyを使った概念検証術 MixLeap Study #70 - 教えて!みんなのTypeScript Copyright © MEC
Co., Ltd. All Rights reserved. 2023.03.02 Yuji Adachi
2 Copyright © MEC Co., Ltd. All Rights reserved. 自己紹介
足立 優司 (@adt0705 ) 所属 メック株式会社 オトとりっぷの技術責任者 よく使う AWS, React / React Native 技術, 言語 Python, TypeScript TypeScript歴 3年ぐらい
3 経歴 Copyright © MEC Co., Ltd. All Rights reserved.
化学メーカで研究開発に従事 ↓ 新規事業担当、犬専用音楽を検討開始 ↓ 実証実験用に自作でWebアプリやIoTシステム構築 のべ200頭以上で実験 ↓ 本格的にモバイルアプリケーション開発開始 フロントエンドにTypeScript導入 お手製の加速度センサー 実験中のフィオちゃん
4 Copyright © MEC Co., Ltd. All Rights reserved. 留守番インターフェースアプリ
♫ ♩ ♪ ♬ ♩
5 Copyright © MEC Co., Ltd. All Rights reserved.
6 Copyright © MEC Co., Ltd. All Rights reserved. 概念検証フェーズは、
TypeScript一本で十分に戦える。 今日話したいこと
アジェンダ Copyright © MEC Co., Ltd. All Rights reserved. 概念検証フェーズとTypeScript
少しの後悔 オトとりっぷとTypeScript
アジェンダ Copyright © MEC Co., Ltd. All Rights reserved. 概念検証フェーズとTypeScript
少しの後悔 オトとりっぷとTypeScript
9 オトとりっぷのアーキテクチャ Copyright © MEC Co., Ltd. All Rights reserved.
React Native CDK Amplify TypeScriptを使用
10 オトとりっぷのフロントエンド Copyright © MEC Co., Ltd. All Rights reserved.
React Native Redux / Redux Toolkit Amplify Sentry React Navigation Expo
11 React Native in TypeScript Copyright © MEC Co., Ltd.
All Rights reserved. jacket/index.tsx jacket/styles.ts 型安全に開発 型 = ドキュメントになるのがいい Jacketは「s, m ,l」の3種類サイズ
12 React NativeとTypeScriptの関係 Copyright © MEC Co., Ltd. All Rights
reserved. https://reactnative.dev/blog/2023/01/03/typescript-first RN0.71よりTypeScriptが標準化 多くのライブラリがTypeScript対応済み
13 Redux Toolkit Copyright © MEC Co., Ltd. All Rights
reserved. 一元管理されたState(状態)を型で縛れる
14 PlayTorch Copyright © MEC Co., Ltd. All Rights reserved.
エッジ推論のためのライブラリ https://playtorch.dev/docs/tutorials/snacks/yolov5/ React NativeでPyTorch 学習済みモデルを動かす ことができる PyTorch:機械学習用の Pythonライブラリ
15 AWS CDK in TypeScript Copyright © MEC Co., Ltd.
All Rights reserved. AWSのインフラをTypeScriptで記述できる Pythonもあるが、型安全の方が絶対いい
アジェンダ Copyright © MEC Co., Ltd. All Rights reserved. 概念検証フェーズとTypeScript
少しの後悔 オトとりっぷとTypeScript
17 Copyright © MEC Co., Ltd. All Rights reserved. TypeScriptからちょっと脱線しますが、
概念検証とAmplifyの話します!
18 概念検証とは Copyright © MEC Co., Ltd. All Rights reserved.
簡易的なプロダクトを作成し、 ビジネス的, 技術的に実現可能かを検証すること 重要視しているポイントは、 1. 開発リソースが少ないこと 2. ある程度の拡張性が担保されていること 3. メンテナンスが容易であること
19 Amplifyとは Copyright © MEC Co., Ltd. All Rights reserved.
• Amplify CLI(メインで使用) コマンドラインからAWSリソースを作成 • Amplify Framework 各種クライアントフレームワーク用UI • Amplify Console ホスティングやCI/CD AWSの各種リソース作成のためのお助けフレームワークとして機能
20 Amplify CLIによるAWS構築 Copyright © MEC Co., Ltd. All Rights
reserved. オトとりっぷのアーキテクチャ 作成可能なAWSサービス例 • 認証(Cognito) • GraphQL API(AppSync) • データベース(DynamoDB) • ストレージ(S3) モチベーション 「VPCなどのインフラ管理やりたくない」
21 AmplifyによるAPI管理 Copyright © MEC Co., Ltd. All Rights reserved.
schemaを定義 FE Amazon DynamoDB 型が定義される (CRUD) APIの管理がスキーマに集中できる フロントエンドの型からバックエンドDBの構造まで一気通貫管理 BE DBが生成する
22 概念検証でAmplifyを使うメリット Copyright © MEC Co., Ltd. All Rights reserved.
「スピード重視したい」と「型安全にいきたい」は トレードオフと思ってた ↓ でもAmplifyを使えば、おいしいとこ取りできる。 • 概念検証フェーズならではのスピード重視 • 大規模開発だとアンチパターンでも、 概念検証は1~2人で開発だから問題が顕在化しにくい
アジェンダ Copyright © MEC Co., Ltd. All Rights reserved. 概念検証フェーズとTypeScript
少しの後悔 オトとりっぷとTypeScript
24 後悔の正体 Copyright © MEC Co., Ltd. All Rights reserved.
AWS Lambdaの言語にPythonを選択したが、 TypeScriptにしとけばよかった。 Pythonを採用した理由 • AWS Lambda Powertools Python • Amazon CodeGuru Reviewer • チーム員の出自:計算化学、機械学習
25 AWS Lambda Powertools Copyright © MEC Co., Ltd. All
Rights reserved. LoggerとTracerが便利 でもTypeScriptも出たので、今となってはPythonじゃなくてもいい https://aws.amazon.com/jp/about-aws/whats-new/2022/07/aws-lambda-powertools-typescript-available/
26 Powertools機能紹介 : Logger Copyright © MEC Co., Ltd. All
Rights reserved. Amazon CloudWatch Logsを整形してくれる • ログメッセージのフォーマット • コールドスタートやfunction情報など AWS Lambda上のコード CloudWatch Logsへの出力結果
27 Powertools機能紹介 : Tracer Copyright © MEC Co., Ltd. All
Rights reserved. https://aws.amazon.com/jp/blogs/news/simplifying-serverless- best-practices-with-aws-lambda-powertools-for-typescript/ AWS X-Rayに情報を出力してくれる X-Rayとは:リクエストに関するデータを収集するサービス サーバーレスの味方
28 Amazon CodeGuru Reviewer Copyright © MEC Co., Ltd. All
Rights reserved. コードレビューしてくれる(PRに対してコメントくれる) この機能はTypeScriptまだない(まだかなー)
まとめ Copyright © MEC Co., Ltd. All Rights reserved. 概念検証フェーズは、
TypeScript一本で十分に戦える Amplifyやサーバーレスを掛け合わせることで、 少人数ならではの最適化を実現できる
30 オトとりっぷに協力してくれる人を 募集しています! OTO TRIP Ambassador Copyright © MEC Co.,
Ltd. All Rights reserved. ご興味ある方は、このあとお話しおねがいします!!
ありがとうございました!