juceを利用したモバイル クロスプラットフォーム開発

42
JUCEを利用した モバイル クロスプラットフォーム開発 クリプトン・フューチャー・メディア株式会社 渡部陽太 2016.10.16 No Maps JUCE開発環境ワークショップ

Upload: susan335

Post on 15-Apr-2017

81 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: JUCEを利用したモバイル クロスプラットフォーム開発

JUCEを利用したモバイルクロスプラットフォーム開発

クリプトン・フューチャー・メディア株式会社渡部陽太

2016.10.16No Maps JUCE開発環境ワークショップ

Page 2: JUCEを利用したモバイル クロスプラットフォーム開発

渡部 陽太

• クリプトン• モバイルアプリ開発• (募)Androidの勉強会

Page 3: JUCEを利用したモバイル クロスプラットフォーム開発

今日お話しすること

Page 4: JUCEを利用したモバイル クロスプラットフォーム開発

•活用事例

なぜスマホで動く

こいつ…動くぞ

Page 5: JUCEを利用したモバイル クロスプラットフォーム開発

活用事例

Page 6: JUCEを利用したモバイル クロスプラットフォーム開発

これの事例

Page 7: JUCEを利用したモバイル クロスプラットフォーム開発

SONOCA Player

• 音楽プレーヤー• ファイルダウンローダー

Page 8: JUCEを利用したモバイル クロスプラットフォーム開発

全部JUCEで作られていない

Page 9: JUCEを利用したモバイル クロスプラットフォーム開発

オーディオ処理じゃない

Page 10: JUCEを利用したモバイル クロスプラットフォーム開発

この辺をJUCEで

• ネットワーク通信• ファイル操作• 暗号処理

Page 11: JUCEを利用したモバイル クロスプラットフォーム開発

その、経緯を

Page 12: JUCEを利用したモバイル クロスプラットフォーム開発

SONOCA Player

• 音楽プレーヤー• ファイルダウンローダー

Page 13: JUCEを利用したモバイル クロスプラットフォーム開発

それぞれ独自の文化ある

•android.provider.MediaStore•android.media.MediaPlayer•MPMediaQuery•AVAudioPlayer

Page 14: JUCEを利用したモバイル クロスプラットフォーム開発

音楽プレーヤー機能はそれぞれのプラットフォームで

提供さている機能を使う

Page 15: JUCEを利用したモバイル クロスプラットフォーム開発

音楽プレーヤー機能はそれぞれのプラットフォームで

提供さている機能を使う

Page 16: JUCEを利用したモバイル クロスプラットフォーム開発

SONOCA Player

• 音楽プレーヤー

• ファイルダウンローダー

Page 17: JUCEを利用したモバイル クロスプラットフォーム開発

•http通信•ファイル操作•暗号処理

ファイルダウンローダー機能がやること

Page 18: JUCEを利用したモバイル クロスプラットフォーム開発

それぞれ独自の文化関係ない

Page 19: JUCEを利用したモバイル クロスプラットフォーム開発

じゃー共通化したい!

Page 20: JUCEを利用したモバイル クロスプラットフォーム開発

一般化してみる

Page 21: JUCEを利用したモバイル クロスプラットフォーム開発

GUI → ネイティブ

ビジネスロジック → JUCE

Page 22: JUCEを利用したモバイル クロスプラットフォーム開発

なぜスマホで動く

Page 23: JUCEを利用したモバイル クロスプラットフォーム開発

AndroidってJavaじゃない?

JUCE ってC++だよね?

Page 24: JUCEを利用したモバイル クロスプラットフォーム開発

どんな風に言語の壁を超えてどうやって動いているのか

Page 25: JUCEを利用したモバイル クロスプラットフォーム開発

ダウンロード機能のGUI

ダウンロード機能のGUI

JUCEを使ったダウンロードロジック

Page 26: JUCEを利用したモバイル クロスプラットフォーム開発

GUI GUI

JUCE 共通ロジック

Page 27: JUCEを利用したモバイル クロスプラットフォーム開発

C++

Java SwiftObjective-C

Java

Page 28: JUCEを利用したモバイル クロスプラットフォーム開発

C++

Java SwiftObjective-C

Java

JNI(Java Native Interface)

JUCEにはJavaコードも含まれている

Page 29: JUCEを利用したモバイル クロスプラットフォーム開発

Objective-C

C++

Java Swift

Java

Obj-CはC++と仲良く出来るように作られている

どっちもAppleなのでもともと仲良し

Page 30: JUCEを利用したモバイル クロスプラットフォーム開発

C++

Java Swift

Java

Objective-C

Page 31: JUCEを利用したモバイル クロスプラットフォーム開発

GUI GUI

JUCE 共通ロジック

Page 32: JUCEを利用したモバイル クロスプラットフォーム開発

GUI JUCE 共通ロジック

Page 33: JUCEを利用したモバイル クロスプラットフォーム開発

JavaC++

Java

Java

C++

JavaからC++を呼び出すためのI/F

C++の独自実装

巡り巡ってAndroidのApplication Frameworkに

たどり着く

JUCEの中身

Page 34: JUCEを利用したモバイル クロスプラットフォーム開発

ある意味、巨大なラッパー

Page 35: JUCEを利用したモバイル クロスプラットフォーム開発

独自ランタイム 無い

Page 36: JUCEを利用したモバイル クロスプラットフォーム開発

信頼性

Page 37: JUCEを利用したモバイル クロスプラットフォーム開発

アプリの機能開発に注力できるこれ、大事

Page 38: JUCEを利用したモバイル クロスプラットフォーム開発

こいつ…動くぞ

Page 39: JUCEを利用したモバイル クロスプラットフォーム開発

https://www.juce.com/doc/tutorial_android_studio

Page 40: JUCEを利用したモバイル クロスプラットフォーム開発

This tutorial introduces the use of Android Studio for creating JUCE-based projects.

Level: BeginnerPlatforms: Android

Page 41: JUCEを利用したモバイル クロスプラットフォーム開発
Page 42: JUCEを利用したモバイル クロスプラットフォーム開発