これからのNOTESモバイル
アプリはこう作れ
後悔しない技術の選択とその開発方法


               チームスタジオジャパン株式会社
                      Technical Director


               加藤満 (mitsuru_katoh@teamstudio.com)
                                     @katoman
前置き
• 「モバイルアプリケーション」はスマートフォン、タブ
レット上で動作する業務アプリケーションの意味として

• 業務アプリケーションは IBM Notes/Domino のデータ
ベースをもとにしたカスタム「nsf」アプリケーション
 (Traveler、iNotesといったメール/カレンダーのような標準機能のお
 話ではありません)
AGENDA

• 自分にあった最適なモバイルアプリ開発手法を探る


• Teamstudio Unplugged について
モバイルアプリの2つのタイプ
モバイルアプリ開発の3つのタイプ
• モバイルWebアプリケーション
  • HTML + JavaScript + CSS
  • モバイルアプリ用にユーザーインターフェースを整形するフレー
    ムワーク利用

• ハイブリッド(Hybrid)
 • HTML + JavaScript + CSS でコーディング
 • ファクトリーツールを使って、ネイティブアプリを生成


• ネイティブ(Native)
  • ハイブリッドとネイティブの違いは開発方法(言語)とそれぞれ
    のデバイスへの最適化具合
  • 例)ちょっと前まで「Facebook」アプリはハイブリッド型で作成され
   ていました。
開発手法選択の際の比較検討要因
• 開発技術の習得難易度
• パフォーマンス
• アプリ配布の容易性
• 開発ライフサイクル
• 開発時間(コスト)
• デバイス機能へのアクセス
• オフライン機能
モバイルWeb   ハイブリッド   ネイティブ
開発技術の習得                              容易      容易      難しい



• モバイルWeb
  • Domino を Webサーバーとした Web アプリケーション
   • UIコンポーネントはCSSやJavaScriptを使用
   • XPages - Domino Designer 8.5.x/9.0
   • 既知の技術で開発できるという大きなメリット

• ハイブリッド/ネイティブ
  • ハイブリッドの雄としてPhoneGapやTitanium。
   • HTML5+CSS+JavaScript → ネイティブアプリ
 • Objective CやJava言語によるネイティブアプリ作成
 • REST API を使ってドミノにアクセス、情報のやり取り。難しい。
 • 専用の言語や開発環境の習得が必須
モバイルWeb   ハイブリッド   ネイティブ
パフォーマンス            悪い        普通      良い



• モバイルWeb
  • 常にサーバーとトラフィックのラウンドトリップが発生
  • デザイン(HTML、スクリプト、スタイル)とデータの両方を常にやり
    取り


• ハイブリッド/ネイティブ
  • アプリケーションのデザインはネイティブ、既にインストールされ
    ているので残りのデータのやり取り発生。
モバイルWeb   ハイブリッド      ネイティブ
アプリ配布                   容易       難しい        難しい



• モバイルWeb
  • 作成してすぐ公開できる
  • Dominoサーバーへのアクセス、Domino Designer で開発



• ハイブリッド/ネイティブ
  • ストア(Apple/iOSの場合、Enterprise ストアなど)へのアプリ配布
  • Androidの場合は独自で配布の仕組みを
  • お客様のスキルによっては、ストアもSIerがお客様にかわって面倒
    見ないといけない
開発                   モバイルWeb   ハイブリッド      ネイティブ
                        短期間      長期間        長期間
ライフサイクル
• モバイルWeb
  • 作成してすぐテスト、公開できる
  • Dominoサーバーへのアクセス、Domino Designer で開発



• ハイブリッド/ネイティブ
  • テストにせよ煩わしい。
  • 問題が発生してもすぐには解決できない
モバイルWeb   ハイブリッド   ネイティブ
開発時間(コスト)          短く安価     長期で高額    長期で高額



• モバイルWeb
  • モバイル用のフレームワークをマスターすれば(XPagesはもちろん)、
    わずか数日
  • iOS、Androidでも同じアプリが使える



• ハイブリッド/ネイティブ
  • 前出の新たな開発技術の習得にかかる時間/コスト
  • それぞれのデバイス用に作成する必要あり
  • Notes/Domino以外以外でもモバイル分野に本格参入したいのであれ
    ば
デバイス機能への         モバイルWeb   ハイブリッド   ネイティブ
                     難しい     普通      普通
アクセス
• モバイルWeb
  • (ほとんど)できない
  • 写真などのアップロードもダメ



• ハイブリッド/ネイティブ
 • ネイティブアプリであればデバイスの機能にアクセスできるが、
  Dominoアプリのモバイル化でその必要性がある?
モバイルWeb   ハイブリッド     ネイティブ
オフライン機能            なし      可能、でも難しい   可能、でも難しい




• モバイルWeb
  • 最近ではHTML5対応で対応可能と言われている
  • でも実際はキャッシュ程度と考えたほうがよい
  • 基本的に苦労すれど身にならない



• ハイブリッド/ネイティブ
  • アプリに別のデータベースあるいはストレージを持つ
  • デバイス上のデータベースの設計や管理がまた必要
  • スペシャリスト以外には敷居が高い
タイプ別モバイルアプリ比較サマリー
            モバイルWeb   ハイブリッド      ネイティブ

開発技術の習得難      容易        容易         難しい
易度
パフォーマンス       悪い        普通         良い

アプリ配布が容易      容易        難しい        難しい
か?
開発ライフサイク     短期間        長期間        長期間
ル
開発時間(コスト)    短く安価      長期で高額      長期で高額

デバイス機能への     難しい        普通         普通
アクセス
オフライン機能       なし      可能、でも難しい   可能、でも難しい
開発プロジェクトでのその他考慮事項

• 一次的要因
  • デバイスの特別な機能(カメラ、フラッシュ、アクセロメーター
    etc...)を使う必要があるか?


• 二次的要因
  • 予算
  • すべてのモバイルデバイスをターゲットにする必要があるか?
  • 電波状況によってデバイスが使えない場合の機会損失は?
  • スピードやパフォーマンスはどれぐらい重要な要素か?
  • 自分が扱えるプログラミング言語は?
アプリの利用形態の側面から考えてみよう
導入事例から学ぶ典型的な利用形態

利用形態     ユーザー   端末           技術
BYOD     一般     スマートフォン      Webモバイル + セキュ
                             リティ
会社支給     幹部     スマートフォン      Webモバイル + セキュ
                             リティ + MDM
会社支給     特別な業   iPad、タブレット   データ同期 + MDM
         務で使用
Responsive Web Design

• PC、スマートフォン、タブレットそれぞれの画面サイズ
に合うレイアウトを自動生成
 • Write once, run anywhere
 • 2013年はResponsive Web Design 元年
 • 有名なフレームワークはすでに対応 jQuery Mobile、Twitter
   Bootstrapなど
 • 対応している身近なサイトの例
   • http://view.jquerymobile.com/demos/
   • http://mashable.com/
   • http://ja.collaborationtoday.info/
結論
Notes/Domino アプリケーションのモバイル化はどうした
らいい?
• まずは XPages による Web モバイルアプリケーションを
  作成
• Responsive Web Design 対応のフレームワークを使う


なぜ?
• 一言で言えば、「後でつぶしが効く」


いつ作るか?
• 「今でしょ!」
ところでIBMモバイル戦略と言えば...
• IBM Worklight
   • Domino + Worklight はプラン中


 • 2012年5月 Ed Brill のプレゼンでは...
   • http://www.slideshare.net/edbrill/ibm-mobile-strategy-for-social-business-may-2012

   • “IBM Lotus Domino and IBM Worklight used together will allow you to
     reuse parts of your Domino XPages mobile application investment with
     the on-device experience”


 • 現時点では Domino Designer/XPages との統合の具体的な話は聞
   こえてこない。
2013
IBM Collaboration
Solutions
for Mobile Device
Award

WINNER 受賞
タイプ別モバイルアプリ比較
            モバイルWeb   ハイブリッド/   Teamstudio
                       ネイティブ    Unplugged
開発技術の習得難       ○         ×
易度
パフォーマンス        ×         ○
アプリ配布が容易       ○         ×
か?
開発ライフサイク       ○         ×
ル
開発時間(コスト)      ○         ×
デバイス機能への       ×         ○
アクセス
オフライン機能        ×         ○
Teamstudio Unpluggedは
各ストアからダウンロード可能
Teamstudio Unpluggedの3つの特徴

• オフライン機能


• XPagesアプリケーション


• 簡単な導入
オフライン機能
• ノーツデータ、XPages設計、リソースファイルを端末に
  同期
• ユーザー識別(ノーツアカウントとHTTPパスワード)はデ
  バイス上に
• 「まるで、ノーツクライアントの複製のよう!!!」
XPagesアプリケーション
• 余分な投資が不要



• 自由なアプリケーションUI



• フレームワーク利用で開発工数省力化
XPagesアプリケーション
• 余分な投資が不要
  • Domino Designerで開発、他の余分なSDKは一切必要なし



• 自由なアプリケーションUI


• フレームワーク利用で開発工数省力化
XPagesアプリケーション
• 余分な投資が不要



• 自由なアプリケーションUI
  • フィールドマッピング型の簡易ソリューションではないのでフ
    レームワーク利用でこんな特殊なことも実現可能


• フレームワーク利用で開発工数省力化
XPagesアプリケーション
• 余分な投資が不要



• 自由なアプリケーションUI



• フレームワーク利用で開発工数省力化
  • jQuery MobileなどJavaScript+CSSで構成されるフレームワーク
簡単な導入
システム構成
• Domino 8.5.1以降
• Domino Designer 8.5.1以降
• 対応プラットフォーム
• Dominoサーバーに2つのデータベース(設定とログ)
DEMO
ご覧いただいたとおり...
• Unplugged アプリケーションは XPages で作成
  • XPages でWeb モバイルアプリがあれば、簡単に「Unplugged
    化」


• オフライン機能のメリット
  • 機敏な動作
  • ユーザー識別の保持


• 簡単な導入
  • 設定データベースで使用ユーザー/アプリケーション配布の管理
参考URL
• Teamstudio Unplugged 公式サイト
  • http://unplugged.teamstudio.com


• YouTube TSUnpluggedJapan チャンネル
  • http://www.youtube.com/user/TSUnpluggedJapan


• Unplugged かんたんスタートガイド
  • https://teamstudio.box.com/unpluggedstartguidejp

• notes/domino liaison
  • http://notesdominoliaison.blogspot.jp


• OpenNTF Unplugged XPages Mobile Controls
  • http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name
    =Unplugged%20XPages%20Mobile%20Controls

これからのNOTESモバイルアプリはこう作れ

  • 1.
    これからのNOTESモバイル アプリはこう作れ 後悔しない技術の選択とその開発方法 チームスタジオジャパン株式会社 Technical Director 加藤満 (mitsuru_katoh@teamstudio.com) @katoman
  • 2.
    前置き • 「モバイルアプリケーション」はスマートフォン、タブ レット上で動作する業務アプリケーションの意味として • 業務アプリケーションはIBM Notes/Domino のデータ ベースをもとにしたカスタム「nsf」アプリケーション (Traveler、iNotesといったメール/カレンダーのような標準機能のお 話ではありません)
  • 3.
  • 4.
  • 5.
    モバイルアプリ開発の3つのタイプ • モバイルWebアプリケーション • HTML + JavaScript + CSS • モバイルアプリ用にユーザーインターフェースを整形するフレー ムワーク利用 • ハイブリッド(Hybrid) • HTML + JavaScript + CSS でコーディング • ファクトリーツールを使って、ネイティブアプリを生成 • ネイティブ(Native) • ハイブリッドとネイティブの違いは開発方法(言語)とそれぞれ のデバイスへの最適化具合 • 例)ちょっと前まで「Facebook」アプリはハイブリッド型で作成され ていました。
  • 6.
    開発手法選択の際の比較検討要因 • 開発技術の習得難易度 • パフォーマンス •アプリ配布の容易性 • 開発ライフサイクル • 開発時間(コスト) • デバイス機能へのアクセス • オフライン機能
  • 7.
    モバイルWeb ハイブリッド ネイティブ 開発技術の習得 容易 容易 難しい • モバイルWeb • Domino を Webサーバーとした Web アプリケーション • UIコンポーネントはCSSやJavaScriptを使用 • XPages - Domino Designer 8.5.x/9.0 • 既知の技術で開発できるという大きなメリット • ハイブリッド/ネイティブ • ハイブリッドの雄としてPhoneGapやTitanium。 • HTML5+CSS+JavaScript → ネイティブアプリ • Objective CやJava言語によるネイティブアプリ作成 • REST API を使ってドミノにアクセス、情報のやり取り。難しい。 • 専用の言語や開発環境の習得が必須
  • 8.
    モバイルWeb ハイブリッド ネイティブ パフォーマンス 悪い 普通 良い • モバイルWeb • 常にサーバーとトラフィックのラウンドトリップが発生 • デザイン(HTML、スクリプト、スタイル)とデータの両方を常にやり 取り • ハイブリッド/ネイティブ • アプリケーションのデザインはネイティブ、既にインストールされ ているので残りのデータのやり取り発生。
  • 9.
    モバイルWeb ハイブリッド ネイティブ アプリ配布 容易 難しい 難しい • モバイルWeb • 作成してすぐ公開できる • Dominoサーバーへのアクセス、Domino Designer で開発 • ハイブリッド/ネイティブ • ストア(Apple/iOSの場合、Enterprise ストアなど)へのアプリ配布 • Androidの場合は独自で配布の仕組みを • お客様のスキルによっては、ストアもSIerがお客様にかわって面倒 見ないといけない
  • 10.
    開発 モバイルWeb ハイブリッド ネイティブ 短期間 長期間 長期間 ライフサイクル • モバイルWeb • 作成してすぐテスト、公開できる • Dominoサーバーへのアクセス、Domino Designer で開発 • ハイブリッド/ネイティブ • テストにせよ煩わしい。 • 問題が発生してもすぐには解決できない
  • 11.
    モバイルWeb ハイブリッド ネイティブ 開発時間(コスト) 短く安価 長期で高額 長期で高額 • モバイルWeb • モバイル用のフレームワークをマスターすれば(XPagesはもちろん)、 わずか数日 • iOS、Androidでも同じアプリが使える • ハイブリッド/ネイティブ • 前出の新たな開発技術の習得にかかる時間/コスト • それぞれのデバイス用に作成する必要あり • Notes/Domino以外以外でもモバイル分野に本格参入したいのであれ ば
  • 12.
    デバイス機能への モバイルWeb ハイブリッド ネイティブ 難しい 普通 普通 アクセス • モバイルWeb • (ほとんど)できない • 写真などのアップロードもダメ • ハイブリッド/ネイティブ • ネイティブアプリであればデバイスの機能にアクセスできるが、 Dominoアプリのモバイル化でその必要性がある?
  • 13.
    モバイルWeb ハイブリッド ネイティブ オフライン機能 なし 可能、でも難しい 可能、でも難しい • モバイルWeb • 最近ではHTML5対応で対応可能と言われている • でも実際はキャッシュ程度と考えたほうがよい • 基本的に苦労すれど身にならない • ハイブリッド/ネイティブ • アプリに別のデータベースあるいはストレージを持つ • デバイス上のデータベースの設計や管理がまた必要 • スペシャリスト以外には敷居が高い
  • 14.
    タイプ別モバイルアプリ比較サマリー モバイルWeb ハイブリッド ネイティブ 開発技術の習得難 容易 容易 難しい 易度 パフォーマンス 悪い 普通 良い アプリ配布が容易 容易 難しい 難しい か? 開発ライフサイク 短期間 長期間 長期間 ル 開発時間(コスト) 短く安価 長期で高額 長期で高額 デバイス機能への 難しい 普通 普通 アクセス オフライン機能 なし 可能、でも難しい 可能、でも難しい
  • 15.
    開発プロジェクトでのその他考慮事項 • 一次的要因 • デバイスの特別な機能(カメラ、フラッシュ、アクセロメーター etc...)を使う必要があるか? • 二次的要因 • 予算 • すべてのモバイルデバイスをターゲットにする必要があるか? • 電波状況によってデバイスが使えない場合の機会損失は? • スピードやパフォーマンスはどれぐらい重要な要素か? • 自分が扱えるプログラミング言語は?
  • 16.
    アプリの利用形態の側面から考えてみよう 導入事例から学ぶ典型的な利用形態 利用形態 ユーザー 端末 技術 BYOD 一般 スマートフォン Webモバイル + セキュ リティ 会社支給 幹部 スマートフォン Webモバイル + セキュ リティ + MDM 会社支給 特別な業 iPad、タブレット データ同期 + MDM 務で使用
  • 17.
    Responsive Web Design •PC、スマートフォン、タブレットそれぞれの画面サイズ に合うレイアウトを自動生成 • Write once, run anywhere • 2013年はResponsive Web Design 元年 • 有名なフレームワークはすでに対応 jQuery Mobile、Twitter Bootstrapなど • 対応している身近なサイトの例 • http://view.jquerymobile.com/demos/ • http://mashable.com/ • http://ja.collaborationtoday.info/
  • 18.
    結論 Notes/Domino アプリケーションのモバイル化はどうした らいい? • まずはXPages による Web モバイルアプリケーションを 作成 • Responsive Web Design 対応のフレームワークを使う なぜ? • 一言で言えば、「後でつぶしが効く」 いつ作るか? • 「今でしょ!」
  • 19.
    ところでIBMモバイル戦略と言えば... • IBM Worklight • Domino + Worklight はプラン中 • 2012年5月 Ed Brill のプレゼンでは... • http://www.slideshare.net/edbrill/ibm-mobile-strategy-for-social-business-may-2012 • “IBM Lotus Domino and IBM Worklight used together will allow you to reuse parts of your Domino XPages mobile application investment with the on-device experience” • 現時点では Domino Designer/XPages との統合の具体的な話は聞 こえてこない。
  • 21.
  • 22.
    タイプ別モバイルアプリ比較 モバイルWeb ハイブリッド/ Teamstudio ネイティブ Unplugged 開発技術の習得難 ○ × 易度 パフォーマンス × ○ アプリ配布が容易 ○ × か? 開発ライフサイク ○ × ル 開発時間(コスト) ○ × デバイス機能への × ○ アクセス オフライン機能 × ○
  • 23.
  • 24.
    Teamstudio Unpluggedの3つの特徴 • オフライン機能 •XPagesアプリケーション • 簡単な導入
  • 25.
    オフライン機能 • ノーツデータ、XPages設計、リソースファイルを端末に 同期 • ユーザー識別(ノーツアカウントとHTTPパスワード)はデ バイス上に • 「まるで、ノーツクライアントの複製のよう!!!」
  • 26.
  • 27.
    XPagesアプリケーション • 余分な投資が不要 • Domino Designerで開発、他の余分なSDKは一切必要なし • 自由なアプリケーションUI • フレームワーク利用で開発工数省力化
  • 29.
    XPagesアプリケーション • 余分な投資が不要 • 自由なアプリケーションUI • フィールドマッピング型の簡易ソリューションではないのでフ レームワーク利用でこんな特殊なことも実現可能 • フレームワーク利用で開発工数省力化
  • 31.
    XPagesアプリケーション • 余分な投資が不要 • 自由なアプリケーションUI •フレームワーク利用で開発工数省力化 • jQuery MobileなどJavaScript+CSSで構成されるフレームワーク
  • 33.
    簡単な導入 システム構成 • Domino 8.5.1以降 •Domino Designer 8.5.1以降 • 対応プラットフォーム • Dominoサーバーに2つのデータベース(設定とログ)
  • 34.
  • 35.
    ご覧いただいたとおり... • Unplugged アプリケーションはXPages で作成 • XPages でWeb モバイルアプリがあれば、簡単に「Unplugged 化」 • オフライン機能のメリット • 機敏な動作 • ユーザー識別の保持 • 簡単な導入 • 設定データベースで使用ユーザー/アプリケーション配布の管理
  • 36.
    参考URL • Teamstudio Unplugged公式サイト • http://unplugged.teamstudio.com • YouTube TSUnpluggedJapan チャンネル • http://www.youtube.com/user/TSUnpluggedJapan • Unplugged かんたんスタートガイド • https://teamstudio.box.com/unpluggedstartguidejp • notes/domino liaison • http://notesdominoliaison.blogspot.jp • OpenNTF Unplugged XPages Mobile Controls • http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name =Unplugged%20XPages%20Mobile%20Controls