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
320
TypeScript と Amplify を使った概念検証術
oto trip
March 04, 2023
Tweet
Share
More Decks by oto trip
See All by oto trip
さっそくチェック! Amplify Gen2のデプロイ体験
ototrip
1
200
Maestroで楽がしたい!
ototrip
0
92
Amplify + React Nativeで挑む! 新規事業アプリの開発
ototrip
0
280
Other Decks in Technology
See All in Technology
Getting started with controlling LEGO using Swift
hcrane
0
140
オブジェクト指向宗教史
tanakahisateru
14
12k
Azureコストは水道代/The_47th_Tokyo_Jazug
aeonpeople
3
390
生成AIサービスPanorama AIご説明資料
sdt
0
300
統計的学習理論読み Chapter 2
kmatsui
1
290
Oracle Database で機械学習を始めよう! Oracle Machine Learning
oracle4engineer
PRO
1
140
今さら聞けない!? AWSの生成AIサービス Amazon Bedrock入門!
minorun365
PRO
11
2.7k
バッチ処理のSLOをどう設計するか
rynsuke
7
590
中央集権体制からDataOpsへの転換 / centralized-to-dataops-transformation
pei0804
7
1.6k
エンジニアブランディングチームの KPI / KPI's of engineer branding team
chaspy
1
140
Autify Company Deck
autifyhq
1
30k
KubeCon EU 2024 : Knative Maintainers Session
salaboy
0
380
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
23
1.9k
Bootstrapping a Software Product
garrettdimon
PRO
302
110k
Fashionably flexible responsive web design (full day workshop)
malarkey
397
65k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
355
22k
Fireside Chat
paigeccino
19
2.6k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
11
1.4k
Rails Girls Zürich Keynote
gr2m
91
13k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
153
14k
Infographics Made Easy
chrislema
237
18k
GraphQLとの向き合い方2022年版
quramy
28
12k
The Invisible Customer
myddelton
114
12k
Build your cross-platform service in a week with App Engine
jlugia
223
17k
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. ご興味ある方は、このあとお話しおねがいします!!
ありがとうございました!