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
Androidエンジニアから見たMulti Platform
Search
kotato
July 24, 2019
Programming
28
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Androidエンジニアから見たMulti Platform
2019/07/24(水) Fintech,Python…気軽にくっちゃべる会#2 発表資料
kotato
July 24, 2019
More Decks by kotato
See All by kotato
SwiftUIとFlutterを比べたかった
hakuyoka
0
26
Other Decks in Programming
See All in Programming
Event is what happens
moro
2
780
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
2
640
Jetpack Compose Mechanisms
skydoves
3
820
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
500
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
390
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
2
880
TechTown - Creating Composable Callables in Contemporary C++
rollbear
0
130
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.2k
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
610
SREの越境 / SRE Collaboration
y0hgi
2
310
Web Framework Benchmark Battle 2026, Any%
a_matsuda
2
2k
Verilogで学ぶCPU自作入門
uyuki234
8
4.1k
Featured
See All Featured
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
380
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
310
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
800
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.9k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Test your architecture with Archunit
thirion
2
2.4k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
500
Raft: Consensus for Rubyists
vanstee
142
7.8k
Discover your Explorer Soul
emna__ayadi
2
1.3k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Transcript
Androidエンジニアから見たMulti Platform ウェルスタイル株式会社 古田土 翔大
今日話すこと/話さないこと 話す マルチプラットフォームを使う理由 いくつかのプラットフォームの紹介 個人的なおすすめな使い方 話さない ゲーム系のアプリの話 各プラットフォームのノウハウ
自己紹介 古田土 翔大 (git. hakuyoka, twitter: @boy_surface) ウェルスタイル株式会社 エンジニア ・Androidエンジニア(RailsもAWSもPHPも触る) ・家族SNS
wellnote の開発と保守と採用 ・新しい技術をやっては捨てる人 ・最近はFlutterとRustをやってる オフィス見学とかやってます 来るとご飯おごってくれます(社長が
None
モバイルアプリを作る時いろいろ 1. Native Application 2. PWA or WebView 3. マルチプラットフォームフレームワーク
Xamarin React Native Flutter Kotlin Native
5分なので先に結論
Nativeで作るのが一番です
なぜマルチプラットフォームを使うのか?
工数が足りないから ・銀の弾丸があればNativeで作った方がもちろん良い ・効率よく必要な速度でアプリを作るためには妥協は必要
例えば、弊社 サーバサイド Android iOS モバイルエンジニアが足りないですよね。。。
ちょっとモックアプリ作ってよ Androidもこんな感じで こんなアプリ作って欲しいんだけど? 雑にこんなアプリを作って!っていう人はいます
マルチプラットフォームの特徴 1. UIの観点 NativeのUIコンポーネントを利用するか 2. 機能の観点 Native or Webで動くかどうか NativeのAPIはどう呼び出すか
3. エコシステム どれだけの資産を使い回せるか ライブラリは豊富か
マルチプラットフォームの特徴 動作 UIコンポーネント APIラッパ エコシステム Xamarin Natvite Native あり .Net系も使える
Flutter Native 独自 なし Firebase系が強い React Native Web Native なし Kotlin Native Native なし あり Java系も一部 PWA / WEB Web Web なし JSそのまま
独断と偏見が入ります (5分なのでオススメのみにします
Xamarin • MicroSoft製の.Net系のフレームワーク • .Netの資産のがある というなら是非 • 抽象化のレベルが高いので慣れれば開発はしやすい • 逆に、マルチプラットフォームのために始めるの敷居が高いかも
• 熱狂的なファンが多いイメージ ◦ ちょまどさんパワーで名前だけ知っている人もいる
React Native • FaceBook製のReactベースのライブラリ • Reactの知識がそのまま使える • 実績も多い (Facebook, Skype)
• AirBnBショックがあったが、安定して使われている印象 • Webエンジニアだけで書けるかというと多分無理 どこかでNativeの知識が必要になってくる それでも各プラットフォーム毎のモバイルエンジニアがいれば
Flutter • Google製のライブラリ • HotReloadで快適に開発できると評判 • Firebaseとの連携が厚い • マテリアルデザインな独自UI 弊社iOSエンジニア曰くの人はそんなにわからないかも?
• Dart言語 Java書ければ書けるが、モダンな言語とは言い難い マイナーな認識があるのかドキュメントは豊富 • ネイティブのAPIを叩く場合は、Nativeのコードが必要 ライブラリは多い方で探しやすい
Kotlin Native • JetBrainsのKotlinフレームワーク • Kotlin Native Multi Platformsで、iOS,Android共通ライブラリが書ける •
Kotlinかけるエンジニアは割と多い • UIは各プラットフォームの実装が必要 • ドキュメントはあまり親切じゃない • まだ、少しバグい
PWA / WEB • Web技術だけでも作れる ◦ Webエンジニアだけで一番はまらない方法 • アプリがWebだけ完結できそうならあり •
センサくらいのAPIは叩ける • NativeっぽいUIにするのは難しい • 全てのNativeのAPIを呼べるわけではない 特にバックグラウンド処理周りが弱い • Webだからってプラットフォームのアップデートは無視できない
結局?
開発、保守で工数が一番減りそうなもの ダメになったら潔く捨ててNativeで作り直そう
おすすめ • Flutter ◦ わかるエンジニアがいれば、爆速で開発して仮説検証まで可能 ◦ スタートアップでのアプリやモックアップに向いている ◦ 保守や大規模な運用は厳しめなので、ゆくゆくは Nativeに置き換えることも検討
• Kotlin Native Multi Platforms ◦ ドメイン層は普通は共通化できるので、そこまで共通化が可能 ◦ Nativeアプリがあるなら、Kotlinを書くことができるエンジニアはいる ◦ サーバサイドKotlinやっているとサーバサイド側がドメイン層も書ける ◦ モバイルエンジニアが UIに集中できる • PWA ◦ Native独自の機能が将来にわたり必要になることがない ◦ NativeっぽいUIである必要がない ◦ Webのシステムをとにかく App Store, Play Storeに載せたい
まとめ • 基本的にはNativeアプリを作る • マルチプラットフォームは、工数の削減のためにある • どのプラットフォームも使いよう 開発、保守の工数が一番減るのが正義 • Flutterやろう!