SlideShare a Scribd company logo
1 of 19
Download to read offline
Androidとの同時開発だけど
       モデルをC++で書けば
       問題ないよねっ

              @nowsprinting
               長谷川 孝二

13年2月24日日曜日
自己紹介

              仕事
              - 主にiOSアプリ開発
              ( フリーランス)

              コミュニティ活動
              - Android系
              - テスト自動化




              2月27日発売
13年2月24日日曜日
Android案件が取れない件

        お客様
        「長谷川さんにはiOS版を
         お願いします。
         Android版はA社に。」

13年2月24日日曜日
そこで



13年2月24日日曜日
Android         iOS
     View
 Controller


              Android SDK   Cocoa Touch

                 Java       Objective-C

    Model




13年2月24日日曜日
Android             iOS
     View     Android SDK     Cocoa Touch
 Controller       Java        Objective-C

                  JNI




    Model               C++ STL


13年2月24日日曜日
メリット



13年2月24日日曜日
メリット

         • C++/STLで書ける!
         • Modelはワンソース
         • View, Controllerはそれぞれのプラット
              フォームネイティブ(統一的UI)



13年2月24日日曜日
デメリット



13年2月24日日曜日
13年2月24日日曜日
Android             iOS
     View      Android SDK     Cocoa Touch
 Controller        Java        Objective-C

                   JNI


              メソッドコール頻度が増えると
              性能が出ない(と言われているが、
    Model
              そんなに遅くない感触。でも早くもない)

                         C++ STL
13年2月24日日曜日
ツール/ライブラリ



13年2月24日日曜日
C++Modelのテスト

         • OCUnit
         • GHUnit
         • Google Mock等(C++用)
         • Xcodeのデバッガ
13年2月24日日曜日
SDKの代用
         • NSURLConnection
          • libcurl + OpenSSLなど
         • NSJSONSerialization
          • picojsonなど
         • NSUserDefaults
          • Documents/下のファイルに直接書く
13年2月24日日曜日
JNIラッパーの生成

         • SWIG    http://www.swig.org/

              • 簡単な定義を書くだけでラッパーと
               Java側のソースまで生成してくれる

              • STLも使える
              • ノウハウはblogにでも書きます

13年2月24日日曜日
定義ファイルの例
                  ターゲットから使用する
                            クラス

                    ターゲット




                 コレクションなど型の定義
                  (必要に応じて)
13年2月24日日曜日
導入実績



13年2月24日日曜日
導入(提案)実績

        お客様
        「それはすばらしい!
         ぜひ導入してください。
         で、
         Androidの表示層はC社に」
13年2月24日日曜日
ご清聴ありがとう
              ございました


13年2月24日日曜日

More Related Content

Similar to Androidとの同時開発だけどモデルをC++で書けば問題ないよねっ

Chromium androidビルド
Chromium androidビルドChromium androidビルド
Chromium androidビルド
Hiroshi Sakate
 
みゆっき☆Think#3 「androidに触ってみるよ!」
みゆっき☆Think#3 「androidに触ってみるよ!」みゆっき☆Think#3 「androidに触ってみるよ!」
みゆっき☆Think#3 「androidに触ってみるよ!」
techtalkdwango
 
smartphone test (know how & tools)
smartphone test (know how & tools)smartphone test (know how & tools)
smartphone test (know how & tools)
Yukio Andoh
 
姫路IT系勉強会「ADB接続でかんたんフィジカルコンピューティング」
姫路IT系勉強会「ADB接続でかんたんフィジカルコンピューティング」姫路IT系勉強会「ADB接続でかんたんフィジカルコンピューティング」
姫路IT系勉強会「ADB接続でかんたんフィジカルコンピューティング」
Kenichi Yoshida
 
[Jagys]android41+開発ツール紹介
[Jagys]android41+開発ツール紹介[Jagys]android41+開発ツール紹介
[Jagys]android41+開発ツール紹介
Kenichi Kambara
 

Similar to Androidとの同時開発だけどモデルをC++で書けば問題ないよねっ (20)

Chromium androidビルド
Chromium androidビルドChromium androidビルド
Chromium androidビルド
 
みゆっき☆Think#3 「androidに触ってみるよ!」
みゆっき☆Think#3 「androidに触ってみるよ!」みゆっき☆Think#3 「androidに触ってみるよ!」
みゆっき☆Think#3 「androidに触ってみるよ!」
 
Android Studio 2.2の紹介@Google I/O 2016東京報告会
Android Studio 2.2の紹介@Google I/O 2016東京報告会Android Studio 2.2の紹介@Google I/O 2016東京報告会
Android Studio 2.2の紹介@Google I/O 2016東京報告会
 
開発支援ツールとは?
開発支援ツールとは?開発支援ツールとは?
開発支援ツールとは?
 
【ヒカ☆ラボ】 dely株式会社 梅森 翔氏 登壇資料 20171121
【ヒカ☆ラボ】 dely株式会社 梅森 翔氏 登壇資料 20171121【ヒカ☆ラボ】 dely株式会社 梅森 翔氏 登壇資料 20171121
【ヒカ☆ラボ】 dely株式会社 梅森 翔氏 登壇資料 20171121
 
継続的インテグレーション を軽く紹介
継続的インテグレーション を軽く紹介継続的インテグレーション を軽く紹介
継続的インテグレーション を軽く紹介
 
ソニーでElectronアプリをリリースしてみた
ソニーでElectronアプリをリリースしてみたソニーでElectronアプリをリリースしてみた
ソニーでElectronアプリをリリースしてみた
 
smartphone test (know how & tools)
smartphone test (know how & tools)smartphone test (know how & tools)
smartphone test (know how & tools)
 
Yidev cocos2dx
Yidev cocos2dxYidev cocos2dx
Yidev cocos2dx
 
Android Studioの魅力
Android Studioの魅力Android Studioの魅力
Android Studioの魅力
 
続Open cv4android
続Open cv4android続Open cv4android
続Open cv4android
 
姫路IT系勉強会「ADB接続でかんたんフィジカルコンピューティング」
姫路IT系勉強会「ADB接続でかんたんフィジカルコンピューティング」姫路IT系勉強会「ADB接続でかんたんフィジカルコンピューティング」
姫路IT系勉強会「ADB接続でかんたんフィジカルコンピューティング」
 
[Jagys]android41+開発ツール紹介
[Jagys]android41+開発ツール紹介[Jagys]android41+開発ツール紹介
[Jagys]android41+開発ツール紹介
 
アド部5回発表
アド部5回発表アド部5回発表
アド部5回発表
 
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
 
[豆ナイト]Java small object programming
[豆ナイト]Java small object programming[豆ナイト]Java small object programming
[豆ナイト]Java small object programming
 
C#のコード解析ってなんだ@20160825 CenterCLR.学生 #1
C#のコード解析ってなんだ@20160825 CenterCLR.学生 #1C#のコード解析ってなんだ@20160825 CenterCLR.学生 #1
C#のコード解析ってなんだ@20160825 CenterCLR.学生 #1
 
入門者用Android Studio Hands on
入門者用Android Studio Hands on入門者用Android Studio Hands on
入門者用Android Studio Hands on
 
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
 
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
 

More from Koji Hasegawa

Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Koji Hasegawa
 
スマートフォンアプリ開発と自動化 〜なじむ。実に!なじむぞ!〜 #AsianAA
スマートフォンアプリ開発と自動化 〜なじむ。実に!なじむぞ!〜 #AsianAAスマートフォンアプリ開発と自動化 〜なじむ。実に!なじむぞ!〜 #AsianAA
スマートフォンアプリ開発と自動化 〜なじむ。実に!なじむぞ!〜 #AsianAA
Koji Hasegawa
 
スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編
スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編
スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編
Koji Hasegawa
 
Testterチーム2011年まとめ
Testterチーム2011年まとめTestterチーム2011年まとめ
Testterチーム2011年まとめ
Koji Hasegawa
 

More from Koji Hasegawa (19)

Blender-like SceneView Hotkeys Unity extensions
Blender-like SceneView Hotkeys Unity extensionsBlender-like SceneView Hotkeys Unity extensions
Blender-like SceneView Hotkeys Unity extensions
 
IntelliJ plugin の作りかた
IntelliJ plugin の作りかたIntelliJ plugin の作りかた
IntelliJ plugin の作りかた
 
AltUnityTesterを試してみた #gotandaunity
AltUnityTesterを試してみた #gotandaunityAltUnityTesterを試してみた #gotandaunity
AltUnityTesterを試してみた #gotandaunity
 
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
 
テストの種類とBDD #33testing
テストの種類とBDD #33testingテストの種類とBDD #33testing
テストの種類とBDD #33testing
 
ビルドプロセスとCI #STAC2014
ビルドプロセスとCI #STAC2014ビルドプロセスとCI #STAC2014
ビルドプロセスとCI #STAC2014
 
VRの入力デバイス #JAGVR
VRの入力デバイス #JAGVRVRの入力デバイス #JAGVR
VRの入力デバイス #JAGVR
 
スマートフォンアプリ開発と自動化 〜なじむ。実に!なじむぞ!〜 #AsianAA
スマートフォンアプリ開発と自動化 〜なじむ。実に!なじむぞ!〜 #AsianAAスマートフォンアプリ開発と自動化 〜なじむ。実に!なじむぞ!〜 #AsianAA
スマートフォンアプリ開発と自動化 〜なじむ。実に!なじむぞ!〜 #AsianAA
 
スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編
スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編
スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編
 
iOSアプリ開発でもTravis CI #eytokyo
iOSアプリ開発でもTravis CI #eytokyoiOSアプリ開発でもTravis CI #eytokyo
iOSアプリ開発でもTravis CI #eytokyo
 
テストフィクスチャTips(主にCoreData) #potatotips
テストフィクスチャTips(主にCoreData) #potatotipsテストフィクスチャTips(主にCoreData) #potatotips
テストフィクスチャTips(主にCoreData) #potatotips
 
Androidで使えるモックフレームワーク
Androidで使えるモックフレームワークAndroidで使えるモックフレームワーク
Androidで使えるモックフレームワーク
 
スマートフォンアプリの テスト自動化をはじめよう
スマートフォンアプリの テスト自動化をはじめようスマートフォンアプリの テスト自動化をはじめよう
スマートフォンアプリの テスト自動化をはじめよう
 
第3回Ques ここからはじめる!Androidアプリのテスト自動化
第3回Ques ここからはじめる!Androidアプリのテスト自動化第3回Ques ここからはじめる!Androidアプリのテスト自動化
第3回Ques ここからはじめる!Androidアプリのテスト自動化
 
Testterチーム2011年まとめ
Testterチーム2011年まとめTestterチーム2011年まとめ
Testterチーム2011年まとめ
 
Testter単体テストのビアレビュー報告
Testter単体テストのビアレビュー報告Testter単体テストのビアレビュー報告
Testter単体テストのビアレビュー報告
 
山吹色の茸疾走におけるテストの実例
山吹色の茸疾走におけるテストの実例山吹色の茸疾走におけるテストの実例
山吹色の茸疾走におけるテストの実例
 
Testterを叩け!
Testterを叩け!Testterを叩け!
Testterを叩け!
 
Atec mtg7 unittest
Atec mtg7 unittestAtec mtg7 unittest
Atec mtg7 unittest
 

Androidとの同時開発だけどモデルをC++で書けば問題ないよねっ

  • 1. Androidとの同時開発だけど モデルをC++で書けば 問題ないよねっ @nowsprinting 長谷川 孝二 13年2月24日日曜日
  • 2. 自己紹介 仕事 - 主にiOSアプリ開発 ( フリーランス) コミュニティ活動 - Android系 - テスト自動化 2月27日発売 13年2月24日日曜日
  • 3. Android案件が取れない件 お客様 「長谷川さんにはiOS版を  お願いします。  Android版はA社に。」 13年2月24日日曜日
  • 5. Android iOS View Controller Android SDK Cocoa Touch Java Objective-C Model 13年2月24日日曜日
  • 6. Android iOS View Android SDK Cocoa Touch Controller Java Objective-C JNI Model C++ STL 13年2月24日日曜日
  • 8. メリット • C++/STLで書ける! • Modelはワンソース • View, Controllerはそれぞれのプラット フォームネイティブ(統一的UI) 13年2月24日日曜日
  • 11. Android iOS View Android SDK Cocoa Touch Controller Java Objective-C JNI メソッドコール頻度が増えると 性能が出ない(と言われているが、 Model そんなに遅くない感触。でも早くもない) C++ STL 13年2月24日日曜日
  • 13. C++Modelのテスト • OCUnit • GHUnit • Google Mock等(C++用) • Xcodeのデバッガ 13年2月24日日曜日
  • 14. SDKの代用 • NSURLConnection • libcurl + OpenSSLなど • NSJSONSerialization • picojsonなど • NSUserDefaults • Documents/下のファイルに直接書く 13年2月24日日曜日
  • 15. JNIラッパーの生成 • SWIG http://www.swig.org/ • 簡単な定義を書くだけでラッパーと Java側のソースまで生成してくれる • STLも使える • ノウハウはblogにでも書きます 13年2月24日日曜日
  • 16. 定義ファイルの例 ターゲットから使用する クラス ターゲット コレクションなど型の定義 (必要に応じて) 13年2月24日日曜日
  • 18. 導入(提案)実績 お客様 「それはすばらしい!  ぜひ導入してください。  で、  Androidの表示層はC社に」 13年2月24日日曜日
  • 19. ご清聴ありがとう ございました 13年2月24日日曜日