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とReact/ReactNativeでマルチプラットフォームアプリを1ヶ月...
Search
Yu Miyachika
November 27, 2020
Technology
4k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AmplifyとReact/ReactNativeでマルチプラットフォームアプリを1ヶ月で作る
Yu Miyachika
November 27, 2020
Other Decks in Technology
See All in Technology
AI時代に必要な脅威モデリング― 変化の速度に負けない理解とリスク判断
masakane55
4
1.1k
[AWS 秋のクラウドオペレーション祭り 2026]AWS DevOps Agentで変わるリリースと運用対応 ~リリース管理機能と Directed actions のご紹介~
furuton
4
1k
React Nativeでの OTA Updateって、 どう説明する?
ichiki1023
0
150
SDDの運用にめげずに向き合った話
sansantech
PRO
1
130
SREでアラート疲れを 解決しよう!
kairim0
1
210
AI時代のAPI開発を加速する品質ガードレール / API Quality Guardrails in the AI Era
yokawasa
0
160
Snapshot Testing in Practice: Predictable and Reliable SwiftUI Views
fespinoza
0
140
無理せず続ける、子育てエンジニアの学び
codmoninc
PRO
0
230
[2026 Oracle Technical Deep Dive] エンタープライズAIエージェントを支えるOCIソリューション。ラインナップと特徴を理解しよう! (2026年9月17日開催)
oracle4engineer
PRO
0
560
ビジネスを止めない技術的負債の返済のための戦略とその手法 - 技術的負債と向き合う / Complexity and Simplicity
soudai
PRO
3
650
Datadog の学び方 - あるいは、オブザーバビリティを学ぶとは何か
mananyuki
1
490
契約書画像からの情報抽出に特化した視覚接地モデルを育てる話
sansantech
PRO
1
150
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
390
Evolving SEO for Evolving Search Engines
ryanjones
0
310
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
From π to Pie charts
rasagy
1
390
Facilitating Awesome Meetings
lara
57
7.2k
How to make the Groovebox
asonas
2
2.5k
The World Runs on Bad Software
bkeepers
PRO
72
12k
GitHub's CSS Performance
jonrohan
1033
470k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
610
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Transcript
AmplifyとReact/ReactNative でマルチプラットフォームアプリ を1ヶ月で作る Amplify meetup #02 宮近 雄宇 / Yu
Miyachika 2020/11/27
宮近 雄宇 / Yu Miyachika • フロントエンドエンジニア • SIer4年 ->
フリーランス11年目 • iOSは4のころから • Reactはここ2年 • 好きなAWS Amplify, CodeBuild
お仕事について • お客様のDXのお手伝い • 3-4週でPoCをスクラム開発 • スプリント期間は1日
すなわち・・・
アジリティ 特化型 エンジニア
だから・・・
と相性が よかった
特にReactとの組み合わせが最高 ここ1年半、たくさんPoC開発やってきました
Amplifyの端的なメリット • 開幕15分でHTTPSのURLが払い出せる • 次の30分でAppSyncが立つ • 提供する価値に注力できる アジリティ重視のPoCにピッタリ!!
Amplifyの端的なデメリット • Cloud Formationの知識がないとツライ • カスタマイズしたいときはちょっと大変 • 更新頻度高すぎて「いつの間に…」事案
そろそろ本題。
少し前までのモバイル開発のつらみ • フロントエンド/バックエンド • 記述量に対して得られるアウトカムが低い • OSS無しでは非同期処理がつらい • UIのステート管理がつらい ⇨
とにかくDX(Developer Experience)が悪い
ソフトウェア開発は10年で大きく進化 • BaaS • クロスプラットフォーム • async / await •
宣言的UI
従来のモバイル開発環境もがんばってきた • Swift UI / Combine framework • Kotlin /
Coroutines ⇨ FacebookがReact NativeでWeb開発者をつれてきてし まった ⇨ GoogleがAndroid開発をFlutterで再定義してしまった (ついでにiOSも)
モバイル開発は クロスプラットフォーム+BaaSが台頭 React Native + AWS Amplify Flutter + Firebase
日本でも じわじわ人口増加中 日本ではあまり… 海外では結構多い?
引越し先をさがそう… 可否 / 興味 AWS Amplify Google Firebase React Native
◦ / ◎ ◦ / ◦ Flutter ✗(→△) / ✗ ◦ / △ React NativeならReactだしAmplifyあるし簡単っしょ 決定
コロナで完全リモート開始から数ヶ月たったある日… プロダクトオーナー S氏 社内でポッドキャスト始めたんだけど、 ちょっと視聴ストリーミングアプリ つくってほしいな〜? わたし 過去にSwiftでやっちゃってるから React Native+Amplifyの素振りしながらでも
いっすか? えー?いいよ
開発開始。
実はストリーミングアプリ、 得意分野だったのです • 無料音楽レーベルの公式アプリを 2010年に個人リリース • 2016年にSwiftで書き直して リニューアル ストリーミングアプリ =技術的お砂場の位置付け
開発開始から2日目… リスナーは ポッドキャストの 各回を選択して 視聴することができる AppSync DynamoDB S3 React Native
アプリ Amplify API Amplify Storage
開発開始から2日目… ちょっとデザイナーにも参加してもらって 真面目にプロダクトバックログ書くわ わたし 昔2週間、下手すると1ヶ月ぐらい かけてたことが2日…2日… デザイナー H氏 ウィッスー プロダクトオーナー
S氏
開発開始から2週間後… システムは、 ユーザーを認証・認 可できる (ログイン機能) 管理者は、エピソード を投稿・編集・削除で きる(管理画面) リスナーは、 もっとかっこいいア
プリをさわりたい (デザイン適用)
開発開始から2週間後… AppSync DynamoDB S3 React Native アプリ Amplify API Amplify
Storage React 管理画面 S3 CloudFront WAF Amplify Hosting Cognito Amplify Auth システムは、ユーザーを 認証・認可できる (ログイン機能) 管理者は、エピソードを投 稿・編集・削除できる(管理 画面) リスナーは、 もっとかっこいいアプリをさ わりたい (デザイン適用)
TIPS: マルチフロントエンドの魔法の言葉 $ amplify pull
開発開始から2週間後… よっしゃ運用周りもうちょい充実させたら 内部向けリリースするぞ わたし React Native、 レイアウトとルーティングが違うだけで あとReactと全部同じやん デザイナー H氏
ウィッスー プロダクトオーナー S氏
開発開始から1ヶ月後… リスナーはSlackの Botで新着エピソード の配信を知ることが できる リスナーはプッシュ通 知で新着エピソード の配信を知ることが できる あと色々
細かいところ…
開発開始から1ヶ月後… AppSync DynamoDB S3 React Native アプリ Amplify API Amplify
Storage React 管理画面 S3 CloudFront WAF Amplify Hosting Cognito Amplify Auth Lambda (Slack) Lambda (PUSH通知) CloudWatchEvent (定期実行) Amplify Function Slack FCM リスナーはSlackのBotで新着エピ ソードの配信を知ることができる リスナーはプッシュ通知で新着エ ピソードの配信を知ることができる ?
Amplify Push Notificationsにしたかった • Amplify Push Notificationsの実体はAWS Pinpoint • Firebase
Analytics + Firebase Cloud Messaging的存在 • AWS SNSと比べて、マーケティング寄り • 導通の確立に関するドキュメントが手薄い • トライして撃沈しました(当時は)
TIPS: APIとFunctionをつなぐ方法 クエリの定義 ディレクティブ Function名 LambdaResolverがこれだけで仕上がる DataSource,Resolver, Role, VTL…さよなら… 戻り値の型
なにはともあれ1ヶ月で完成。
React Native + Amplify、どうだったか • Reactで作ったhooksや通信部分を流用できる • Amplifyの文脈は全く一緒 • コード記述量の投資対効果抜群
• レイアウトとルーティングは違う • 各ネイティブの知識は必要なときもある
React / React Native + Amplifyで マルチフロントエンド開発やっていきましょう!
ご清聴ありがとうございました