Submit Search
Upload
Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜
•
Download as PPTX, PDF
•
0 likes
•
972 views
S
Saiki Iijima
Follow
Shibya.apk#29の発表資料です
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 56
Download now
Recommended
クリスマス直前!HTML5 で作る♥はじめての iOS & Android アプリ開発
クリスマス直前!HTML5 で作る♥はじめての iOS & Android アプリ開発
Osamu Monoe
HTML5/JavaScriptで作るAndroidアプリ開発seminar
HTML5/JavaScriptで作るAndroidアプリ開発seminar
kujirahand kujira
Androidアプリ開発を楽にするために
Androidアプリ開発を楽にするために
Shuichi Takaya
Xamarinはじめました
Xamarinはじめました
Yuya Yamaki
ABC2016Spring Androidアプリ実装アンチパターン(暫定)
ABC2016Spring Androidアプリ実装アンチパターン(暫定)
mokelab
Cordovaで作る!センサと超小型BLEモジュールを用いた簡単IoTアプリ開発
Cordovaで作る!センサと超小型BLEモジュールを用いた簡単IoTアプリ開発
Hikaru Ito
モダンなAndroidアプリ開発勉強会
モダンなAndroidアプリ開発勉強会
Shoichi Kakizaki
Cordova を使って本気で商用ハイブリッドアプリ開発をやってみた
Cordova を使って本気で商用ハイブリッドアプリ開発をやってみた
Shin Ogata
Recommended
クリスマス直前!HTML5 で作る♥はじめての iOS & Android アプリ開発
クリスマス直前!HTML5 で作る♥はじめての iOS & Android アプリ開発
Osamu Monoe
HTML5/JavaScriptで作るAndroidアプリ開発seminar
HTML5/JavaScriptで作るAndroidアプリ開発seminar
kujirahand kujira
Androidアプリ開発を楽にするために
Androidアプリ開発を楽にするために
Shuichi Takaya
Xamarinはじめました
Xamarinはじめました
Yuya Yamaki
ABC2016Spring Androidアプリ実装アンチパターン(暫定)
ABC2016Spring Androidアプリ実装アンチパターン(暫定)
mokelab
Cordovaで作る!センサと超小型BLEモジュールを用いた簡単IoTアプリ開発
Cordovaで作る!センサと超小型BLEモジュールを用いた簡単IoTアプリ開発
Hikaru Ito
モダンなAndroidアプリ開発勉強会
モダンなAndroidアプリ開発勉強会
Shoichi Kakizaki
Cordova を使って本気で商用ハイブリッドアプリ開発をやってみた
Cordova を使って本気で商用ハイブリッドアプリ開発をやってみた
Shin Ogata
Basic言語でiOSアプリを作る
Basic言語でiOSアプリを作る
Yuya Yamaki
Autolayoutを使って、画面レイアウトを作成してみよう
Autolayoutを使って、画面レイアウトを作成してみよう
Ikki Takahashi
iアプリつくろうぜ!~20101020 DevLOVE Android勉強会~
iアプリつくろうぜ!~20101020 DevLOVE Android勉強会~
一法 山崎
エンタープライズ・モバイルアプリにおける ハイブリッドアプリ開発
エンタープライズ・モバイルアプリにおける ハイブリッドアプリ開発
日本Cordovaユーザー会
2015年度研究室プレ卒研用Android講座1
2015年度研究室プレ卒研用Android講座1
Hokuto Tateyama
Unity,Cocos-2dx,AIRを徹底比較!最新クロスプラットフォーム事情、FLASHを使ってiPhone/Androidアプリを作ろう!【とのさまラボ】
Unity,Cocos-2dx,AIRを徹底比較!最新クロスプラットフォーム事情、FLASHを使ってiPhone/Androidアプリを作ろう!【とのさまラボ】
schoowebcampus
Visual Studio 2015 を使用した Cordova アプリの開発
Visual Studio 2015 を使用した Cordova アプリの開発
Osamu Monoe
【社内LT】AdobeAIRでアプリ
【社内LT】AdobeAIRでアプリ
Vitalify.Inc
デザイナーとエンジニアが話す、iOSアプリケーション開発
デザイナーとエンジニアが話す、iOSアプリケーション開発
Kenta Ohsugi
スマホだけでアプリが作れる!「Androidでプログラミング」特別講座
スマホだけでアプリが作れる!「Androidでプログラミング」特別講座
schoowebcampus
Android Studio 2.2の紹介@Google I/O 2016東京報告会
Android Studio 2.2の紹介@Google I/O 2016東京報告会
mokelab
はじめる前に知っておきたいAndroidアプリ開発のポイント
はじめる前に知っておきたいAndroidアプリ開発のポイント
Shinobu Okano
「Facebook SDK for Android」を使ったFacebookログイン
「Facebook SDK for Android」を使ったFacebookログイン
Hiroyuki Nozaki
はじめてのiOSアプリ開発 ①
はじめてのiOSアプリ開発 ①
Nagamine Hiromasa
ネイティブとHTML5を スマートに連携させる設計と 実装のノウハウについて
ネイティブとHTML5を スマートに連携させる設計と 実装のノウハウについて
Kazuaki Hidaka
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回 @Co-Edo
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回 @Co-Edo
Megumi Otani(Czenhe)
iOS側のUIの特徴と見比べるAndroid側でのUI実装のヒント
iOS側のUIの特徴と見比べるAndroid側でのUI実装のヒント
Fumiya Sakai
2011年5月28日 Android勉強会プレゼン資料
2011年5月28日 Android勉強会プレゼン資料
Eiichi Yoshikawa
Can we live in a pure Swift world?
Can we live in a pure Swift world?
toyship
Onsen UIが目指すもの
Onsen UIが目指すもの
アシアル株式会社
PhoneGapユーザー会@大阪 講演資料
PhoneGapユーザー会@大阪 講演資料
Monaca
非エンジニアのためのIT勉強会 ハイブリッドフレームワーク
非エンジニアのためのIT勉強会 ハイブリッドフレームワーク
Kaz Furukawa
More Related Content
What's hot
Basic言語でiOSアプリを作る
Basic言語でiOSアプリを作る
Yuya Yamaki
Autolayoutを使って、画面レイアウトを作成してみよう
Autolayoutを使って、画面レイアウトを作成してみよう
Ikki Takahashi
iアプリつくろうぜ!~20101020 DevLOVE Android勉強会~
iアプリつくろうぜ!~20101020 DevLOVE Android勉強会~
一法 山崎
エンタープライズ・モバイルアプリにおける ハイブリッドアプリ開発
エンタープライズ・モバイルアプリにおける ハイブリッドアプリ開発
日本Cordovaユーザー会
2015年度研究室プレ卒研用Android講座1
2015年度研究室プレ卒研用Android講座1
Hokuto Tateyama
Unity,Cocos-2dx,AIRを徹底比較!最新クロスプラットフォーム事情、FLASHを使ってiPhone/Androidアプリを作ろう!【とのさまラボ】
Unity,Cocos-2dx,AIRを徹底比較!最新クロスプラットフォーム事情、FLASHを使ってiPhone/Androidアプリを作ろう!【とのさまラボ】
schoowebcampus
Visual Studio 2015 を使用した Cordova アプリの開発
Visual Studio 2015 を使用した Cordova アプリの開発
Osamu Monoe
【社内LT】AdobeAIRでアプリ
【社内LT】AdobeAIRでアプリ
Vitalify.Inc
デザイナーとエンジニアが話す、iOSアプリケーション開発
デザイナーとエンジニアが話す、iOSアプリケーション開発
Kenta Ohsugi
スマホだけでアプリが作れる!「Androidでプログラミング」特別講座
スマホだけでアプリが作れる!「Androidでプログラミング」特別講座
schoowebcampus
Android Studio 2.2の紹介@Google I/O 2016東京報告会
Android Studio 2.2の紹介@Google I/O 2016東京報告会
mokelab
はじめる前に知っておきたいAndroidアプリ開発のポイント
はじめる前に知っておきたいAndroidアプリ開発のポイント
Shinobu Okano
「Facebook SDK for Android」を使ったFacebookログイン
「Facebook SDK for Android」を使ったFacebookログイン
Hiroyuki Nozaki
はじめてのiOSアプリ開発 ①
はじめてのiOSアプリ開発 ①
Nagamine Hiromasa
ネイティブとHTML5を スマートに連携させる設計と 実装のノウハウについて
ネイティブとHTML5を スマートに連携させる設計と 実装のノウハウについて
Kazuaki Hidaka
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回 @Co-Edo
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回 @Co-Edo
Megumi Otani(Czenhe)
iOS側のUIの特徴と見比べるAndroid側でのUI実装のヒント
iOS側のUIの特徴と見比べるAndroid側でのUI実装のヒント
Fumiya Sakai
2011年5月28日 Android勉強会プレゼン資料
2011年5月28日 Android勉強会プレゼン資料
Eiichi Yoshikawa
Can we live in a pure Swift world?
Can we live in a pure Swift world?
toyship
Onsen UIが目指すもの
Onsen UIが目指すもの
アシアル株式会社
What's hot
(20)
Basic言語でiOSアプリを作る
Basic言語でiOSアプリを作る
Autolayoutを使って、画面レイアウトを作成してみよう
Autolayoutを使って、画面レイアウトを作成してみよう
iアプリつくろうぜ!~20101020 DevLOVE Android勉強会~
iアプリつくろうぜ!~20101020 DevLOVE Android勉強会~
エンタープライズ・モバイルアプリにおける ハイブリッドアプリ開発
エンタープライズ・モバイルアプリにおける ハイブリッドアプリ開発
2015年度研究室プレ卒研用Android講座1
2015年度研究室プレ卒研用Android講座1
Unity,Cocos-2dx,AIRを徹底比較!最新クロスプラットフォーム事情、FLASHを使ってiPhone/Androidアプリを作ろう!【とのさまラボ】
Unity,Cocos-2dx,AIRを徹底比較!最新クロスプラットフォーム事情、FLASHを使ってiPhone/Androidアプリを作ろう!【とのさまラボ】
Visual Studio 2015 を使用した Cordova アプリの開発
Visual Studio 2015 を使用した Cordova アプリの開発
【社内LT】AdobeAIRでアプリ
【社内LT】AdobeAIRでアプリ
デザイナーとエンジニアが話す、iOSアプリケーション開発
デザイナーとエンジニアが話す、iOSアプリケーション開発
スマホだけでアプリが作れる!「Androidでプログラミング」特別講座
スマホだけでアプリが作れる!「Androidでプログラミング」特別講座
Android Studio 2.2の紹介@Google I/O 2016東京報告会
Android Studio 2.2の紹介@Google I/O 2016東京報告会
はじめる前に知っておきたいAndroidアプリ開発のポイント
はじめる前に知っておきたいAndroidアプリ開発のポイント
「Facebook SDK for Android」を使ったFacebookログイン
「Facebook SDK for Android」を使ったFacebookログイン
はじめてのiOSアプリ開発 ①
はじめてのiOSアプリ開発 ①
ネイティブとHTML5を スマートに連携させる設計と 実装のノウハウについて
ネイティブとHTML5を スマートに連携させる設計と 実装のノウハウについて
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回 @Co-Edo
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回 @Co-Edo
iOS側のUIの特徴と見比べるAndroid側でのUI実装のヒント
iOS側のUIの特徴と見比べるAndroid側でのUI実装のヒント
2011年5月28日 Android勉強会プレゼン資料
2011年5月28日 Android勉強会プレゼン資料
Can we live in a pure Swift world?
Can we live in a pure Swift world?
Onsen UIが目指すもの
Onsen UIが目指すもの
Similar to Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜
PhoneGapユーザー会@大阪 講演資料
PhoneGapユーザー会@大阪 講演資料
Monaca
非エンジニアのためのIT勉強会 ハイブリッドフレームワーク
非エンジニアのためのIT勉強会 ハイブリッドフレームワーク
Kaz Furukawa
はてなエンジニアブロガー祭りLT クロスプラットフォーム開発
はてなエンジニアブロガー祭りLT クロスプラットフォーム開発
友太 渡辺
Cordova利用アプリ開発経験談
Cordova利用アプリ開発経験談
Kenichi Kambara
プロ文.com 勉強会 Phase 1
プロ文.com 勉強会 Phase 1
Hiroki Toyokawa
20110824 android apps_endo
20110824 android apps_endo
一般社団法人メディア事業開発会議
20110824 android apps_endo
20110824 android apps_endo
一般社団法人メディア事業開発会議
20120413 nestakabaneworkshop
20120413 nestakabaneworkshop
Yoichiro Sakurai
個人アプリ開発
個人アプリ開発
kentarokuroda
Androidとは。ちょっと変った視点から
Androidとは。ちょっと変った視点から
demuyan
デベロッパー視点での3大スマホの違い
デベロッパー視点での3大スマホの違い
Makoto Kubota
Web開発者にお勧め .NET MAUI Blazor App
Web開発者にお勧め .NET MAUI Blazor App
TomomitsuKusaba
スマートフォンの方式検討に関する基礎知識
スマートフォンの方式検討に関する基礎知識
Yugo Yamamoto
#cmdevio2016 (レポート: F-2) iOS × Android 並行開発についてのトピック
#cmdevio2016 (レポート: F-2) iOS × Android 並行開発についてのトピック
cm_saito
C#でiPhoneアプリ開発 with MonoTouch
C#でiPhoneアプリ開発 with MonoTouch
Shin Ise
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
Yoshito Tabuchi
アンドロイド勉強会第二回 080525 3
アンドロイド勉強会第二回 080525 3
shimay
第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会
codeal
これからのNotesモバイルアプリはこう作れ
これからのNotesモバイルアプリはこう作れ
Mitsuru Katoh
[ABC2016S]Android Wear アプリ開発入門
[ABC2016S]Android Wear アプリ開発入門
Kenichi Kambara
Similar to Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜
(20)
PhoneGapユーザー会@大阪 講演資料
PhoneGapユーザー会@大阪 講演資料
非エンジニアのためのIT勉強会 ハイブリッドフレームワーク
非エンジニアのためのIT勉強会 ハイブリッドフレームワーク
はてなエンジニアブロガー祭りLT クロスプラットフォーム開発
はてなエンジニアブロガー祭りLT クロスプラットフォーム開発
Cordova利用アプリ開発経験談
Cordova利用アプリ開発経験談
プロ文.com 勉強会 Phase 1
プロ文.com 勉強会 Phase 1
20110824 android apps_endo
20110824 android apps_endo
20110824 android apps_endo
20110824 android apps_endo
20120413 nestakabaneworkshop
20120413 nestakabaneworkshop
個人アプリ開発
個人アプリ開発
Androidとは。ちょっと変った視点から
Androidとは。ちょっと変った視点から
デベロッパー視点での3大スマホの違い
デベロッパー視点での3大スマホの違い
Web開発者にお勧め .NET MAUI Blazor App
Web開発者にお勧め .NET MAUI Blazor App
スマートフォンの方式検討に関する基礎知識
スマートフォンの方式検討に関する基礎知識
#cmdevio2016 (レポート: F-2) iOS × Android 並行開発についてのトピック
#cmdevio2016 (レポート: F-2) iOS × Android 並行開発についてのトピック
C#でiPhoneアプリ開発 with MonoTouch
C#でiPhoneアプリ開発 with MonoTouch
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
アンドロイド勉強会第二回 080525 3
アンドロイド勉強会第二回 080525 3
第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会
これからのNotesモバイルアプリはこう作れ
これからのNotesモバイルアプリはこう作れ
[ABC2016S]Android Wear アプリ開発入門
[ABC2016S]Android Wear アプリ開発入門
More from Saiki Iijima
ViewModel テスト難しすぎ問題 by saiki iijima in Android Test Night #9
ViewModel テスト難しすぎ問題 by saiki iijima in Android Test Night #9
Saiki Iijima
How to create android's c to c EC APP !
How to create android's c to c EC APP !
Saiki Iijima
ああ、素晴らしきTDD ~アプリとエンジニアの心に安寧を~
ああ、素晴らしきTDD ~アプリとエンジニアの心に安寧を~
Saiki Iijima
Kotlin vs TypeScript
Kotlin vs TypeScript
Saiki Iijima
Aruaru short-cut
Aruaru short-cut
Saiki Iijima
In-app messaging
In-app messaging
Saiki Iijima
ソーシャルログイン5分クッキング
ソーシャルログイン5分クッキング
Saiki Iijima
More from Saiki Iijima
(7)
ViewModel テスト難しすぎ問題 by saiki iijima in Android Test Night #9
ViewModel テスト難しすぎ問題 by saiki iijima in Android Test Night #9
How to create android's c to c EC APP !
How to create android's c to c EC APP !
ああ、素晴らしきTDD ~アプリとエンジニアの心に安寧を~
ああ、素晴らしきTDD ~アプリとエンジニアの心に安寧を~
Kotlin vs TypeScript
Kotlin vs TypeScript
Aruaru short-cut
Aruaru short-cut
In-app messaging
In-app messaging
ソーシャルログイン5分クッキング
ソーシャルログイン5分クッキング
Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜
1.
Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜
2.
目次 ● 自己紹介 ● MOEとは? ●
使いかた ● まとめ
3.
自己紹介 飯島彩輝 twitter:@saekisaekisaek blog:エンジニアの便利手帳/3jigen.net ヤフー株式会社 ヤフオク!Androidエンジニア
4.
是非覚えて帰ってください
5.
Androidアプリを開発しただけで iOSアプリもついでにできればいいのに
6.
クロスプラットフォーム対応といえば
7.
● ReactNative ● Flutter ●
Xamarin
8.
● ReactNative ->
JavaScript ● Flutter -> Dart ● Xamarin -> C#
9.
Androidアプリを開発しただけで iOSアプリもついでにできればいいのに
10.
Androidアプリはいつも通り開発したい
11.
Intel Multi-OS Engine (MOE)
12.
Intel Multi-OS Engineとは? IntelとMigeranによって開発されている オープンソースフレームワーク AndroidとiOSのアプリを Java(Kotlin)で作成することが可能
13.
公式ページより引用:https://doc.multi-os-engine.org/multi-os-engine/1_Overview/Overview.html
14.
公式ページより引用:https://doc.multi-os-engine.org/multi-os-engine/1_Overview/Overview.html
15.
一番大事なこと Androidアプリに全く影響を与えない
16.
とりあえず使ってみる GithubRepositoryを リスト表示するアプリ
17.
どう作っていくか
18.
/app (Android) 普通のAndroidアプリの場合 Model Presenter (ViewModel) View
19.
/common /app (Android) MOEの場合 Model Presenter (ViewModel) /ios View View
20.
/common /app (Android) MOEの場合 Model Presenter (ViewModel) /ios View View (ViewModel・LiveData)
21.
/common /app (Android) Androidアプリから作る Model Presenter (ViewModel) /ios View View (ViewModel・LiveData)
22.
CommonModule
23.
CommonModule Retorofit + RxJava2 API View Presenter (ViewModel)
24.
CommonModule
25.
Common-module
26.
/common /app (Android) app-module Model Presenter (ViewModel) /ios View View (ViewModel・LiveData)
27.
app-module
28.
app-module MainActivity.kt
29.
Androidアプリ完成
30.
Androidアプリ作成で大事なこと 共有したいロジックを Commonにわける
31.
iOS
32.
/app (Android) iOSアプリを作る /ios View View /common Model Presenter (ViewModel)
33.
プラグインを入れる
34.
ios-moduleを作る
35.
ios-moduleを作る
36.
UIを作る
37.
ViewControllerを作る RepositoryListViewController
38.
いろいろします(割愛)
39.
UIを作る 重要:この作業にMOEは全く関係ない
40.
Viewを作る ここからがMOE独自の操作
41.
Viewを作る
42.
Viewを作る
43.
Viewを作る NatJというライブラリが頑張って UIViewControllerに必要な メソッドが一通り生成される
44.
実装
45.
実装
46.
完成 で完成
47.
AndroidStudioでのAndroid開発 iOSのView作成
48.
MOEポイント
49.
萌えポイント
50.
MOEポイント AndroidStudioとJava(Kotlin) + XcodeでのUI組み立て で両OS に対応できる
51.
MOEポイント Nativeと同様のUI・パフォーマンス
52.
MOEポイント NatJによって iOSのAPIとNativeLibraryに フルアクセスできる
53.
MOEポイント 人気がない
54.
MOEポイント コミュニティが頑張ってる https://discuss.multi-os-engine.org/
55.
ぜひMOEを使って MOEの萌えポイントに もえもえしましょう!
56.
終わり <ありがとうございました!
Editor's Notes
4月からAndroidアプリ開発を初めてその前はGoでAPIを作ったりC#でソーシャルゲームを作っていたりしました。
4月からAndroidアプリ開発を初めてその前はGoでAPIを作ったりC#でソーシャルゲームを作っていたりしました。
さて、きょうはAndroidエンジニアの方が多いと思うのですが、Androidアプリを開発しただけでiOSアプリもついでにできればいいのにって思ったことありませんか? ありますよね? 多分Androidエンジニアの三大欲求の一つに入ってるんじゃないですかね
クロスプラットフォーム対応といえば
ReactNative -> JavaScript Flutter -> Dart Xamarin -> C#
ReactNative -> JavaScript Flutter -> Dart Xamarin -> C#
ただ今回の話はついでなので
できればAndroidアプリはいつも通りに開発したいですよね Android Architecture Components とかも普通に使いたい。 そういったケースにぴったりのフレームワークを紹介します
それが Intel Multi-OS Engine 通称MOE・もえ、ですね MOEなのかもえなのかもえなのかわからないのですが今日はあえて一番耳馴染みの良さそうなもえでいきたいと思います。 このもえ個人的にかなりよくできてておすすめなんですが、使ったことある方いらっしゃいますか? ね、もえなんていう日本人向けみたいな略称してる割に全然日本で使ってる人がいないんですよ。 ということできょうはこのMOEがどんなものなのか、どこがいいのか紹介して、ユーザーを増やしたいと思っています。
IntelとMigeranによって開発されている オープンソースフレームワーク AndroidとiOSのアプリを Java(Kotlin)で作成することが可能
公式の図を借りてきました 従来の開発だと AndroidチームがAndroidをJavaとAndroidStudioで開発して、iOSチームがXCodeとObc,swiftで開発しています。 当然、コードも似たようなロジックが別言語で二つ書かれることになります。
もえを使った場合 一つのロジックコード 一つの言語 一つのIDE 一つの開発システムで iOSとAndroidをnativeなUIで作ることができます
Androidアプリの作り方はほぼ変わらないので、いつも通りのAndroidアプリ開発+アルファでiOSを作ったり、既存のAndroidアプリケーションをあとからiOSに対応させることが理論的には可能 最悪途中でMOEを使うのやめたくなってやめたとしても、Androidアプリは問題なく動かすことが可能
Androidアプリの作り方はほぼ変わらないので、いつも通りのAndroidアプリ開発+アルファでiOSを作ったり、既存のAndroidアプリケーションをあとからiOSに対応させることが可能 java・Kotlin好きな方でかけるしJavaのLibralyも普通に利用することが可能 RetroFitやRxJava
Androidアプリに影響を与えないとはいえ少しだけ気を使う必要がある
普通のアプリだとappModulにView ViewModel Model が入ってると思います。
このように PresenterとModelをcommonModuleに切り離し iosとandroidのView部分をそれぞれ別モジュールにする必要があります。
今回はViewModelとLiveDataを使いたいのでAndroidのViewがわにViewModelとLiveDataを噛ませています これはお好みですね
では早速Androidから作っていきましょう
CommonModuleを作っていきます
やることは簡単でREtrofitとRxJava2を使ってAPIを叩き、結果が返ってきたらPresenterを通してViewを更新します。 ここで重要なのは特別なことをする必要がないということです。いつも通り特にきにすることなくRetrofitもRxJavaも使えます
JavaLibrary作ります
ほぼ割愛しますが、ViewとPresennterを作って、PresenterでRetrofitを使ってAPIを叩いて successだったらViewのshowRepoListを呼ぶだけですね。
次はAndroidのViewです
これも特にいうことないんですが、 先ほど行ったように今回はViewModelとLivedataを噛ませています。 Viewを継承して、データが来たらLiveDataにSetValueするだけです
MainActivityでObserveしてリスト表示のメソッドを呼ぶだけです なかでAdapterにデータをセットしたりして普通のアプリと同じように表示させているだけです
Androidアプリは完成です
大事なことは共有したいロジックをcommonに分けるということだけですね。 あとAndroidの世界のものを持ち込まないということです。 それ以外は普通のAndroidアプリと変わりません。
ios
Viewだけ作っていきます commonはさっき作ったので全く触る必要はありません
プラグインをいれます これだけで準備完了です
右クリックでMoe関連のアクションが表示されるようになるのでそこからMulti-OS EngineModuleを作ります おすと反応がなくなって死んでしまったのかな?って思うんですけど しばらく待つとXcodeプロジェクトなどの必要なファイルも全て作られます。
ここまでやるととりあえず実行することができます。 AndroidStudioの右上から実行するとiOSのエミュレータが立ち上がってipaが実行されます。
UIを作っていきます。 ここだけXcodeでの作業になります。 右クリックからXcodeをひらけるので開いて
普通のiOSアプリと同じようにCocoaTouchを使ってUIを作っていきます まずはファイルを作ります 今回はRepositoryListViewController
リストとかリストアイテムとかいろいろ設置していくんですが、 ここはMOEは特に関係なく純粋なiOSアプリを開発するのと全く同じ手順なので割愛します 一つ注意する点としてlanguageはOBJ-Cにする必要があるようです TableViewつくってItemおいてレイアウト整えてドラッグ&ドロップしたりNavigationBarを追加したりしました。
ここで大事なのはiOSのUI作成にMOEは関係ないということです。 わからなければiOSのUIとしてググればかいけつできますしやっぱりiOSアプリを普通に作りたいなと思った場合でもUIはそっくりそのまま利用することが可能です。
ここからがMOE独自の操作です 右クリックからCreateNewBindingを選び
細かいことは割愛しますが色々設定をいれて先ほどXcodeで作ったRepositoryListViewControllerを対象にしてGenerateBindingsすると…
こんな感じでUIViewControllerを継承したRepositoryListViewController.javaが自動で生成されます。
引きで見るとこんな感じで、UIViewControllerに必要なメソッドが一通り生成されます。 NatJというライブラリが頑張ってくれていて、同様の手順でたいていのiOSのNativeLibraryをJava,Kotlinで利用することができます。 生えてるメソッドをオーバーライドしていくことでiOS側での振る舞いを実装することが可能です。 赤くなってますがビルドできますし、Kotlinに変換してやると赤く無くなります。
あとはcommonModuleのViewと 多分iOSでおなじみの UITableViewDataSourceとUITableViewDelegateを継承しつつ
viewDidLoadでApi叩いてshowRepoListでリストを更新するような処理を書いてあげれば
Androidアプリ開発はほぼそのままにiOSのViewを追加するだけでどっちもできました。 どうでしょう?結構よくないですか? さて、最後にマルチOSエンジンのポイント
最後にMultiOsEngineのポイント、通称MOEポイントをおさらいしましょう。
最後にMultiOsEngineのポイント、通称MOEポイントをおさらいしましょう。
AndroidStudioとJava(Kotlin) + XcodeでのUI組み立て で両OS に対応できる
Nativeと同様のUIでnativeと同様のパフォーマンスです
NatJによってiOSのAPIとNativeLibraryにフルアクセスできる
海外のブログでReactNativeやXamarinよりMOEがいいよ!と言っている人でさえ、 人気がないことが一番の問題だというくらい人気がない
コミュニティはちゃんといきていて質問すれば結構答えてもらえます。 開発の人も結構登場して丁寧に教えて暮れます。 英語。 できれば日本語のコミュニティを作りたいですね。 ということで Multi-OS Engine すごくおすすめなので皆さん是非
みなさん是非、MOEを使ってMOEのMOEポイントに萌え萌えしましょう
Download now