Upgrade to Pro — share decks privately, control downloads, hide ads and more …

企業向けバックエンドサービスAppPotを 使ったモバイルアプリの高速開発手法 / Enterprise App development methods by AppPot

AppPot
September 07, 2017

企業向けバックエンドサービスAppPotを 使ったモバイルアプリの高速開発手法 / Enterprise App development methods by AppPot

AppPot

September 07, 2017
Tweet

More Decks by AppPot

Other Decks in Technology

Transcript

  1. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. ⾃⼰紹介  े઒྄ฏ ͦ͝͏Γΐ͏΁͍ 2 ࠃ಺ϝʔΧʔ4*෦໳ɺ೔ຊΦϥΫϧͰ ιϑτ΢ΣΞΤϯδχΞɺΞʔΩςΫτͱ ͯ͠اۀγεςϜʹैࣄ  ݱࡏ͸/$%$ͰόοΫΤϯυαʔϏε ʰ"QQ1PUʱͷϓϩμΫτϚωʔδϟɺ Ϣʔβʔاۀ༷޲͚ʹϞόΠϧΞϓϦͷ اըɾ։ൃͷ͝ࢧԉΛ͍ͯ͠·͢ ੡ༀɺݐઃɺখചɺ੡଄ʜʜ 
  2. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. NCデザイン&コンサルティングの特徴 3 NCDC CX/UX デザイン モバイル& クラウド 企業向け サービス •  CX/UXデザインコンサルティング •  ワークショップ •  デザイン制作 •  システムアーキテクチャ
 コンサルティング •  開発プロセスコンサルティング •  システム受託開発 •  モバイルプラットフォーム
 [AppPot] の製造・販売 •  アプリ&クラウド受託開発 •  モバイルテクノロジーコンサルティング 企業向けCX/UXコンサルティングから開発までを⼀貫して提供
  3. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. 今⽇の内容 n  なぜモバイルアプリの開発に内製開発が向いているか? n  内製開発を進めるポイント n  企業向けバックエンドサービスAppPotのご紹介 n  AppPotで進めるアプリの⾼速開発 n  まとめ 4
  4. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. 企業のモバイルアプリ活⽤の成熟度 5 カタログアプリや グループウェアのブラウザ、メールアプリからの利⽤ 導入の初期 これまでオフィスで⾏っていたPC業務を 現場でタブレットで⾏うことによる業務効率化 業務へ本格活用 モバイルならではの 新しい業務や顧客サービス 更に進んだモバイル活用 導入負荷やリスクも小さいもの 社外での入力端末として活用 ・営業日報など出先でのレポート系 ・基幹システムのフロント
  5. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. 新しい領域にモバイルアプリを適⽤するために –––– 変化に適⽤する体制とプロセス 6 新しいビジネス/ アプリの企画 アプリ定義書作成 利⽤者の分析 ペルソナ作成 メンタルモデル作成 ストーリーボード作成 アプリの基本設計/ UIデザイン KPIの測定 アプリ作成/ ユーザーテストと改善 プロトタイプ作成 リリース
  6. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. 新しい領域にモバイルアプリを適⽤するために –––– 変化に適⽤する体制とプロセス 7 新しいビジネス/ アプリの企画 アプリ定義書作成 利⽤者の分析 ペルソナ作成 メンタルモデル作成 ストーリーボード作成 アプリの基本設計/ UIデザイン KPIの測定 アプリ作成/ ユーザーテストと改善 プロトタイプ作成 リリース n  基幹業務と異なり、新しい企画の場合、何が正解か予測するこ とは難しい。答えがでるまで待っていては遅すぎる n  ビジネスのニーズに合わせて企画・実装・測定・フィードバッ クのサイクルを軽量に回す事が重要 最初に決めたものをQCDを守って作りきる請負型プ ロジェクトよりも、業務を理解している少数のエンジ ニアが継続的に改善を続ける内製開発が向いている
  7. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. とはいえ、検討しなければならないこともある 8 カタログアプリや グループウェアのブラウザ、メールアプリからの利⽤ 導入の初期 既存のPC業務をタブレットへ 置き換えることによる業務効率化 業務へ本格活用 モバイルならではの 新しい業務や顧客サービス 更に進んだモバイル活用 第2の壁 •  アプリが増え、管理コスト増 •  アプリ開発の効率化 第1の壁 •  社内のシステムへの接続 •  セキュリティの確保 •  人材の確保
  8. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. 新しい領域にモバイルアプリを適⽤するために 必要な3つのP 9 People •  変化に柔軟に対応できる体制の整備 •  ⾃社主導の開発体制 •  モバイルアプリを開発できるエンジニア Process •  利⽤者経験(UX)の設計 •  アジャイル的な開発プロセス •  運⽤後の計測とフィードバックのプロセス Platform •  軽量に短期間で開発するためのツール •  セキュリティ、ユーザー管理などの標準的 な仕組みの整備 •  バックエンドサービスがキーワード
  9. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. ここに注⼒ バックエンドサービスとは n  サーバー側にもつ認証、データベースアクセス、 Push通知などの機能を提供するサービス •  BaaS(Backend as a Service) n  サーバーやインフラを気にすることなくアプリのアイデアに注⼒できるため、 ベンチャー企業がコンシューマ向けのアプリケーションなどを迅速に提供す るのに良く使⽤されています 10
  10. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. バックエンドサービスで何が変わるのか? サーバープログラムを開発する分のコストが下がる 単純に だけではありません 業務のニーズを理解した⼩さなチームが、 画⾯ドリブンでアジャイルな開発プロセスを 採⽤することで、柔軟で軽量な開発を⾏える ことが⼤きな違いです
  11. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. ⼩さなチームで、効率良く開発 13 モバイルアプリ エンジニア サーバーアプリ エンジニア 画⾯で使う項⽬が決 まったらAPIを開発す るよ 通常のチーム People Process Platform 協調が必要 APIの開発が完了 するまで、結合テ ストはできないな 業務設計者 協調が必要 関係者が多いから、 詳細な設計書がいる な
  12. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. ⼩さなチームで、効率良く開発 14 モバイルアプリ エンジニア サーバーアプリ エンジニア 画⾯で使う項⽬が決 まったらAPIを開発す るよ 画⾯の項⽬が増え そうなんだけ ど・・・ 通常のチーム People Process Platform 協調が必要 えー!! APIの修正が必要だか ら、ちょっと時間下 さい APIの開発が完了 するまで、結合テ ストはできないな 業務設計者 協調が必要 関係者が多いから、 詳細な設計書がいる な
  13. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. ⼩さなチームで、効率良く開発 15 モバイルアプリ エンジニア 変更があっても、 チームが⼩さいの で調整に時間がか からない People Process Platform 要件、UI設計が決 まったところから、 すぐに開発着⼿ 業務設計者 開発時はスピード優 先。 保守に必要な設計書 はちゃんと作ろう バックエンドサービスを使⽤した開発
  14. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. UX駆動とアジャイルな開発プロセス 16 デザイン UI実装 デザイン 共通化設計 UI実装 デザイン UI実装 デザイン リリー ス リリー ス リリー ス スプリント #1 企画 スプリント #2 スプリント #3 スプリント #4 スプリント #5 UI実装 People Process Platform ü  サーバーの開発が無いため、UXの設計、UIデザインが終わったとこ ろから画⾯を開発していける ü  APIの開発・テストを待つ必要がなく、設計したUIをすぐ評価でき る
  15. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. アジャイルプロセスとの相性の良さ 17 スプリント #1 企画 People Process Platform スプリント #2 スプリント #3 スプリント #4 スプリント #5 機能A 開発 機能B 開発 機能C 開発 機能D 開発 機能E 開発 当初の計画
  16. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. アジャイルプロセスとの相性の良さ 18 スプリント #1 企画 People Process Platform スプリント #2 スプリント #3 スプリント #4 スプリント #5 機能A 開発 機能B 開発 機能C 開発 機能D 開発 機能E 開発 ⼀部のユーザーを対象に トライアルテストを実施した ところ、機能Cの使⽤性に 問題があった 機能C’ 開発 機能X 開発 競合に対して弱みとなっていた 機能Xが機能Eよりも重要と ビジネス的に判断
  17. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. アジャイルプロセスとの相性の良さ 19 スプリント #1 企画 People Process Platform スプリント #2 スプリント #3 スプリント #4 スプリント #5 機能A 開発 機能B 開発 機能C 開発 機能D 機能E ⼀部のユーザーを対象に トライアルテストを実施した ところ、機能Cの使⽤性に 問題があった 機能C’ 開発 機能X 競合に対して弱みとなっていた 機能Xが機能Eよりも重要と ビジネス的に判断 ü  このような⽅向転換は⾃社主導のプロジェクトでなければ難しい ü  バックエンドサービスを使っていれば、変更の⽅向転換は 画⾯開発部分のにみ留まるので⽐較的影響は⼩さい バックエンドサービスを使っていない場合、先⾏して開発していたAPIは 捨てなければならないかも知れない ü  このような⽅向転換は⾃社主導のプロジェクトでなければ難しい ü  バックエンドサービスを使っていれば、変更の⽅向転換は 画⾯開発部分のみに留まるので⽐較的影響は⼩さい ü  変更時の調整ポイントが少ないため、コミュニケーションコスト も下がる バックエンドサービスを使っていない場合、先⾏して開発していた APIは捨てなければならないかも知れない
  18. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. 特徴③ 特徴② 企業向けのバックエンドサービス『AppPot』 21 企業のスマートデバイス活⽤を⽀援する モバイルアプリの開発/運⽤プラットフォームです 既存の社内システムと の連携が容易 サーバー開発不要 企業で必要な機能を 実装済み 特徴① ίετ࡟ݮº։ൃظؒ୹ॖ People Process Platform
  19. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. これらの機能が画⾯のロジックから 利⽤可能です Ϣʔβʔ؅ཧ • ログイン/ログアウト • Active Directory/LDAP/Google Appsとの 認証連携 σʔλ؅ཧ • 端末とサーバー間のデータの同期 • トランザクション制御によるデータの信頼性 の確保 • オフライン状態での利⽤と、オンライン時の 再送 ΞϓϦͷ࢖༻ঢ়گͷϞχλϦϯά • 使⽤されている機能やエラー情報の収集、参 照 22 ϓογϡϝοηʔδɺFϝʔϧ • 管理画⾯やAPI経由でアプリからのPush メッセージの送信 • API経由でeメールの送信 ηΩϡϦςΟ • 端末内のデータの暗号化 • SQL Injectionなどのセキュリティ対応済 み ଞγεςϜͱͷ࿈ܞ • 他システムとのWebサービス、ファイル、 データベースとの連携 • 別オプションでERPパッケージ製品との連 携コネクター People Process Platform 各機能を簡単に使⽤するためのiOS / Android / JavaScriptの SDKが提供されています
  20. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. これらの機能が画⾯のロジックから 利⽤可能です Ϣʔβʔ؅ཧ • ログイン/ログアウト • Active Directory/LDAP/Google Appsとの 認証連携 σʔλ؅ཧ • 端末とサーバー間のデータの同期 • トランザクション制御によるデータの信頼性 の確保 • オフライン状態での利⽤と、オンライン時の 再送 ΞϓϦͷ࢖༻ঢ়گͷϞχλϦϯά • 使⽤されている機能やエラー情報の収集、参 照 23 ϓογϡϝοηʔδɺFϝʔϧ • 管理画⾯やAPI経由でアプリからのPush メッセージの送信 • API経由でeメールの送信 ηΩϡϦςΟ • 端末内のデータの暗号化 • SQL Injectionなどのセキュリティ対応済 み ଞγεςϜͱͷ࿈ܞ • 他システムとのWebサービス、ファイル、 データベースとの連携 • 別オプションでERPパッケージ製品との連 携コネクター People Process Platform 各機能を簡単に使⽤するためのiOS / Android / JavaScriptの SDKが提供されています ü  このような⽅向転換は⾃社主導のプロジェクトでなければ難しい ü  バックエンドサービスを使っていれば、変更の⽅向転換は 画⾯開発部分のにみ留まるので⽐較的影響は⼩さい バックエンドサービスを使っていない場合、先⾏して開発していたAPIは 捨てなければならないかも知れない ü  画⾯の要件はさまざまであり、それこそが差別化要因ですが AppPotが適⽤する機能は⾮業務的なものであり、 これらを組み合わせて使うことで、 ほとんどのアプリケーションが開発可能です ü  AppPotの機能はすべてAPIとして提供されており、 さまざまクライアント・アプリケーションから利⽤可能です
  21. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. AppPotの代表的な事例 24 製造業 フィールドサポート ⽀援アプリ 写真なども活⽤し、その場で 記録・報告 製造業 化粧品メーカー 営業⽀援アプリ 営業⽇報のリアルタイム⼊⼒、管 理者とのコニュニケーション強化 製造業 ⼯場における 安全管理アプリ 安全管理のためのチェックリス トと、検査結果の管理 医療/製薬 MR向け営業⽀援アプリ 症例情報をトラッキングし、 ディテイリングを⽀援 医療/製薬 医師向け 医薬品ガイドアプリ 医薬品の説明動画を配信 医療/製薬 ⻭科向け患者コミュニケー ションアプリ アンケートや将来の⼝の中の 状態予想など ⼩売 百貨店商品カタログアプリ 店員からお客さまへの接客⽀援 ⼩売 百貨店 催事・イベント管理アプリ 店員からお客さまへの ご案内⽀援 建設 建設現場 施⼯データ管理アプリ 建設機器のデータ連携、 検査値⼊⼒ その他、業務向けアプリケーション多数 People Process Platform
  22. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. [事例] 製薬 UCBジャパン様 MR向け症例フォローツール UXドリブンな開発プロセスで短期間でアプリ開発 25 MRが症例の情報を聞き取り、ドクターと共同でトラッキ ングするためのアプリを開発。 •  匿名のまま患者さんの情報を記録し、ドクターと ディスカッションするためのコミュニケーション ツール •  MRが⼊⼒した情報をエリアマネージャーや本社ス タッフがタイムリーに確認できる 得られた効果 •  2016年9⽉から使いはじめて、⼊⼒症例数は毎⽉増 えている。MRが全員が使⽤している。 •  アプリから症例を追うことで、MRからの提案によっ て、発作が減ったなど⾃分の活動効果が⽬に⾒える ことや、ドクターからの突然の質問に対して、情報 が引き出せるようになった。
  23. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. [事例] 製薬 UCBジャパン様 MR向け症例フォローツール UXドリブンな開発プロセスで短期間でアプリ開発 26 ①ヒアリング& プロトタイプ作成 ②プロトタイプによる ユーザーテスト ③AppPotを使った アプリ開発 デザイナーが要件定義フェー ズから参画し、 プロトタイプツールで動作す るプロトタイプを作成するこ とで完成イメージを共有 実際の利⽤者によるユー ザーテスト。 作る前にUX、UI上の課題 を潰す。 サーバー側は開発なし。 フロントエンドのエンジニ ア1名で開発 AppPotの特徴としてUI側はスクラッチ開発と同様に⾃由にUX、UIを設計でき、 且つ、フロントエンドのみであるため短期間で開発ができた。
  24. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. AppPotの概要アーキテクチャ 27 クラウド AppPotサーバー Systems 既存システム群 Systems 他システム データ コネク ター         認証・認可 データ管理 プッシュ メッセージ ロギング 管理コンソール データベース、 Webサービス等 アプリ配布 デバイス管理 AppPot DB Client Application SDK Client Application SDK Client Application SDK Client Application AppPot SDK AppPot機能 提供範囲 AppPot機能 提供範囲外 スマートフォン/タブレット システム連 携 システム連携 API MDM 凡例 ユーザー管理 アプリ管理 People Process Platform
  25. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. 他システム連携 28 既存の社内システムとの連携が容易 l  既存システムと簡単に連携するための 各種アダプターが⽤意されています Webサービス 各種データベース JMSなど l  既存システムのデータをアプリから活 ⽤したり、アプリのデータを既存シス テムに連携することで、より広い業務 でスマートデバイスを活⽤できます l  連携は必ずAppPotを介して⾏われ、 個別に開発されないため、シンプルな 構成となります People Process Platform
  26. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. 営業⽀援アプリを例にAppPotの機能をご紹介 29
  27. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. 30 認証API $scope.login = function() { AppPot.LocalAuthenticator.login($scope.userName, $scope.password) .then(function(authInfo) { // 成功した場合の処理 }) .catch(function(error) { // 例外処理 }); };
  28. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. 31 Project, Report, Contact, Customerなどの データ定義は画⾯のソースコードに記述すると バックエンドサーバー内にもデータベースが⾃動⽣成 angular.module("app") .factory("Customer", ["AppPot", function(AppPot) { var customer = AppPot.defineModel("customer", { "customerId": { type: AppPot.DataType.Varchar }, "name": { type: AppPot.DataType.Varchar }, "zip": { type: AppPot.DataType.Varchar }, "address": { type: AppPot.DataType.Varchar }, "phone": { type: AppPot.DataType.Varchar }, "sex": { type: AppPot.DataType.Long } }); return customer; }]);
  29. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. 32 Data APIで データベースと 情報をやりとり (次⾴以降サンプル) File APIで 写真をやりとり 訪問記録を書くと、上司 にPush通知でリアルタイ ムにお知らせ
  30. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. データアクセス(登録処理) これだけの記述で、サーバーのデータベースにアクセスできます。 データ項⽬に変更があっても、前述のデータ定義を変更するだけ。 // 登録処理 // TODO customer変数に画⾯で⼊⼒した値を設定 $scope.customer.insert() .then(function() { // TODO 成功した場合の画⾯処理 }) .catch(function(error) { // TODO エラーの場合の画⾯処理 }); } 33 同様に更新の場合はupdate、削除の場合は removeが用意されています
  31. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. データアクセス(検索処理) SQLライクな検索条件を指定できます。JOINももちろんできます $scope.findList = function() { // TODO 画⾯で指定された検索条件を変数にセット Customer.select() .where("#customer.customerId like ? AND #customer.name like ?", "%" + customerId + "%", "%" + name + "%") .findList() .then(function(result) { // TODO 成功した場合の画⾯処理 }) .catch(function(error) { // TODO エラーの場合の画⾯処理 }); } 34 Idを指定したシンプルな単件取得⽤APIも有り
  32. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. Gateway APIを使⽤した他システムへの接続 35 AppPot 社内DB Monaca HTML5 AppPot SDK 取引先 テーブル Gateway API Login API Flow定義 •  DBへの接続URLの設定 •  テーブルに対するSELECT(GET)、 INSERT(POST)、 UPDATE(PUT)、 DELETE(DELETE)の機能を提供 取引先 ⼀覧
  33. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. Gateway API(GET)を使ったデータ⼀覧取得 n  Gateway APIを呼び出す function getCustomerList() { return AppPot.Gateway.get("customer-db", "CustomerCompany", null, null, null) .then((response) => { console.log(JSON.stringify(response)); // TODO 取得した結果の処理 }); } GatewayAPIの呼び出し AppPot.Gateway.get("customer-db", "CustomerCompany", null, null, null) サービス名 取得するテーブル名 データ取得
  34. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. Gateway API(POST)を使ったデータ更新 function regist() { var requestJson = { "companyName" : document.getElementById('companyName').value, "companyNameKana" : document.getElementById('companyNameKana').value, "zipCode" : document.getElementById('zipCode').value, "address" : document.getElementById('address').value, "phoneNumber" : document.getElementById('phoneNumber').value } AppPot.Gateway.post("customer-db", "CustomerCompany", null, requestJson, null) .then((response) => { console.log(response); alert("登録しました"); return navi.popPage(); }) .then(getCustomerList) } HTMLの各フォームから ⼊⼒されている値を取得し、 GatewayAPIに送信するデータを組み⽴てる Gateway API (POST)を呼び出し
  35. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. どういうところが企業向けなの? 38 企業システムとの連携 ActiveDirectoryや Googleアカウントとの 認証の連携、既存の DBやWebサービスな ど他システム連携など 企業システムで必要な 機能が⽤意されている DBはNoSQLではなく あえてRDBMSを採⽤ 複雑なJoinなど業務シ ステムのデータを扱う のに⼗分な機能がある クラウドでもオンプレ ミスでも企業のポリ シーに合わせて選択可 能 オンプレミスからクラ ウドへの移⾏も可能
  36. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. まとめ 40 モバイルアプリを活用した新しい取り組みには、 企画・実行・計測・フィードバックのサイクルを高速に回すことが重要です。 People •  変化に柔軟に対応できる体制の整備 •  ⾃社主導の開発体制 •  モバイルアプリを開発できるエンジニア Process •  利⽤者経験(UX)の設計 •  アジャイル的な開発プロセス •  運⽤後の計測とフィードバックのプロセス Platform •  軽量に短期間で開発するためのツール •  セキュリティ、ユーザー管理などの標準的 な仕組みの整備 •  バックエンドサービスがキーワード
  37. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. まとめ 41 モバイルアプリを活用した新しい取り組みには、 企画・実行・計測・フィードバックのサイクルを高速に回すことが重要です。 People •  変化に柔軟に対応できる体制の整備 •  ⾃社主導の開発体制 •  モバイルアプリを開発できるエンジニア Process •  利⽤者経験(UX)の設計 •  アジャイル的な開発プロセス •  運⽤後の計測とフィードバックのプロセス Platform •  汎⽤的だが複雑で品質が求められる部分は AppPotが機能を提供します •  AppPotを使って業務やUIにフォーカスし て下さい
  38. Copyright ©2017, NC Design & Consulting Co., Ltd. All rights

    reserved. 無償トライアルのご紹介 http://apppot.jp 42 こちらから お申し込み下さい