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

Preview:

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

Recommended