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
Flutter or React Native
Search
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
64
GoによるGraphQLの実装
keinuma
0
3.4k
Atomic Design手法
keinuma
0
100
なぜAtomic Designが生まれたか
keinuma
0
93
Other Decks in Programming
See All in Programming
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
110
残高管理から台帳サービスへの進化
artoy
1
200
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
130
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
34
16k
JRuby: Past, Present, and Future
headius
0
230
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
370
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
400
ジョジョの世界をXRで再現する
mofurune
0
150
カツオ、ご期待ください
suneo3476
0
170
R8 の設定見直しでアプリサイズ削減
andpad
0
210
コードで差別化できない時代の ソフトウェアエンジニアリング / Software Engineering in an Era Where Code Doesn’t Differentiate
kishida
2
160
Simple Storage Service(S3) is not simple
iwatsukayura
0
270
Featured
See All Featured
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5.2k
Balancing Empowerment & Direction
lara
6
1.3k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Navigating Weather and Climate Data
rabernat
0
550
Code Reviewing Like a Champion
maltzj
529
40k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Test your architecture with Archunit
thirion
2
2.4k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
450
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
[SF Ruby Conf 2025] Rails X
palkan
3
1.4k
Exploring anti-patterns in Rails
aemeredith
4
530
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