企業のモバイル・ユーザーたちのデータ・アクセスおよびデータ共有に対するニーズは、従来のコンテンツ管理システムとファイルシステムでは満たされていません。幸いなことに、社内の小規模な設計・開発チームでも、再利用可能な技術を活用した効率的な開発プロセスによって、マルチデバイス対応のコンテンツ・アクセス・ソリューションを迅速に実装することは十分可能です。チームが社内ソリューションのパイロットを迅速に導入した例を紹介します。このソリューションは、社内で認可されたすべてのプラットフォーム間で簡単かつ柔軟にファイルを共有できるようにして、ユーザーの生産性を向上させます。シニア・テクニカル・スタッフ・メンバーです。モバイル・ソリューション、組み込みシステム、ゲーム・システム、仮想世界、オペレーティング・システムを担当しています。分野のテクニカル・チーム・リーダーを務めています。ソフトウェア・エンジニアとして働いています。モバイル・イノベーションに取り組んでいます。彼はトリニティー・カレッジ・ダブリンでコンピューター・サイエンスを学びました。彼が主に関心を持っている分野は、スケーラブル・ソフトウェア・アーキテクチャー、モバイル開発、および出版経験もあるコンピューター・ミュージックです。勤務するソフトウェア・エンジニアです。チームで働いていました。セルビアのベオグラード大学でコンピューター・サイエンスおよびエンジニアリングの修士号と学士号を取得しました。開発、そして関数型プログラミング言語に強い関心を持っています。従業員の生産性およびセキュリティーを向上させるための社内ソリューションを開発しています。PC、携帯電話、タブレットなどでファイルを共有するのは困難でした。モバイル機器から従来のコンテンツ管理システムや共有ファイルシステムへアクセスするのは、制限が多くて面倒でした。プラグインで完全に補わない限り、特定のファイルは転送してもレンダリングされないか、機能しません。デスクトップ機器とモバイル機器との間でファイルを移植するのも簡単ではありませんでした。内部のコンテンツにアクセスするための移植可能なソリューションを提供しなければなりませんでした。そこでチームが決定したのは、全データにアクセスする窓口としての役割を果たすとともに、転送可能なデータの小型キャッシュにもなるパイロット・ソリューションを開発することです。転送可能なデータは、ユーザーが各種のプラットフォームでより快適にコンテンツを使えるように、互換性のあるフォーマットに変換します。いう名前を付けました。プラットフォームでの使用可能性を示すとともに概念実証を行わなければなりませんでした。ヶ月後には、ネイティブ版のパイロット・ソリューションが機能することが必要でした。この記事で説明する、チームがこのパイロット・ソリューションに適用した迅速な開発の概念の多くは、モバイル開発の分野でよく知られているものです。チームがこれらの概念を組み合わせて、マルチデバイス対応のエンド・ツー・エンドの社内ソリューションを開発した方法を知れば、皆さんが開発する次のモバイル・パイロット・ソリューションやモバイル・プロジェクトにも、いかに簡単に同じ方法を適用できるかがわかるはずです。迅速な開発によるパイロット・ソリューションの計画革新技術を用いたパイロット・ソリューションの開発は、通常は繰り返しのプロセスです。使用可能なソリューションを迅速に開発し、そのソリューションを身近な同僚や初期導入者と共有します。その後、ユーザー・ベースの拡大にあわせて機能を拡張し、コメントや提案を参考にして方向を修正していきます。これは、新しいソリューションを探求する場合の一般的な手順です。急速に進化するモバイル分野でパイロット・ソリューションを成功させるには、これとはまったく異なる開発手法が必要でした。私たちは、チームの助けになる可能性がある数々の再利用可能な技術を詳しく調べました。社内ツールの組み合わせです。この組み合わせは、迅速な開発、クロスプラットフォーム・サポート、そして最先端機能の基準を満たします。フレームワークを採用することに決めました。(それぞれの技術については、「参考文献」のリンクを参照)。フォーマットの変換を予定しているファイルの小型キャッシュは、グループ化する必要があったため、ファイルシステムではなく、単純なデータベースを使用することにしました。利用した単純で素早い動作をするビューでドキュメントの保管をサポートします。相性が良いため、円滑に作業を進めることができました。使用して管理しました。フロントエンドに配置することで、制御とロード・バランシングが追加でもたらされました。繰り返しますが、このパイロット・ソリューションで目的としたのは、ソリューションの実現可能性を探るとともに、ユーザーの要件と使用パターンを理解することです。再利用する可能性のある主要なコンポーネント、概念、設計は、本番用の準備が整った時点で簡単に他のプラットフォームに移すことができます。プロジェクトから取得するモバイル機器の仕様を特定しました。(「参考文献」のリンクを参照)。このツールにより、機器の機能に応じてアプリケーションのコンテンツを最適に表示する方法を簡単に判別することができました。そのものだけではありません。重要なことに、モバイルとハイテクに精通したユーザーの問題を解決する経験にもなりました。パイロット・ソリューションの初期導入者は臆することなく、チームが特定の問題を解決しているかどうか、彼らのワークフローに適合しているかどうか、あるいは使いやすさや生産性に対する彼らの期待を満たしているかどうかを伝えてくれました。チームがユーザーの生産性とセキュリティーを向上させるというミッションを果たしていない場合には、私たちはソリューションを新たに考案し、新しい角度から問題に取り組みました。概要私たちが開発したソリューションは、ユーザーが自分の端末間でファイルを共有する簡単な方法を提供します。使ってファイルをデスクトップからブラウザーにドラッグ・アンド・ドロップすれば、そのファイルはブラウザーを介してサーバーにアップロードされます。ユーザーは、このサーバーにモバイル機器から接続することができます。よってファイルを表示できるようにしています。ユーザーが簡単にマルチメディア・コンテンツを作成してアップロードできるように、このソリューションではモバイル・カメラと音声機能も利用します。向けにサポートするブラウザーは、ドラッグ・アンド・ドロップ対応のブラウザーのみです。版を作成して、モバイル機器でも簡単に使えるようにします。変換を予定しているファイル・タイプは他にもあります。音声ファイルをテキスト・ファイルに変換するなどです。外観デスクトップ・ブラウザーは、ファイルをアップロードして整理するための便利な手段となります。プレビュー・イメージは、ファイルごとに自動的に生成されます。ユーザーはリスト形式または表形式のビューを選択して、ファイルを視覚的に管理することができます。動的に色分けされたラベルによって、従来のファイルシステム階層の不便さに煩わされることなく、ファイルを整理できるようになっています。ファイルとラベルのフィルター、さらにクイック検索機能も加わって、ファイルを素早く簡単に見つけることができます。アプリケーションスマートフォンとタブレットのブラウザーは、かなり進化しています。使用してリッチ・アプリケーションに対応することができます。適切な組み合わせを選択し、機器にダウンロードできるようになっています。したがって、機器の能力に応じて最適なページが表示されます。アプリケーションのページと非常に似通った表示になるため、シームレスなユーザー・エクスペリエンスが提供されます。ページというよりも、アプリケーションといった感じです。ページのブックマークを呼び出したりすることができます。アプリケーションと同じように見えますが、モバイル機器上で作成されたコンテンツをアップロードする機能が追加されています。ユーザーは、音声や動画を記録したり、写真を撮ったり、ギャラリーから写真を選択したりすることができます。直接アップロードすることができます。コーディング作業に取り掛かる前に、私たちはさまざまな技術について調査しました。使用するツールの選択は、正しい方向へと踏み出すためのプロセスとして慎重に行いました。効率性について互いに教え合うことです。グループが互いに教え合うことによって、問題点や効率的な手法を共有したのです。コマンドが特定のオペレーティング・システム・レベルおよびブラウザー・レベルをサポートしないという決定も行いました。対応のブラウザーに対処することに焦点を絞り、それによって開発プロセスを単純化することができました。その効果は、関連する技術の動向を認識し、ソフトウェアとハードウェア両面での進化を予測できたことです。サポートするようになっていました。対処しようとすることです。することで、コードを単純化できるだけでなく、すべてのモバイル・プラットフォームで統一されたコードを使用することができます。それぞれのプラットフォームに対応するカスタム・コードの行を加えるごとに、信頼性に対する脅威と複雑さが増してきます。処理するというモデルに従いました。作成することができます。モジュールを作成しました。モジュールを動的にロードします。バージョンだけをカスタマイズするだけで済みます。アプリケーションです。能力のおかげで、それぞれの画面サイズに適したルック・アンド・フィールになっています。モジュールを記載します。使用することで効率性を高める私たちはチームを増員し、ほとんどのモバイル・プラットフォームに対応するカスタム・アプリケーションの開発を専門とするエキスパートを迎えました。想定していたことから、通常とは異なる手法を採りました。ラップしてネイティブ・アプリケーションに組み込むことができました。ようなツールは、概念においては単純です。技術を使って作成します。そのアプリケーションをネイティブ・アプリケーションとしてパッケージ化します。呼び出すことでアクセスできるようになります。JavaScriptコードはどの機器でも同じなので、この場合も、複数のプラットフォームに単一のコード・ベースで対処するという目標の達成を確固たるものにします。関数だけを使って機器に画像を取り込む方法を示します。ツールを使用することには、欠点も伴います。ネイティブ・コードで作成されたアプリケーションよりも、明らかに効率性と速度に劣ることです。なかには、ネイティブ・アプリケーションが応答性に優れていなければならないものもあります。いったツールの登場によって状況は改善されてきてはいますが、デバッグおよびテスト用のツールはまだ初期段階にあります。プラグインを作成するという方法があります。特定のタスクに使用できるプラグインとして、さまざまなプラグインを利用できるようになってきています)。欠点を補って余りあるものです。使用する際には、ネイティブ・アプリケーションを中心にしたアプリケーションの設計をしなければならないという点も考慮する必要があります。アプリケーション開発者にさまざまなモバイル・プラットフォームの知識があれば、ネイティブ・コードを作成せずにネイティブ・アプリケーションの使い勝手を実現することができます。アプリケーションをネイティブ・アプリケーションに変換する作業のスピードは至って十分です。日足らずで、音声/動画/画像の記録機能、ネイティブの通知ウィンドウ、およびハードウェアの「メニュー」ボタン、「戻る」ボタン、「ホーム」ボタンをサポートするネイティブ・アプリケーションに変換しました。再利用することもできました。仕上げたとしても、ユーザーが単純なタスクを行う方法がわからないと苦情を訴える場合もあります。アプリケーションとネイティブ・アプリケーションのすべてに、その変更を反映する必要が出てきます。プラットフォームのすべてにわたってコードを大幅に再利用できなければ、開発者が個々のプラットフォームごとにその変更作業を何度も繰り返さなければなりません。プラットフォームの数に再実行しなければならないテスト・ケースの数を掛けると、小さな変更でも恐ろしいほどの作業量になってしまいます。頼ることで、変更の大部分をより少ない変更量に抑えることができます。処理するという方向に従うことで、コードの変更による影響は少なくなります。よるネイティブ・アプリケーションに盛り込めば、それで作業は完了です。私たちが実際に体験した例を挙げると、それは、「更新」ボタンの組み込みです。同期していない可能性があるデータを再スキャンできるという安心感をユーザーに与えられるように、「更新」ボタンを組み込むことにしました。開発してテストした後、かなり自信を持って、同じコードをすべてのプラットフォームで再利用しました。わずかに調整しただけで、この機能が完成しました。API、言語、フレームワークを使って作成し直さなければならないとしたら、明らかに話は違ってきます。この再利用手法は、バグを修正する場合にも適用されます。同じバグが存在するはずです。アプリケーションを修正できることになります。ネイティブの環境ではバグの原因を正確に特定するのも簡単です。よって、大々的な追加作業を行うことなく、それぞれの機器に適した表示内容にしています。完璧なプロセスに仕上げるための作業私たちは引き続き、このプロセスの開発および効率化を進めることで、すべてのプラットフォームでのサポートを改善するために必要となるカスタマイズ作業を減らせるようにしています。その一例は、機器でのネイティブ・ナビゲーションです。これらのボタンがあります。とではメニュー・ボタンの動作が異なります。コードを別個のウィジェットに分離することで、コードの他の部分にほとんど、あるいはまったく影響を与えることなく、ウィジェットを挿入したり、それぞれのプラットフォームに合わせてウィジェットを変更したりできるようにしました。切り離さないようにすることは重要ですが、コードを簡単に再利用または置換できるようにコンポーネントをモジュール化することも同じく重要です。処理するという方針に従い、特殊な例に対処するために作成するコードの量を最小限にすることに成功しました。私たちの経験から言うと、その答えは、両方です。アプリケーションはモバイル機器でも見事に機能します。現時点では、ネイティブ・アプリケーションのほうがネイティブ・ハードウェアの機能にアクセスしやすくなっています。どちらがより適切なのかだけが、デプロイするにあたっての判断基準となるわけではありません。私たちのソリューションを試験的に使用しているユーザーたちは、ネイティブ・アプリケーションをインストールするのを躊躇しています。その一部は、単にこのソリューションを使用する決心がついていないだけのことです。ユーザーは、ネイティブ・アプリケーションをインストールする前に、試験的に使用することを望みます。ネイティブ・アプリケーションをインストールすると、保守と更新が必要になります。アプリケーションとネイティブ・アプリケーションの両方をサポートしなければなりません。ユーザーは予想以上に多くの機器を使い回すものです。アプリケーションを試します。機能、設計、そしてデプロイにかかる時間との間には、常にトレードオフが伴います。上に戻るまとめこの記事で説明したモデルに従ったソリューションのパイロット開発は、私たちと同じようなチームが、自分たちのアイデアの本質的価値を詳しく調査する上で役立ちます。ついて慎重に調べるところから始まります。ツールを選択した後は、機能と設計のトレードオフを分析することができます。製品化までの速さと機能の完全性との相対的な価値を理解することが、パイロット・ソリューションを成功させるために必要な場合もあります。ユーザーによるフィードバックと導入によって本質的価値が明確になった後は、パイロット・ソリューションを本番サービスまたは製品に変換するプロセスを開始することができます。この記事から学んだ手法を次のプロジェクトに適用して、皆さんのチームと、そして最終的には皆さんが開発するソリューションのユーザーの効率性と生産性を向上させてください。記事で説明したパイロット・ソリューションには、ユーザーからの要望で多くの変更が必要となっていますが、この小規模なチームでもユーザーの変更要求に対応できることに確信を持っています。最初に選択した手法の効率性のおかげで、私たちは設計を効率化し、数週間の周期で繰り返されるプロセスを開発できたからです。フレームワークの詳細を学んでください。用ハイブリッド・モバイル・アプリケーションを素早く作成する方法を学んでください。この評判の高いドキュメント指向のデータベースについて詳しく学んでください。使って機器の機能を簡単に発見する方法を説明しています。ついて、このプロジェクト・ページで詳細を学んでください。アプリケーションを開発する方法を説明しています。ついて学んでください。ゾーンで、モバイル開発者向けの広範なトピックに関するハウツー記事、評価コード、技術的見解を調べてください。最新情報を入手してください。業界の動向についての情報を迅速に把握してください。製品を評価してください。評価の方法としては、製品の試用版をダウンロードすることも、オンラインで製品を試してみることも、クラウド環境で製品を使用することもできます。数時間でサービス指向アーキテクチャーの実装方法を効率的に学ぶことができます。コミュニティーに参加してください。ユーザーとのつながりを持てる他、開発者によるブログ、フォーラム、グループ、ウィキを調べることができます。サイン・イン必須フィールドは(*)で示されます。サインインしたままにしてください。ご使用条件に同意したことになります。サインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。送信されたすべての情報は安全です。サインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。投稿するコンテンツと一緒に表示されます。コミュニティーでユニークである必要があります。プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。必須フィールドは(*)で示されます。ご使用条件に同意したことになります。送信されたすべての情報は安全です。(Brasil)Español。