iPhone/Android アプリを
まとめて省エネ開発する技術
      開発部 柴田 一帆
自己紹介

• 柴田   一帆(@vaccho)

• 2008年新卒入社


• 大学院卒、情報工学専攻


• サイボウズ     Live という Web サービスの開発を担当

 • iPhone/Android   アプリの開発も担当
サイボウズLiveとは
iPhone/Android アプリ
• Android: 約   15,000 ユーザ

• iPhone: 約   25,000 ユーザ

 • 仕事効率化カテゴリで1位!
今日はこれの開発で利用した技術
    の話をします
iPhone と Android は五分五分




  http://www.m2ri.jp/newsreleases/main.php?
           id=010120110510500
iPhone と Android で
       同じアプリを提供したい

• OS   は違っても同じように使われているスマートフォン

• iPhone   アプリの33%は Android アプリでも入手可能

 • http://japan.internet.com/webtech/20120605/2.html
それぞれのアプリの作り方

•   iPhone

    •   Apple の用意した SDK を利用、言語は Objective-C

    •   IDE は Xcode

•   Android

    •   Google の用意した SDK を利用、言語は Java

    •   IDE は Eclipse
つまりバラバラ
それぞれの環境で同じものを
2つ作らなければいけない
そんなのはイヤだ


• 学習コストがかかる


• 開発コストがかかる


• メンテナンスコストがかかる
そこで、まとめて楽するための
          技術を紹介します



• タイトル「iPhone/Android   アプリをまとめて省エネ開発
 する技術」
まとめて開発するには?

•   実現してくれるツールが世の中にはある

    •   まとめて開発したい人は多い

•   大きくわけて2つの方法

    •   画面の作成にネイティブ SDK を使わない方法

    •   ネイティブ SDK の呼び出しをよろしくやってくれる方法
ネイティブ SDK を使わない

• 代表的なツールは        PhoneGap

• iPhone   と Android で Web ページの表示は同じことに着
 目

• Web   ページの作成と同じように画面を作る

 • HTML、CSS、JavaScript
ネイティブ SDK の呼び出しを
         よろしくやってくれる
• 代表的なツールは Titanium


• JavaScript   で実装すると内部で SDK を呼び出してくれる

• JavaScript   で画面を作成するコードを書いたら、iPhone/
 Android それぞれにあわせて SDK を呼び出して実現し
 てくれる
どっちがいいの?

•   UI が自然になるのは Titanium

    •   HTML5 や jQuery Mobile などの進化もすごいのでそのうち差
        はなくなるかもだけど

•   学習コストが低いのは PhoneGap

    •   Web アプリ開発の知識をフル活用できるので

•   決着はついていないが、サイボウズLiveでは Titanium を採用
サイボウズLiveでの実例
 iPhone   Android
サイボウズLiveでの実例
 iPhone   Android
サイボウズLiveでの実例

• Titanium   によって同じ画面が作れている

• 一部は自動的にプラットフォームにあわせてくれてる


 • 「戻る」方法や一覧の見出し


• 一部はコードによって表示を変えている


 • iPhone    はツールバー、Android はメニューにボタン
Titanium は良いところばかり?
そんなことはない
Titanium でツライところ

•   バッドノウハウが多い、基本的に試行錯誤

    •   隠    されて便利な分、手が届かない

    •   ドキュメントもあまり整っていない

        •   改善されつつはある

    •   「Titanium で開発することは Titanium をハックすること」
一例を

• XML   をパースした結果から情報を抽出するところで落
 ちまくった

• どうもタグ名で検索するのを繰り返すと落ちる


• どうにもならないのでタグを一つずつ見ていく方法に

 変えたら改善
Titanium でツラくなったら
   どうしてるの?
助け合ってます
Titanium はコミュニティが盛ん

• Titanium   meet up とい
 う勉強会

• イベントもよくある


• #TitaniumJP   でのやり
 とりなど
                          http://www.flickr.com/photos/68426744@N02/6287482792
まとめ
•   iPhone/Android アプリをまとめて開発する技術として Titanium を紹
    介しました

•   サイボウズではこのように、目的に対して最近の技術トレンドから
    手段を選んで採用することができます

    •   また、そういうところから任せてもらえます

•   技術的な面白みも感じつつ、多くの人に使っていただける製品の開
    発ができます

•   ぜひ、一緒に働きましょう!
ありがとうございました!
Titanium は信用できる?
•   Apache License 2.0 で公開されたオープンソース

•   Titanium を開発している会社が   ける仕組み

    •   有料メンバーになるとサポートなどが受けられる

    •   有料のトレーニングなども用意

•   実績

    •   300,000人の利用者、35,000 のアプリがリリース

•   もちろんリスクはある
Titanium が対応していない
             処理がある場合は?
• Titanium   モジュール

 • ネイティブ       SDK で開発したものを JS で呼び出せる

• モジュールのマーケットプレイス


 • 有料/無料で公開


 • みんなで Titanium     を強化していく仕組み

iPhone/Android アプリをまとめて省エネ開発する技術