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
モバイルアプリを効率的に開発するクロスプラットフォーム開発という選択肢
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
shige0501
February 22, 2020
Programming
1
420
モバイルアプリを効率的に開発するクロスプラットフォーム開発という選択肢
shige0501
February 22, 2020
Tweet
Share
More Decks by shige0501
See All by shige0501
グロースするプロダクトの開発プロセスと関わり方
shige0501
0
340
2017/03/25 RxJava2 + OkHttp + Retrofit入門
shige0501
0
1.8k
Other Decks in Programming
See All in Programming
Kubernetesでセルフホストが簡単なNewSQLを求めて / Seeking a NewSQL Database That's Simple to Self-Host on Kubernetes
nnaka2992
0
150
今からFlash開発できるわけないじゃん、ムリムリ! (※ムリじゃなかった!?)
arkw
0
110
AI時代のシステム設計:ドメインモデルで変更しやすさを守る設計戦略
masuda220
PRO
5
1.1k
Claude Code Skill入門
mayahoney
0
400
AI活用のコスパを最大化する方法
ochtum
0
170
最初からAWS CDKで技術検証してもいいんじゃない?
akihisaikeda
4
160
GC言語のWasm化とComponent Modelサポートの実践と課題 - Scalaの場合
tanishiking
0
120
new(1.26) ← これすき / kamakura.go #8
utgwkk
0
2.5k
AI時代のソフトウェア開発でも「人が仕様を書く」から始めよう-医療IT現場での実践とこれから
koukimiura
0
150
TipKitTips
ktcryomm
0
170
Angular-Apps smarter machen mit Gen AI: Lokal und offlinefähig - Hands-on Workshop!
christianliebel
PRO
0
120
ふつうのRubyist、ちいさなデバイス、大きな一年 / Ordinary Rubyists, Tiny Devices, Big Year
chobishiba
1
470
Featured
See All Featured
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.2k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
85
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
460
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
290
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.5k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
160
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
Automating Front-end Workflow
addyosmani
1370
200k
A designer walks into a library…
pauljervisheath
210
24k
Designing Experiences People Love
moore
143
24k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
980
Transcript
モバイルアプリを効率的に開発する クロスプラットフォーム開発という選 択肢 2020/02/22(Sat) 日本Androidの会 中国支部長 コミュニティ運営委員 重村浩二 @shige0501
自己紹介 - 日本Androidの会 コミュニティ運営委員 中国支部長 - 全然活動できてない - 誰か引き継ぎしたい -
Client Dev Japan 立ち上げ - クライアントの勉強会をやるコミュニティ - これからやっていこうとしてます - (新型コロナが出てきたので、進め方検討中) - 普段はAndroidアプリの開発エンジニアやってます - フルリモートワーク - 年に数回東京 / 大阪に出張してます
今日のお話 Aさん 「モバイルアプリの開発について話を聞 きたい」
Android / iOS 共に公開から10年経過
開発方法が複雑化 / 高度化 (覚えることが増えた) - Androidの場合 - Kotlin - Kotlin
Coroutine - Android Jetpack - LiveData - DataBinding - Android KTX - 各種ライブラリの知識 - RxJava - etc …
素早く市場検証するアプリを作るとき、選ぶ? - 新規事業の検証に投下できるリソースは大抵限られている - iOS / Android同時に開発しようとすると、開発工数が倍かかる - スピードが求められる
Jcomp - jp.freepik.com によって作成された vintage 写真 https://jp.freepik.com/free-photos-vectors/vintage 他に選択肢はないか?
最近のホットな選択肢 - Flutter
Flutterとはなにか?
Flutter とはなにか? - https://flutter.dev/ - Googleが開発しているクロスプラットフォーム開発ができるツール - Android - iOS
- 2018年12月4日に1.0がリリースされたばかりで、まだ歴史は浅い
Flutter とはなにか? - Material Designに準拠したアプリが作れる - モダンなUIにできる - iOSらしいUIにはCupertinoで対応可能(まだまだみたいだけ ど)
https://flutter.dev/docs/development/ui/widgets/cupertino
https://flutterawesome.com/a-simple-flutter-app-to-read-and-download-ebooks/
Flutter とはなにか? - 開発言語はDart - DartもGoogleが開発している言語 - GitHub上で2019年最も成長の早い言語 - https://japan.zdnet.com/article/35145190/
- CやJavaに近い - Kotlinに慣れていると、SmartCastがなかったり、;(セミコロン) の記述が必要だったりと、書き方が古く感じてしまう - 今後の進化に期待
Flutterだとなにが嬉しいのか? - Hot Reload - コードの変更をおこなっても、Flutter Hot Reloadを実行すれ ば大抵の場合はすぐに反映される -
洗練されたUIで、プラットフォーム間のUI / UXを共通化 - Material Design - 高パフォーマンスの実現 - C++で書かれたSkiaというミドルウェアの恩恵
これまであったクロスプラットフォーム開発との比較 - Xamarin - C# - ホットリロードできない - Unity -
C# - ゲーム向け - ハイスペックを求めていて、消費電力も大きい
これまであったクロスプラットフォーム開発との比較 - React Native - JavaScript - ネイティブとブリッジして開発 - UIは各プラットフォームのものを利用
これまであったクロスプラットフォーム開発との比較 - Kotlin Multi Platform - Kotlin - iOS /
Android / Server の実装をKotlinで統一することができ る - FlutterのようにWebやデスクトップアプリの実装まではまだ踏 み込んでいない - 今後の注目株
Flutterはマルチプラットフォーム開発ができる - Android / iOS以外に、Webと Desktop (Windows / macOS) もサ
ポート - https://jp.techcrunch.com/2019/05/09/2019-05-07-googles- flutter-framework-spreads-its-wings-and-goes-multi-platfor m/
参考)DroidKaigiカンファレンスアプリでの過去の実 績 - DroidKaigi 2017まで - Androidのネイティブアプリのみ - DroidKaigi 2018
- Flutterを採用 - DroidKaigi 2019 - 2020 - Kotlin Multi Platformを採用
閑話休題
最近のスタートアップで取り組む企業が増加中 - Wantedlyで2020/02/16時点で118件の中途採用の求人 - 特にスタートアップ系で取り組んでいる企業が多い印象 - 新規アプリの受託開発でも、小さめの案件ならやりやすいイメージ - 実際に副業案件(結局個別のプラットフォーム向けの開発に なったりたち消えた)で、出てきたことはあります
実例
試しに開発中の個人アプリ +
何をするアプリなのか? - 個人アプリ - Togglとは? - 作業記録アプリ - 日々の実施した作業を記録 -
やりたいこと - 日々の実施した作業を日報としてまとめて、Chatworkの指定 した部屋に投稿する
実装画面 - Toggl トークンとChatworkトークンの入力画面 - Togglの日報情報確認画面 - Text Input Fieldとし、コメントを追加できるようにする
- Chatworkの投稿先ルーム選択画面
実際に触ってみた感触 - 良かったこと - Hot Reload便利 - ビルドで待たされることがないのはとても心地よい - 複数プラットフォームに同時にアプリを作れて、ビジネスロジッ
クとUI実装も共通化することができる - AndroidエンジニアがiOSアプリを同時に開発するようなこ とができる
実際に触ってみた感触 - 難しい - UIの実装方法が少々特殊 - UIの組み方が独特なので、まずはそこを乗り越えないと いけない - iOSやAndroidのUIの組み方とちょっと違う
- iOS ….. Storyboard - Android ….. Layout EditorやXMLでのレイアウト定 義 - レイアウトやStoryboardに慣れているととっつきにくく感じ る。
実際に触ってみた感触 - ここイケてない - 結局各プラットフォームのお作法は理解が必要 - アプリ名やパッケージ名は各プラットフォームのファイル (AndroidManifestなど)を触る - 横向きの画面に対応したり、タブレット対応したりと、プ
ラットフォーム共通の壁を超えるような対応が入ってくる と、一気に難易度が上がりそう。(その分個別の実装が増 える)
実際に触ってみた感触 - 実際に企業のプロダクションとして使えるのか? - 厳しい - エンジニア不足 - Flutterが書けるエンジニアがまだまだいない -
できたコードのメンテをできる人不足 - けど、条件付きで採用あり - スピード実装したいスタートアップ - アプリの要件がシンプルなもの - プラットフォーム特有な機能を組み込む場合は少々つら い
何を見て学ぶと良いか? 1. Flutterの効率良い学び方 a. https://medium.com/flutter-jp/flutter-learning-c5640c5f05b9 ?source=collection_category---4------1----------------------- b. momoさんのサイト。国内でFlutterの詳しさはトップクラスだと 思う 2.
Flutterの公式サイト a. 一番情報が豊富。上記と合わせてこちらから b. https://flutter.dev/ 3. 書籍 a. Flutter モバイルアプリ開発バイブル b. 基礎から学ぶFlutter
まとめ - Flutterを覚えて帰ってください - Android / iOS 両方のアプリが作れる - スタートアップの間で注目されている
- Webやデスクトップアプリの開発も可能になるので、定着する と開発の選択肢として広がるかもしれない - もちろん丁寧に作り込むならプラットフォーム個別の開発も選択肢 に - 長期的に運用していくアプリであれば、プラットフォーム毎に近 い環境を選ぶほうがプラス - アプリのライフサイクルがどれぐらいかで見極めて
ご清聴ありがとうございました!!