SlideShare a Scribd company logo
1 of 36
Download to read offline
【名前】森川秀一 twitterID @hideponm
自称:つ部宴会部長
【近況】
長男が小学校1年生になりました!
次男が幼稚園の年少さんになりました!
自己紹介
クロスプラットフォーム全盛!
AIRのことも忘れないであげて!
Adobe AIR
Adobe Systemsが開発する、
デスクトップ・リッチインターネットアプリケーション (RIA)
および
スマートフォン・タブレット・スマートテレビ向けアプリケーション
を開発・実行するための複数のオペレーティングシステムに対応した
ランタイムライブラリ
引用:Wikipedia
ネイティブ機能
クロスプラットフォームでも
ネイティブ機能を使いたい!
バイブ機能とか、Intent連携とか、SocialFrameworkと
か...
AIR Native Extensions
AIRならAIR Native Extensionsを
使えばおk!
AIR Native Extensions
以下のプラットフォームのネイティブ機能が使用可能
Android(2.2以降)
iOS(4.0以降)
Black Berry Playbook
AIR3.0をサポートするWindows
AIR3.0をサポートするMacOSX
テレビ用AIR
ANEを利用したAIRの作成方法
1.ネイティブのライブラリ作成(.jar .a .dll)
2.ANE用ActionScriptライブラリ作成(.swc)
3.1.2.を使用してANEライブラリ作成(.ane)
4.AIRアプリへ組み込み各プラットフォームの形式で出力
(.apk .ipa .exe)
開発環境
ネイティブライブラリ開発:
eclipse,Xcode
Action Scriptライブラリ、AIRアプリ開発:
FlexSDK / AIRSDK + エディタ(無償)
Flash Builder(有償)
Flash Develop(無償ただしWindowsのみ)
サンプル作成
Android:入力した文字がToast表示される
iOS:入力した文字がUIAlertViewに表示される
Androidライブラリ作成(1)
AIR 3 SDK
HOE//lib/android/FlashRuntimeExtensions.jar
をlibsへ
eclipse->New->Android Application Project
Create Activityのチェックを外す
Androidライブラリ作成(2)
FREExtensionをimplementsしたクラスを作成
ANE用ActionScriptとやりとりするクラス
ANE用ActionScriptから呼び出されるメソッド
名
ANE用ActionScriptで使用するFunctionを返
す
Androidライブラリ作成(3)
FREFunctionを
Implementsしたクラスを作成
(動きを実装する)
ANE用ActionScriptとのデータの
やりとりはFREObjectを使用する
現在表示されているActivityは
FREContext
から取得可能
Androidライブラリ作成(4)
.jarファイルを作成して下ごしらえ完了!
iOSライブラリ作成(1)
File->New->Project->Framework & Library->Cocoa Touch Static
Library
AIR 3 HOME/include/FlashRuntimeExtensions.hをプロジェクトに
impotする
iOSライブラリ作成(2)
.hに以下の関数を宣言する
iOSライブラリ作成(3)
Extension初期化メソッド
 void ExtensionInitializer(void** exDataToSet,
FREContextInitializer *ctxInitializerToSet,
FREContextFinalizer *ctxFinalizerToSet);
 
Extension破棄メソッド
void ExtensionFinalizer(void* extData);
Context初期化メソッド
void ContextInitializer(void* extData,
const uint8_t* ctxType,
FREObject ctx,
uint32_t* numFunctionToTest,
const FRENamedFunction** functionToSet);
Context破棄メソッド
void ContextFinalizer(FREContext ctx);
Context初期化メソッドとContext破棄メソッドを教えてあげ
る
ANEで使用するメソッドを教えてあげる
iOSライブラリ作成(4)
.mに.hで宣言した関数を実装する
Extension初期化関数
Context初期化関数
.mに.hで宣言した関数を実装する
ANE用ActionScriptから呼び出されるメソッド
名
ANE用ActionScript作成
へたれなのでFlash Builderで作成しました
(60日間無料体験版があります)
http://www.adobe.com/jp/products/flash-
builder.html
ANE用ActionScript作成(1)
新規->Flexライブラリプロジェクト作成
ANE用ActionScript作成(2)
Flexライブラリコンパイラの追加コンパイラー引数に -swf-version 13を追加する
ANE用ActionScript作成(3)
プロジェクト内に
platform/android
と
platform/iphone
を作成し、ネイティブライブラリをコピーしておく
ANE用ActionScript作成(4)
ExtensionContextクラスを生成
拡張ファイル(extension.xml)のIDエレメントを記述する
ネイティブメソッドを呼び出し
ANE用ActionScript作成(5)
コンパイルするとActionScriptライブラリ(.swc)が出来上がる
ANE用ActionScript作成(6)
プロジェクト内にextension.xmlを作成する
ANE用ActionScript作成(7)
Id:ExtensionContextクラスを生成する時に使用する
nativelibrary:ネイティブライブラリを指定する
initializer:初期化メソッドを指定する
android:FREExtensionをimplementsしたクラス名
iOS:Extension初期化メソッド名
finalizer:破棄メソッドを指定する
android:FREExtensionをimplementsしたクラス名
iOS:Extension破棄メソッド名
ANE用ActionScript作成(8)
先ほど作成したActionScriptライブラリの拡張子をzipに変えて
解凍し、library.swfを取り出す
platform/android
platform/iphone
にlibrary.swfをコピーする
ANE用ActionScript作成(9)
ADTコマンドでANEファイルを作成する
adt
-package -target ane ToastExtension.ane
exntension.xml
-swc bin/ToastExtension.swc
-platform iPhone-ARM -C platfrom/iphone .
-platform Android-ARM -C platform/android .
-platfrom default -C platform/default .
AIRアプリケーション作成(1)
新規->Flexモバイルプロジェクト
Flexビルドパスに先ほど作成したANEを追加する
AIRアプリケーション作成(2)
ANEライブラリのメソッドが呼び出せるよ!
出来た
ちなみに
Androidの場合、アプリ名-app.xmlに
パーミッションやANEライブラリ内で使用している
Service
BroadcastReceiver
Activity
を記述する必要あり
まとめ
・AIRでAir Native Extensionsを使えばネイティブ機能が使えるよ!
・同じメソッドでplatform毎の振る舞いを変えることができるよ!
・めんどくさいよ!
・デバッグが大変だよ!
・ADTコマンドがJava7じゃ動かねえよ!
・Android4.2.2の端末だとFlexBuilderが端末認識しねえよ!
etc...
まとめ
ドMな人におすすめ!
おしまい
ご清聴ありがとうございまし
た

More Related Content

Viewers also liked

ここからはじめるAction Script 3.0 入門前
ここからはじめるAction Script 3.0 入門前ここからはじめるAction Script 3.0 入門前
ここからはじめるAction Script 3.0 入門前Yusuke Kamo
 
WCAN mini ActionScript vol.11
WCAN mini ActionScript vol.11WCAN mini ActionScript vol.11
WCAN mini ActionScript vol.11ll_koba_ll
 
HokurikuUnConference: Windows7
HokurikuUnConference: Windows7HokurikuUnConference: Windows7
HokurikuUnConference: Windows7guest3820592
 
Unity講座資料1
Unity講座資料1Unity講座資料1
Unity講座資料1Mattun
 
WCAN mini Actionscript Vol.9 - LEDガジェット、ただのピカピカと見るか?アニメーションと見るか?
WCAN mini Actionscript Vol.9 - LEDガジェット、ただのピカピカと見るか?アニメーションと見るか?WCAN mini Actionscript Vol.9 - LEDガジェット、ただのピカピカと見るか?アニメーションと見るか?
WCAN mini Actionscript Vol.9 - LEDガジェット、ただのピカピカと見るか?アニメーションと見るか?Hideyuki TAKEI
 
Flash Developerになる4つのヒント
Flash Developerになる4つのヒントFlash Developerになる4つのヒント
Flash Developerになる4つのヒントYusuke Kamo
 
インタラクティブコンテンツにおけるHTML5とFlash
インタラクティブコンテンツにおけるHTML5とFlashインタラクティブコンテンツにおけるHTML5とFlash
インタラクティブコンテンツにおけるHTML5とFlashYasunobu Ikeda
 
2011/12/14 FxUG発表資料 初めてのRobotlegs
2011/12/14 FxUG発表資料 初めてのRobotlegs 2011/12/14 FxUG発表資料 初めてのRobotlegs
2011/12/14 FxUG発表資料 初めてのRobotlegs 豊 満石
 
Groovyクイズ(計算編)
Groovyクイズ(計算編)Groovyクイズ(計算編)
Groovyクイズ(計算編)Yasuharu Hayami
 
TravisCIでActionScriptを動かす
TravisCIでActionScriptを動かすTravisCIでActionScriptを動かす
TravisCIでActionScriptを動かすgyoh_k
 
FOSS4G LT - Invitation to ActionScript Programming
FOSS4G LT - Invitation to ActionScript ProgrammingFOSS4G LT - Invitation to ActionScript Programming
FOSS4G LT - Invitation to ActionScript Programminggyuque
 
Unity講座資料 共通
Unity講座資料 共通Unity講座資料 共通
Unity講座資料 共通Mattun
 
JavaScript Tips 2015(PDF 版)
JavaScript Tips 2015(PDF 版)JavaScript Tips 2015(PDF 版)
JavaScript Tips 2015(PDF 版)taskie
 
開発ゼミ発表
開発ゼミ発表開発ゼミ発表
開発ゼミ発表YanoLabLT
 
とあるFlashの自動生成
とあるFlashの自動生成とあるFlashの自動生成
とあるFlashの自動生成Akineko Shimizu
 
Unity2015_No5_~Mecanim~
 Unity2015_No5_~Mecanim~  Unity2015_No5_~Mecanim~
Unity2015_No5_~Mecanim~ CHY72
 

Viewers also liked (20)

ここからはじめるAction Script 3.0 入門前
ここからはじめるAction Script 3.0 入門前ここからはじめるAction Script 3.0 入門前
ここからはじめるAction Script 3.0 入門前
 
WCAN mini ActionScript vol.11
WCAN mini ActionScript vol.11WCAN mini ActionScript vol.11
WCAN mini ActionScript vol.11
 
HokurikuUnConference: Windows7
HokurikuUnConference: Windows7HokurikuUnConference: Windows7
HokurikuUnConference: Windows7
 
Unity講座資料1
Unity講座資料1Unity講座資料1
Unity講座資料1
 
WCAN mini Actionscript Vol.9 - LEDガジェット、ただのピカピカと見るか?アニメーションと見るか?
WCAN mini Actionscript Vol.9 - LEDガジェット、ただのピカピカと見るか?アニメーションと見るか?WCAN mini Actionscript Vol.9 - LEDガジェット、ただのピカピカと見るか?アニメーションと見るか?
WCAN mini Actionscript Vol.9 - LEDガジェット、ただのピカピカと見るか?アニメーションと見るか?
 
Flash Developerになる4つのヒント
Flash Developerになる4つのヒントFlash Developerになる4つのヒント
Flash Developerになる4つのヒント
 
GroovyでJSON2015
GroovyでJSON2015GroovyでJSON2015
GroovyでJSON2015
 
Scc2015 SNS Tech
Scc2015 SNS TechScc2015 SNS Tech
Scc2015 SNS Tech
 
インタラクティブコンテンツにおけるHTML5とFlash
インタラクティブコンテンツにおけるHTML5とFlashインタラクティブコンテンツにおけるHTML5とFlash
インタラクティブコンテンツにおけるHTML5とFlash
 
2011/12/14 FxUG発表資料 初めてのRobotlegs
2011/12/14 FxUG発表資料 初めてのRobotlegs 2011/12/14 FxUG発表資料 初めてのRobotlegs
2011/12/14 FxUG発表資料 初めてのRobotlegs
 
Groovyクイズ(計算編)
Groovyクイズ(計算編)Groovyクイズ(計算編)
Groovyクイズ(計算編)
 
Flex入門
Flex入門Flex入門
Flex入門
 
TravisCIでActionScriptを動かす
TravisCIでActionScriptを動かすTravisCIでActionScriptを動かす
TravisCIでActionScriptを動かす
 
FOSS4G LT - Invitation to ActionScript Programming
FOSS4G LT - Invitation to ActionScript ProgrammingFOSS4G LT - Invitation to ActionScript Programming
FOSS4G LT - Invitation to ActionScript Programming
 
Unity講座資料 共通
Unity講座資料 共通Unity講座資料 共通
Unity講座資料 共通
 
JavaScript Tips 2015(PDF 版)
JavaScript Tips 2015(PDF 版)JavaScript Tips 2015(PDF 版)
JavaScript Tips 2015(PDF 版)
 
開発ゼミ発表
開発ゼミ発表開発ゼミ発表
開発ゼミ発表
 
Scc2015 you tube
Scc2015 you tubeScc2015 you tube
Scc2015 you tube
 
とあるFlashの自動生成
とあるFlashの自動生成とあるFlashの自動生成
とあるFlashの自動生成
 
Unity2015_No5_~Mecanim~
 Unity2015_No5_~Mecanim~  Unity2015_No5_~Mecanim~
Unity2015_No5_~Mecanim~
 

Similar to Aneについて

Flash Professional CS6 の新機能のご紹介 AIR編
Flash Professional CS6 の新機能のご紹介 AIR編Flash Professional CS6 の新機能のご紹介 AIR編
Flash Professional CS6 の新機能のご紹介 AIR編KinkumaDesign
 
2011_9_9_AIR_LightningTalk
2011_9_9_AIR_LightningTalk2011_9_9_AIR_LightningTalk
2011_9_9_AIR_LightningTalkShozo Okada
 
2011_9_9_AIR_LightningTalk
2011_9_9_AIR_LightningTalk2011_9_9_AIR_LightningTalk
2011_9_9_AIR_LightningTalkShozo Okada
 
複数言語に触れてIoTの表現の幅を広げよう
複数言語に触れてIoTの表現の幅を広げよう複数言語に触れてIoTの表現の幅を広げよう
複数言語に触れてIoTの表現の幅を広げようCore Concept Technologies
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版DIVE INTO CODE Corp.
 
Web制作で培ってきたFlashのリッチな表現力をモバイルアプリに
Web制作で培ってきたFlashのリッチな表現力をモバイルアプリにWeb制作で培ってきたFlashのリッチな表現力をモバイルアプリに
Web制作で培ってきたFlashのリッチな表現力をモバイルアプリにinvogue
 
Webを支える技術 1章 webとは何か?
Webを支える技術 1章 webとは何か?Webを支える技術 1章 webとは何か?
Webを支える技術 1章 webとは何か?善昭 今西
 
ソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティングソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティングRyohei Kamiya
 
Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)Monaca
 
さくらのIoT Platformを使ってみよう ~OSC大阪編~
さくらのIoT Platformを使ってみよう ~OSC大阪編~さくらのIoT Platformを使ってみよう ~OSC大阪編~
さくらのIoT Platformを使ってみよう ~OSC大阪編~法林浩之
 
【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)
【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)
【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)Shinichiro Yoshida
 
2013年08月 夏サミ2013-A5「DevOpsってどうなのよ?」
2013年08月 夏サミ2013-A5「DevOpsってどうなのよ?」2013年08月 夏サミ2013-A5「DevOpsってどうなのよ?」
2013年08月 夏サミ2013-A5「DevOpsってどうなのよ?」Serverworks Co.,Ltd.
 
[Potatotips]クロスプラットフォーム開発Tips
[Potatotips]クロスプラットフォーム開発Tips[Potatotips]クロスプラットフォーム開発Tips
[Potatotips]クロスプラットフォーム開発TipsKenichi Kambara
 
帰ってきた Delphi
帰ってきた Delphi帰ってきた Delphi
帰ってきた DelphiTakumi Yamada
 

Similar to Aneについて (20)

Rubykaigi2010
Rubykaigi2010Rubykaigi2010
Rubykaigi2010
 
Flash Professional CS6 の新機能のご紹介 AIR編
Flash Professional CS6 の新機能のご紹介 AIR編Flash Professional CS6 の新機能のご紹介 AIR編
Flash Professional CS6 の新機能のご紹介 AIR編
 
2011_9_9_AIR_LightningTalk
2011_9_9_AIR_LightningTalk2011_9_9_AIR_LightningTalk
2011_9_9_AIR_LightningTalk
 
2011_9_9_AIR_LightningTalk
2011_9_9_AIR_LightningTalk2011_9_9_AIR_LightningTalk
2011_9_9_AIR_LightningTalk
 
複数言語に触れてIoTの表現の幅を広げよう
複数言語に触れてIoTの表現の幅を広げよう複数言語に触れてIoTの表現の幅を広げよう
複数言語に触れてIoTの表現の幅を広げよう
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
 
Web制作で培ってきたFlashのリッチな表現力をモバイルアプリに
Web制作で培ってきたFlashのリッチな表現力をモバイルアプリにWeb制作で培ってきたFlashのリッチな表現力をモバイルアプリに
Web制作で培ってきたFlashのリッチな表現力をモバイルアプリに
 
Webを支える技術 1章 webとは何か?
Webを支える技術 1章 webとは何か?Webを支える技術 1章 webとは何か?
Webを支える技術 1章 webとは何か?
 
ソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティングソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティング
 
Linebotを作ろう
Linebotを作ろうLinebotを作ろう
Linebotを作ろう
 
Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)
 
さくらのIoT Platformを使ってみよう ~OSC大阪編~
さくらのIoT Platformを使ってみよう ~OSC大阪編~さくらのIoT Platformを使ってみよう ~OSC大阪編~
さくらのIoT Platformを使ってみよう ~OSC大阪編~
 
Hacking Robotics
Hacking RoboticsHacking Robotics
Hacking Robotics
 
【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)
【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)
【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)
 
2013年08月 夏サミ2013-A5「DevOpsってどうなのよ?」
2013年08月 夏サミ2013-A5「DevOpsってどうなのよ?」2013年08月 夏サミ2013-A5「DevOpsってどうなのよ?」
2013年08月 夏サミ2013-A5「DevOpsってどうなのよ?」
 
Tizen native application
Tizen native applicationTizen native application
Tizen native application
 
LIFFとLINE SDKの昨今
LIFFとLINE SDKの昨今 LIFFとLINE SDKの昨今
LIFFとLINE SDKの昨今
 
[Potatotips]クロスプラットフォーム開発Tips
[Potatotips]クロスプラットフォーム開発Tips[Potatotips]クロスプラットフォーム開発Tips
[Potatotips]クロスプラットフォーム開発Tips
 
デバイス WebAPI設計の進め方
デバイス WebAPI設計の進め方デバイス WebAPI設計の進め方
デバイス WebAPI設計の進め方
 
帰ってきた Delphi
帰ってきた Delphi帰ってきた Delphi
帰ってきた Delphi
 

Aneについて