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
Flutter or React Native
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
keinuma
November 17, 2020
Programming
140
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Flutter or React Native
keinuma
November 17, 2020
More Decks by keinuma
See All by keinuma
品質と新規開発のバランス / Quality and new development
keinuma
0
2.4k
Firestoreを実装してみた話
keinuma
0
61
GoによるGraphQLの実装
keinuma
0
3.4k
Atomic Design手法
keinuma
0
94
なぜAtomic Designが生まれたか
keinuma
0
91
Other Decks in Programming
See All in Programming
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
2
430
Technical Debt: Understanding it Rightly, Engaging it Rightly #LaravelLiveJP
shogogg
0
210
LLM Plugin for Node-REDの利用方法と開発について
404background
0
170
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
490
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
380
Spec-Driven Development with AI-Agents: From High-Level Requirements to Working Software
antonarhipov
2
480
並列実装の現場、2ヶ月間実務でAIを使い倒したAIもPCも私も限界が近い
ming_ayami
0
120
Make SRE Operations Easier with Azure SRE Agent
kkamegawa
0
5.2k
AIで効率化できた業務・日常
ochtum
0
120
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
0
200
Oxcを導入して開発体験が向上した話
yug1224
4
300
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
13
3.6k
Featured
See All Featured
The Curious Case for Waylosing
cassininazir
1
380
Testing 201, or: Great Expectations
jmmastey
46
8.2k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
190
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
380
Odyssey Design
rkendrick25
PRO
2
690
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
190
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
Navigating Weather and Climate Data
rabernat
0
220
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
330
Transcript
Flutter と React Native 2020/11/17 沼⽥ 1 / 32
回のお カミナシではReact Native + Expo を利⽤してる Flutter はReact Native と
すると何が しいか知りた い 開発・ ⽤ 点でまとめてみた 2 / 32
論 Flutter はエコシステムが していてアプリ開発に必 な が っている ⽇ の事例が ないが
も えてきそう 3 / 32
React Native で えない はExpo と してお します 4 /
32
ポイント . 基 情 . 開発 . UI . 状
理 . テスト 5 / 32
基 情 6 / 32
Flutter React Native 業 Google Facebook Dart JavaScript GitHub スター
107k 91.3k 7 / 32
開発 8 / 32
React Native パッケージ 理は npm or yarn Lint + Formatter
は ESLint + Prettier ホットリロード 開発、リリースはExpo CLI が便利 9 / 32
Flutter パッケージ 理は pub(Yaml) 開発 構築、Lint は Flutter CLI アプリ向けビルドできる
ホットリロード 10 / 32
pubspec.yaml の例 name: flutter_sample environment: # Flutter SDK のバージョンを指 sdk:
">=2.7.0 <3.0.0" dependencies: # flutter: sdk: flutter dev_dependencies: flutter_test: sdk: flutter flutter: # アプリの基 Theme 、フォントの情 を できる uses-material-design: true 11 / 32
開発 Flutter CLI はExpo CLI 相当の を提供している 開発、リリース周りは とも はない
12 / 32
UI レンダリング 13 / 32
React Native React のコア を利⽤してレンダリング React Native のコンポーネントがネイティブ のUI と⼀
している React Native のView は Android の android.view であり iOS の UIView 14 / 32
Flutter Flutter は FW のAPI を担うflutter/flutter と描 周りの flutter/engine がある
flutter/engine は独⾃のレンダリングエンジ ンになっている 15 / 32
Flutter の構成 16 / 32
UI 17 / 32
React Native JSX を使ってHTML Like にかける Style を使ってCSS Like にレイアウト、⾒た
⽬を えられる 的な React Native ⾃体は のコンポーネント のみ UI ライブラリを利⽤することが い 18 / 32
Flutter React にインスパイアされてるので 的 は⼀ Widget を使って する ⽤ されているWidget
の種 が い Material Design はpackage なしで使え る 19 / 32
class MyAppBar extends StatelessWidget { MyAppBar({this.title}); final Widget title; @override
Widget build(BuildContext context) { return Container( height: 56.0, padding: const EdgeInsets.symmetric(horizontal: 8.0), decoration: BoxDecoration(color: Colors.blue[500]), child: Row( children: <Widget>[ IconButton( icon: Icon(Icons.menu), tooltip: 'Navigation menu', onPressed: null ), Expanded( child: title, ), IconButton( icon: Icon(Icons.search), tooltip: 'Search', onPressed: null, ) ], ) ); } } 20 / 32
UI React Native, Flutter 共に 的UI で す ることは⼀ UI
コンポーネントの 度はFlutter が上 21 / 32
状 理 22 / 32
React Native ローカルはhooks を利⽤ Global にはRedux, Mobx, Recoil, Rx が
択 に 上がる Store を⼀つ持って各コンポーネントが 照、更 する 23 / 32
Flutter ローカルはFlutter 向けのhooks を利⽤(パッ ケージ) Global State は の がある
Redux, RxDart block Riverpod + Freezed + state_notifier 24 / 32
状 理 React Native, Flutter 共に の⼿ がある Flutter はまだまだメインの
を い って いる mono さんは の Riverpod + Freezed + state_notifier をおすす めしてる 25 / 32
テスト 26 / 32
React Native Unit Test: Jest Integration Test: Jest snapshot test
or Storybook E2E Test: Cypress, Selenium 27 / 32
Flutter Unit Test: flutter_test Integration Test: WidgetTest in flutter_test E2E
Test: flutter_driver 28 / 32
テスト React Native はJest や のライブラリに している Flutter は 式パッケージ内で各レイヤのテ
ストが する 29 / 32
React Native との み けは エコシステムの 点だとFlutter に 配が上がりそ う
JavaScript をWeb と共有したい場 はReact Native が良さそう Flutter for web に期待 30 / 32
まとめ Flutter はアプリ開発に必 な 、 ⽤フローが っている Flutter の不採⽤理由に 不⾜が
ることは な い 31 / 32
式ドキュメント 著 なFlutter エンジニアのTwitter @_mono さん @razokulover さん mono さんのMedium
https://medium.com/flutter-jp/ 32 / 32