Upload
susan335
View
92
Download
0
Embed Size (px)
Citation preview
JUCEを利用したモバイルクロスプラットフォーム開発
クリプトン・フューチャー・メディア株式会社渡部陽太
2016.10.16No Maps JUCE開発環境ワークショップ
渡部 陽太
• クリプトン• モバイルアプリ開発• (募)Androidの勉強会
今日お話しすること
•活用事例
なぜスマホで動く
こいつ…動くぞ
活用事例
これの事例
SONOCA Player
• 音楽プレーヤー• ファイルダウンローダー
全部JUCEで作られていない
オーディオ処理じゃない
この辺をJUCEで
• ネットワーク通信• ファイル操作• 暗号処理
その、経緯を
SONOCA Player
• 音楽プレーヤー• ファイルダウンローダー
それぞれ独自の文化ある
•android.provider.MediaStore•android.media.MediaPlayer•MPMediaQuery•AVAudioPlayer
音楽プレーヤー機能はそれぞれのプラットフォームで
提供さている機能を使う
音楽プレーヤー機能はそれぞれのプラットフォームで
提供さている機能を使う
SONOCA Player
• 音楽プレーヤー
• ファイルダウンローダー
•http通信•ファイル操作•暗号処理
ファイルダウンローダー機能がやること
それぞれ独自の文化関係ない
じゃー共通化したい!
一般化してみる
GUI → ネイティブ
ビジネスロジック → JUCE
なぜスマホで動く
AndroidってJavaじゃない?
JUCE ってC++だよね?
どんな風に言語の壁を超えてどうやって動いているのか
ダウンロード機能のGUI
ダウンロード機能のGUI
JUCEを使ったダウンロードロジック
GUI GUI
JUCE 共通ロジック
C++
Java SwiftObjective-C
Java
C++
Java SwiftObjective-C
Java
JNI(Java Native Interface)
JUCEにはJavaコードも含まれている
Objective-C
C++
Java Swift
Java
Obj-CはC++と仲良く出来るように作られている
どっちもAppleなのでもともと仲良し
C++
Java Swift
Java
Objective-C
GUI GUI
JUCE 共通ロジック
GUI JUCE 共通ロジック
JavaC++
Java
Java
C++
JavaからC++を呼び出すためのI/F
C++の独自実装
巡り巡ってAndroidのApplication Frameworkに
たどり着く
JUCEの中身
ある意味、巨大なラッパー
独自ランタイム 無い
信頼性
アプリの機能開発に注力できるこれ、大事
こいつ…動くぞ
https://www.juce.com/doc/tutorial_android_studio
This tutorial introduces the use of Android Studio for creating JUCE-based projects.
Level: BeginnerPlatforms: Android