JUCEを利用したモバイル クロスプラットフォーム開発
-
Upload
susan335 -
Category
Engineering
-
view
92 -
download
0
Transcript of JUCEを利用したモバイル クロスプラットフォーム開発
![Page 1: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/1.jpg)
JUCEを利用したモバイルクロスプラットフォーム開発
クリプトン・フューチャー・メディア株式会社渡部陽太
2016.10.16No Maps JUCE開発環境ワークショップ
![Page 2: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/2.jpg)
渡部 陽太
• クリプトン• モバイルアプリ開発• (募)Androidの勉強会
![Page 3: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/3.jpg)
今日お話しすること
![Page 4: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/4.jpg)
•活用事例
なぜスマホで動く
こいつ…動くぞ
![Page 5: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/5.jpg)
活用事例
![Page 6: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/6.jpg)
これの事例
![Page 7: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/7.jpg)
SONOCA Player
• 音楽プレーヤー• ファイルダウンローダー
![Page 8: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/8.jpg)
全部JUCEで作られていない
![Page 9: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/9.jpg)
オーディオ処理じゃない
![Page 10: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/10.jpg)
この辺をJUCEで
• ネットワーク通信• ファイル操作• 暗号処理
![Page 11: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/11.jpg)
その、経緯を
![Page 12: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/12.jpg)
SONOCA Player
• 音楽プレーヤー• ファイルダウンローダー
![Page 13: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/13.jpg)
それぞれ独自の文化ある
•android.provider.MediaStore•android.media.MediaPlayer•MPMediaQuery•AVAudioPlayer
![Page 14: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/14.jpg)
音楽プレーヤー機能はそれぞれのプラットフォームで
提供さている機能を使う
![Page 15: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/15.jpg)
音楽プレーヤー機能はそれぞれのプラットフォームで
提供さている機能を使う
![Page 16: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/16.jpg)
SONOCA Player
• 音楽プレーヤー
• ファイルダウンローダー
![Page 17: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/17.jpg)
•http通信•ファイル操作•暗号処理
ファイルダウンローダー機能がやること
![Page 18: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/18.jpg)
それぞれ独自の文化関係ない
![Page 19: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/19.jpg)
じゃー共通化したい!
![Page 20: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/20.jpg)
一般化してみる
![Page 21: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/21.jpg)
GUI → ネイティブ
ビジネスロジック → JUCE
![Page 22: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/22.jpg)
なぜスマホで動く
![Page 23: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/23.jpg)
AndroidってJavaじゃない?
JUCE ってC++だよね?
![Page 24: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/24.jpg)
どんな風に言語の壁を超えてどうやって動いているのか
![Page 25: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/25.jpg)
ダウンロード機能のGUI
ダウンロード機能のGUI
JUCEを使ったダウンロードロジック
![Page 26: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/26.jpg)
GUI GUI
JUCE 共通ロジック
![Page 27: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/27.jpg)
C++
Java SwiftObjective-C
Java
![Page 28: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/28.jpg)
C++
Java SwiftObjective-C
Java
JNI(Java Native Interface)
JUCEにはJavaコードも含まれている
![Page 29: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/29.jpg)
Objective-C
C++
Java Swift
Java
Obj-CはC++と仲良く出来るように作られている
どっちもAppleなのでもともと仲良し
![Page 30: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/30.jpg)
C++
Java Swift
Java
Objective-C
![Page 31: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/31.jpg)
GUI GUI
JUCE 共通ロジック
![Page 32: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/32.jpg)
GUI JUCE 共通ロジック
![Page 33: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/33.jpg)
JavaC++
Java
Java
C++
JavaからC++を呼び出すためのI/F
C++の独自実装
巡り巡ってAndroidのApplication Frameworkに
たどり着く
JUCEの中身
![Page 34: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/34.jpg)
ある意味、巨大なラッパー
![Page 35: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/35.jpg)
独自ランタイム 無い
![Page 36: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/36.jpg)
信頼性
![Page 37: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/37.jpg)
アプリの機能開発に注力できるこれ、大事
![Page 38: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/38.jpg)
こいつ…動くぞ
![Page 39: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/39.jpg)
https://www.juce.com/doc/tutorial_android_studio
![Page 40: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/40.jpg)
This tutorial introduces the use of Android Studio for creating JUCE-based projects.
Level: BeginnerPlatforms: Android
![Page 41: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/41.jpg)
![Page 42: JUCEを利用したモバイル クロスプラットフォーム開発](https://reader030.fdocuments.net/reader030/viewer/2022021416/58f1b3a41a28ab79638b4579/html5/thumbnails/42.jpg)