https://slides.com/masa-tanaka/ionic-meetup-4/
アシアル株式会社
代表取締役 兼 Monacaプロダクトマネージャー
Bunkyo, Tokyo
@massie
masahirotanaka
ASIA'S LEADER
バックエンドからフロントエンドまでフルスタックに対応します
HTML5アプリ開発
プラットフォーム
Web Components
モバイルUIフレームワーク
Cordova
&
Monaca
&
Onsen UI
Onsen UI
Ionic
http://cordova.apache.org/
ネイティブレイヤー
WebView
HTML5でアプリを記述
Service Worker
HTML5アプリ
ブラウザー
Cordova Plugin
HTML5アプリ
アプリ
ネイティブAPI
Onsen UI
Ionic
Framework 7
Element UI
開発
デザイン言語
コンポーネント数
フレームワーク
Web Components
アシアル (日)
iOS / Android
29
Vue/Angular/React
対応
Drifty Co. (米)
iOS / Android
28
Angular
アルファ版
iDangero.us (露)
iOS / Android
40
Vue/React
非対応
ElementFE (中)
独自デザイン
25
Vue専用
非対応
Cordovaプラグインの問題
プラグイン1
Cordovaプラグインはビルド時にソースコードに取り込まれるため、ビルドを実際に行うまでエラーが分からない
プラグイン2
プラグイン3
+
+
同じライブラリの別バージョンが使われていて名前空間が重複する
hookスクリプトでCordova本体を修正しようとしてパッチ適用に失敗する
特定のバージョンのCordovaに依存していて、最新バージョンで動かない
Cordova Plugin NativeBridge
オレオレNativeプラグインを簡単に作るためのプラグイン。
JavaとObjective-Cのクラスと公開メソッドを作るだけで、同名のメソッドをJavaScriptから呼び出すことができる。
@interface SMPSimpleGate : CDPGate
@end
@implementation SMPSimpleGate
/**
* JavaScript レイヤで指定したメソッドと引数を受けることができる
* 値を戻すにはreturnParamsを使用する。
*/
- (void)coolMethod:(NSNumber*)arg1 :(BOOL)arg2 :(NSString*)arg3 :(NSDictionary*)arg4
{
// 任意の処理
NSString* msg = [NSString stringWithFormat:@"arg1: %@, arg2: %@, arg3: %@, 日本語でOK: %@"
, arg1, (arg2 ? @"true" : @"false"), arg3, (arg4[@"ok"] ? @"true" : @"false")];
// returnParams は NSObject を1つ返却できる。(return ステートメントと同じセマンティックス)
[self returnParams:msg];
}
module SampleApp {
export class SimpleGate extends CDP.NativeBridge.Gate {
constructor() {
super({ // super constructor には CDP.NativeBridge.Feature を指定 (必須)
name: "SimpleGate",
android: {
packageInfo: "com.sony.cdp.sample.SimpleGate", // Android Java でリフレクションに使用するクラス
},
ios: {
packageInfo: "SMPSimpleGate", // iOS Objective-C でリフレクションに使用するクラス
},
});
}
public coolMethod(arg1: number, arg2: boolean, arg3: string, arg4: Object): Promise {
return super.exec("coolMethod", <any>arguments);
}
}
}
Capacitor by Ionic
https://capacitor.ionicframework.com
アルファ版
React Nativeと同様に、iOS/Androidプロジェクトに直接プラグインがインストールされていく
Monacaとは
Monaca = HTML5アプリの開発環境
Monacaを使うメリット
クラウドIDE
デスクトップ
アプリ
技術サポート
Monacaのなかで発生する問題を
実際のコードを見てサポートいたします
PWA開発のサポート
Webパブリッシュ機能
COMING SOON!
ターミナル機能の提供
最新バージョンのクラウドIDE
Monacoエディタとの統合
Monacoエディタ+Language Server化
これが何を意味するか?
PWA対応
WebPack対応
TypeScript対応
Ionicをフルサポート
DEMO TIME
Where to go next?
質問は: masahiro@asial.co.jp
MonacaのWebサイト: https://ja.monaca.io/
Cordovaの技術サポート: https://ja.monaca.io/service/