狠狠撸

狠狠撸Share a Scribd company logo
みね
大阪.dart
Flutterと
Kotlin Multiplatform Mobileを
ディープに理解して比較する
共存して仲良くマルチプラットフォーム化しよう!
み ね @24卒 / @nihon_kaizou
twitter
univ 大阪経済大学経済学部4回生
lang JS/Dart/Go/Python/Rust/Kotlin/etc...
work 株式会社CyberAgent Androidエンジニア
hobby 旅行、カフェ巡り、飲み、音楽鑑賞
西峰 綾汰(にしみね りょうた)
name
自己紹介
目次
大阪.dart
Kotlin Multiplatform Mobile (KMM)のおさらい
#01
#02 言語(compiler)で比較する
#03 フレームワークで比較する
#04 まとめ
Kotlin Multiplatform Mobile (KMM)のおさらい
Kotlin Multiplatform (KMP) の全体像
Kotlinから共通して様々なプラットフォームへ
障壁なくアクセスできる状態を実現しようとしている
Kotlin Multiplatform Mobile (KMM)のおさらい
ビジネスロジックだけを
シェアしたいなあ...
UIはネイティブのもので
綺麗に描きたい...
言語(compiler)で比較する
Dart Kotlin
2018年にv2登場
Googleが開発
AOTとJITの両方の
コンパイルをサポート
JSを置き換えることを
目的に作られた言語
2017年Googleが公式サポート
JetBrainsが開発
K2 Compilerによる高速化
Pragmatic な言語思想
とにかく実用的で
null安全である
(Android開発において)
一つの言語に二種類のコンパイラが共存?!
Dart
just-in-time ahead-of-Time
繰り返した再コンパイルが可能 ネイティブのARM, x64の機械語に
コンパイルできる
Hot Reload, DevTools, Debug等に
活用されている
本番環境へのデプロイ
JS経由だと端末内で逐次コンパイル必要があるが、
ネイティブコードに直にコンパイルできるので良い
Kotlin
現在のコンパイラからK2による進化
(2023/6ごろにstable) IR(中間表現)を追加し、
パフォーマンスが1.9~2.2倍高速化
https://www.youtube.com/watch?v=kBTzeYLeIcc
どちらの言語も
パフォーマンスが良くなるように
工夫されている
KMM
Flutter
フレームワークで比較する
2018年にメジャーリリース
Googleが開発
impellerの登場!
1つの言語で多様なプラッ
トフォームに展開できる
2020年にalpha版登場
JetBrainsが開発
beta版が2022年に登場!
Compose Multiplatformの到来
ビジネスロジックのみを共通化し
UIはネイティブごとに作成
Flutter
impellerとは?
AOTにおけるレンダリング性能を上げた
Early-onset Jank問題を解消してくれる
Early-onset Jankは
初回のアニメーション時のカクツクのことです!
描画が約20倍高速化された!
https://medium.com/flutter/whats-new-in-flutter-3-8c74a5bc32d0
https://zenn.dev/mjhd/articles/e5e10de56eba50
https://docs.flutter.dev/perf/shader
アニメーション時のコンパイル処理を用意せずに
描画を最適化
KMM
意外とまだbeta版
https://www.youtube.com/watch?v=c4f4SCEYA5Q
Beta means "you can use it, we'll do our best
to minimize migration issues for you"
今年中にstableになるかも...
KMM
直接的な競合になるCompose Multiplatform
https://www.jetbrains.com/ja-jp/lp/compose-multiplatform/
Kotlin と Jetpack Compose をベースに
Flutterにように一つの言語でUIを共有できる
どちらもパフォーマンスは
際限なく向上中!
開発メンバーのスキルや
プロダクトがネイティブに
どれだけ依存するかで
判断が分かれる
まとめ
言語やフレームワークの方向性が違う故にうまく共存できそう
個人的な課題
実際に実装して検証したかった....
compilerは難しすぎる...がためになる!
どちらもパフォーマンスが高いので、
かなりネイティブ依存、高機能を求めなければ問題ない!
まだまだ、クロスプラットフォームのエンジニア増えてほしい...
大阪.dart
お知らせ
エンジニア組織を改善するSaaSを開発しています!
エンジニア組織を改善したくて
導入したい方
エンジニア組織で困りごとがあって
聞いて欲しいという方
ぜひ、お話しさせてください!
大阪.dart
ご清聴ありがとうございました
この後の懇親会にてお気軽にお声がけください!

More Related Content

Similar to Flutterと Kotlin Multiplatform Mobileを ディープに理解して比較する (20)

LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
典子 松本
?
CLR/H #clrh104 あなたのアプリにスパイスを! ~ コグニティブと対話 Botのプチレシピ
 CLR/H #clrh104 あなたのアプリにスパイスを! ~ コグニティブと対話 Botのプチレシピ CLR/H #clrh104 あなたのアプリにスパイスを! ~ コグニティブと対話 Botのプチレシピ
CLR/H #clrh104 あなたのアプリにスパイスを! ~ コグニティブと対話 Botのプチレシピ
Kazumi OHIRA
?
160608 01
160608 01160608 01
160608 01
openrtm
?
携帯奥别产アプリケーション开発の基本とフレームワーク「尘辞产测濒别迟」の绍介
携帯奥别产アプリケーション开発の基本とフレームワーク「尘辞产测濒别迟」の绍介携帯奥别产アプリケーション开発の基本とフレームワーク「尘辞产测濒别迟」の绍介
携帯奥别产アプリケーション开発の基本とフレームワーク「尘辞产测濒别迟」の绍介
Shin Takeuchi
?
Robomec2014 rtm講習会第1部(その1)
Robomec2014 rtm講習会第1部(その1)Robomec2014 rtm講習会第1部(その1)
Robomec2014 rtm講習会第1部(その1)
openrtm
?
顿补谤迟笔补诲+颁辞诲别笔别苍で、贵濒耻迟迟别谤を体験してみよう
顿补谤迟笔补诲+颁辞诲别笔别苍で、贵濒耻迟迟别谤を体験してみよう顿补谤迟笔补诲+颁辞诲别笔别苍で、贵濒耻迟迟别谤を体験してみよう
顿补谤迟笔补诲+颁辞诲别笔别苍で、贵濒耻迟迟别谤を体験してみよう
cch-robo
?
碍辞迟濒颈苍の飞别产フレームワーク探访
碍辞迟濒颈苍の飞别产フレームワーク探访碍辞迟濒颈苍の飞别产フレームワーク探访
碍辞迟濒颈苍の飞别产フレームワーク探访
豊明 尾古
?
础锄耻谤别を活用した贬辞濒辞尝别苍蝉アプリ开発
础锄耻谤别を活用した贬辞濒辞尝别苍蝉アプリ开発础锄耻谤别を活用した贬辞濒辞尝别苍蝉アプリ开発
础锄耻谤别を活用した贬辞濒辞尝别苍蝉アプリ开発
Satoshi Fujimoto
?
関西滨迟コミュニティ集まれ!デブサミ名物コミュニティ濒迟大会(発表版)
関西滨迟コミュニティ集まれ!デブサミ名物コミュニティ濒迟大会(発表版)関西滨迟コミュニティ集まれ!デブサミ名物コミュニティ濒迟大会(発表版)
関西滨迟コミュニティ集まれ!デブサミ名物コミュニティ濒迟大会(発表版)
rip jyr
?
Hacking Robotics
Hacking RoboticsHacking Robotics
Hacking Robotics
Kensei Demura
?
WebRTC Meetup Tokyo #3 - WebRTC Conference参加報告
WebRTC Meetup Tokyo #3 - WebRTC Conference参加報告WebRTC Meetup Tokyo #3 - WebRTC Conference参加報告
WebRTC Meetup Tokyo #3 - WebRTC Conference参加報告
satoru_tk
?
Portable RT-Middleware environment on a USB memory for the robot programing ...
Portable RT-Middleware environment on a USB memory  for the robot programing ...Portable RT-Middleware environment on a USB memory  for the robot programing ...
Portable RT-Middleware environment on a USB memory for the robot programing ...
s15mh218
?
Unity道場 ロボティクス 秋のLT祭り 2021
Unity道場 ロボティクス 秋のLT祭り 2021Unity道場 ロボティクス 秋のLT祭り 2021
Unity道場 ロボティクス 秋のLT祭り 2021
Ryo Kabutan
?
鲍苍颈迟测と搁翱厂の连携について
鲍苍颈迟测と搁翱厂の连携について鲍苍颈迟测と搁翱厂の连携について
鲍苍颈迟测と搁翱厂の连携について
UnityTechnologiesJapan002
?
WindowsMobile開発を256倍快適にする言語 Lua
WindowsMobile開発を256倍快適にする言語 LuaWindowsMobile開発を256倍快適にする言語 Lua
WindowsMobile開発を256倍快適にする言語 Lua
Hiroaki TAKEUCHI
?
Kotlinことはじめ -まずは触って動かしてみよう-
Kotlinことはじめ  -まずは触って動かしてみよう-Kotlinことはじめ  -まずは触って動かしてみよう-
Kotlinことはじめ -まずは触って動かしてみよう-
CASAREAL, Inc.
?
先駆者に学ふ? MLOpsの実際
先駆者に学ふ? MLOpsの実際先駆者に学ふ? MLOpsの実際
先駆者に学ふ? MLOpsの実際
Tetsutaro Watanabe
?
Win/Mac/Android/iOS向け クロスプラットフォーム開発にXamarinが うまくハマりそうだった話
Win/Mac/Android/iOS向けクロスプラットフォーム開発にXamarinがうまくハマりそうだった話Win/Mac/Android/iOS向けクロスプラットフォーム開発にXamarinがうまくハマりそうだった話
Win/Mac/Android/iOS向け クロスプラットフォーム開発にXamarinが うまくハマりそうだった話
Takuya Kikuchi
?
NAO/Pepper 開発環境 について
NAO/Pepper 開発環境 についてNAO/Pepper 開発環境 について
NAO/Pepper 開発環境 について
Takuji Kawata
?
贵濒耻迟迟别谤やってみよう
贵濒耻迟迟别谤やってみよう贵濒耻迟迟别谤やってみよう
贵濒耻迟迟别谤やってみよう
Ryuto Yasugi
?
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
典子 松本
?
CLR/H #clrh104 あなたのアプリにスパイスを! ~ コグニティブと対話 Botのプチレシピ
 CLR/H #clrh104 あなたのアプリにスパイスを! ~ コグニティブと対話 Botのプチレシピ CLR/H #clrh104 あなたのアプリにスパイスを! ~ コグニティブと対話 Botのプチレシピ
CLR/H #clrh104 あなたのアプリにスパイスを! ~ コグニティブと対話 Botのプチレシピ
Kazumi OHIRA
?
携帯奥别产アプリケーション开発の基本とフレームワーク「尘辞产测濒别迟」の绍介
携帯奥别产アプリケーション开発の基本とフレームワーク「尘辞产测濒别迟」の绍介携帯奥别产アプリケーション开発の基本とフレームワーク「尘辞产测濒别迟」の绍介
携帯奥别产アプリケーション开発の基本とフレームワーク「尘辞产测濒别迟」の绍介
Shin Takeuchi
?
Robomec2014 rtm講習会第1部(その1)
Robomec2014 rtm講習会第1部(その1)Robomec2014 rtm講習会第1部(その1)
Robomec2014 rtm講習会第1部(その1)
openrtm
?
顿补谤迟笔补诲+颁辞诲别笔别苍で、贵濒耻迟迟别谤を体験してみよう
顿补谤迟笔补诲+颁辞诲别笔别苍で、贵濒耻迟迟别谤を体験してみよう顿补谤迟笔补诲+颁辞诲别笔别苍で、贵濒耻迟迟别谤を体験してみよう
顿补谤迟笔补诲+颁辞诲别笔别苍で、贵濒耻迟迟别谤を体験してみよう
cch-robo
?
碍辞迟濒颈苍の飞别产フレームワーク探访
碍辞迟濒颈苍の飞别产フレームワーク探访碍辞迟濒颈苍の飞别产フレームワーク探访
碍辞迟濒颈苍の飞别产フレームワーク探访
豊明 尾古
?
础锄耻谤别を活用した贬辞濒辞尝别苍蝉アプリ开発
础锄耻谤别を活用した贬辞濒辞尝别苍蝉アプリ开発础锄耻谤别を活用した贬辞濒辞尝别苍蝉アプリ开発
础锄耻谤别を活用した贬辞濒辞尝别苍蝉アプリ开発
Satoshi Fujimoto
?
関西滨迟コミュニティ集まれ!デブサミ名物コミュニティ濒迟大会(発表版)
関西滨迟コミュニティ集まれ!デブサミ名物コミュニティ濒迟大会(発表版)関西滨迟コミュニティ集まれ!デブサミ名物コミュニティ濒迟大会(発表版)
関西滨迟コミュニティ集まれ!デブサミ名物コミュニティ濒迟大会(発表版)
rip jyr
?
WebRTC Meetup Tokyo #3 - WebRTC Conference参加報告
WebRTC Meetup Tokyo #3 - WebRTC Conference参加報告WebRTC Meetup Tokyo #3 - WebRTC Conference参加報告
WebRTC Meetup Tokyo #3 - WebRTC Conference参加報告
satoru_tk
?
Portable RT-Middleware environment on a USB memory for the robot programing ...
Portable RT-Middleware environment on a USB memory  for the robot programing ...Portable RT-Middleware environment on a USB memory  for the robot programing ...
Portable RT-Middleware environment on a USB memory for the robot programing ...
s15mh218
?
Unity道場 ロボティクス 秋のLT祭り 2021
Unity道場 ロボティクス 秋のLT祭り 2021Unity道場 ロボティクス 秋のLT祭り 2021
Unity道場 ロボティクス 秋のLT祭り 2021
Ryo Kabutan
?
鲍苍颈迟测と搁翱厂の连携について
鲍苍颈迟测と搁翱厂の连携について鲍苍颈迟测と搁翱厂の连携について
鲍苍颈迟测と搁翱厂の连携について
UnityTechnologiesJapan002
?
WindowsMobile開発を256倍快適にする言語 Lua
WindowsMobile開発を256倍快適にする言語 LuaWindowsMobile開発を256倍快適にする言語 Lua
WindowsMobile開発を256倍快適にする言語 Lua
Hiroaki TAKEUCHI
?
Kotlinことはじめ -まずは触って動かしてみよう-
Kotlinことはじめ  -まずは触って動かしてみよう-Kotlinことはじめ  -まずは触って動かしてみよう-
Kotlinことはじめ -まずは触って動かしてみよう-
CASAREAL, Inc.
?
先駆者に学ふ? MLOpsの実際
先駆者に学ふ? MLOpsの実際先駆者に学ふ? MLOpsの実際
先駆者に学ふ? MLOpsの実際
Tetsutaro Watanabe
?
Win/Mac/Android/iOS向け クロスプラットフォーム開発にXamarinが うまくハマりそうだった話
Win/Mac/Android/iOS向けクロスプラットフォーム開発にXamarinがうまくハマりそうだった話Win/Mac/Android/iOS向けクロスプラットフォーム開発にXamarinがうまくハマりそうだった話
Win/Mac/Android/iOS向け クロスプラットフォーム開発にXamarinが うまくハマりそうだった話
Takuya Kikuchi
?
NAO/Pepper 開発環境 について
NAO/Pepper 開発環境 についてNAO/Pepper 開発環境 について
NAO/Pepper 開発環境 について
Takuji Kawata
?
贵濒耻迟迟别谤やってみよう
贵濒耻迟迟别谤やってみよう贵濒耻迟迟别谤やってみよう
贵濒耻迟迟别谤やってみよう
Ryuto Yasugi
?

Flutterと Kotlin Multiplatform Mobileを ディープに理解して比較する