(57)【要約】方法は、コンテンツファイルを取得するステップを含んでもよく、コンテンツファイルは、１つ以上の提示ファイルを含み、各提示ファイルは、別個のコンピュータデバイスによって実行時に解釈されたときに、（ａ）機能性および（ｂ）別個のコンピュータデバイス上で実行されるソフトウェアアプリケーションのユーザインターフェースのうちの少なくとも１つを提供するように構成される、それぞれの命令を含む。該方法は、コンテンツファイルを別個のコンピュータデバイスに提供するステップを含んでもよい。コンテンツファイルを提供した後、該方法は、少なくとも第１の提示ファイルの変更を識別するステップと、第１の提示ファイルを別個のコンピュータデバイスに提供するステップとを含んでもよい。
2015510635.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
メモリであって、前記プロセッサによって実行されたときに、前記プロセッサに、
複数のコンテンツファイルを取得することであって、前記コンテンツファイルは、１つ以上の提示ファイルを備え、前記１つ以上の提示ファイルの各提示ファイルは、別個のコンピュータデバイスのプロセッサによって実行時に解釈されたときに、（ａ）機能性と、（ｂ）前記別個のコンピュータデバイス上で実行されるソフトウェアアプリケーションのユーザインターフェースとのうちの少なくとも１つを提供するように構成される、それぞれの命令を備える、ことと、
前記コンテンツファイルを複数の別個のコンピュータデバイスに提供することと、
前記コンテンツファイルを提供した後に、
前記複数の提示ファイルのうちの少なくとも第１の提示ファイルの変更を識別することと、
少なくとも前記第１の提示ファイルを前記複数の別個のコンピュータデバイスのうちの少なくとも第１のコンピュータデバイスに提供することであって、前記第１のコンピュータデバイス上で実行される解釈ソフトウェアは、前記ソフトウェアアプリケーションを再インストールまたは再ロードする必要なく、（ａ）前記機能性と、（ｂ）前記ソフトウェアアプリケーションの前記ユーザインターフェースとのうちの少なくとも１つとして、前記第１の提示ファイルを実行するように構成される、ことと
を行わせる一式の命令を記憶する、メモリと
を備える、システム。
【請求項２】
前記第１のコンピュータデバイスは、有線接続を介して前記システムと通信している、請求項１に記載のシステム。
【請求項３】
前記少なくとも第１の提示ファイルを提供するステップは、前記少なくとも第１の提示ファイルを第２のコンピュータデバイスに提供するステップを含み、前記第２のコンピュータデバイスは、無線接続を介して前記システムと通信している、請求項１または２に記載のシステム。
【請求項４】
前記命令は、実行されたときに、さらに、
前記少なくとも第１の提示ファイルを提供することに先立って、前記プロセッサに、無線ネットワーク上の前記複数のコンピュータデバイスのうちの少なくとも１つのコンピュータデバイスを識別させ、前記少なくとも１つのコンピュータデバイスは、前記第１のコンピュータデバイスを備え、
前記第１の提示ファイルを前記第１のコンピュータデバイスに提供するステップは、前記無線ネットワークにわたって前記第１の提示ファイルを提供するステップを含む、
請求項１から３のいずれかに記載のシステム。
【請求項５】
前記第１の提示ファイルを前記第１のコンピュータデバイスに提供するステップは、前記第１のコンピュータデバイス上で実行されるダウンロードエージェントとのファイル共有接続を開放するステップを含む、請求項４に記載のシステム。
【請求項６】
入力デバイスをさらに備え、前記命令は、実行されたときに、さらに、
前記少なくとも第１の提示ファイルを提供することに先立って、前記プロセッサに、前記入力デバイスを介して、前記複数のコンピュータデバイスのうちの少なくとも１つのコンピュータデバイスの指示を受信させるステップ
を含み、
前記少なくとも１つのコンピュータデバイスは、前記第１のコンピュータデバイスを含み、
前記第１の提示ファイルを提供するステップは、前記指示に応答して、前記第１の提示ファイルを前記少なくとも１つのコンピュータデバイスに提供するステップを含む、
請求項１から５のいずれかに記載のシステム。
【請求項７】
コンピュータデバイスのプロセッサによって、複数のコンテンツファイルを取得するステップであって、前記コンテンツファイルは、１つ以上の提示ファイルを備え、前記１つ以上の提示ファイルの各提示ファイルは、別個のコンピュータデバイスのプロセッサによって実行時に解釈されたときに、（ａ）機能性と、（ｂ）前記別個のコンピュータデバイス上で実行されるソフトウェアアプリケーションのユーザインターフェースのうちの少なくとも１つとを提供するように構成される、それぞれの命令を備える、ステップと、
前記コンテンツファイルを前記別個のコンピュータデバイスに提供するステップと、
前記コンテンツファイルを提供した後に、
前記コンピュータデバイスの前記プロセッサによって、前記複数の提示ファイルのうちの少なくとも第１の提示ファイルの変更を識別するステップと、
少なくとも前記第１の提示ファイルを前記別個のコンピュータデバイスに提供するステップであって、前記別個のコンピュータデバイス上で実行される解釈ソフトウェアは、前記ソフトウェアアプリケーションを別個のコンピュータデバイス上に再インストールまたは再ロードする必要なく、（ａ）前記機能性と、（ｂ）前記ソフトウェアアプリケーションの前記ユーザインターフェースとのうちの少なくとも１つとして、前記第１の提示ファイルを実行するように構成される、ステップと
を含む、方法。
【請求項８】
前記コンテンツファイルはさらに、１つ以上のメディアファイルを備える、請求項７に記載の方法。
【請求項９】
前記それぞれの命令は、実行時に解釈されたとき、ブラウザアプリケーション内で前記ソフトウェアアプリケーションの前記ユーザインターフェースを提供するように構成される、請求項７または８に記載の方法。
【請求項１０】
前記ブラウザアプリケーションは、ユーザに不可視的であるように構成される、請求項９に記載の方法。
【請求項１１】
前記コンテンツファイルを提供するステップは、無線接続を介して前記コンピュータデバイスから前記別個のコンピュータデバイスに前記コンテンツファイルをプッシュ配信するステップを含む、請求項７から１０のいずれかに記載の方法。
【請求項１２】
前記コンテンツファイルを提供するステップは、前記コンテンツファイルを前記別個のコンピュータデバイスにアクセス可能なネットワーク記憶領域にアップロードするステップを含む、請求項７から１１のいずれかに記載の方法。
【請求項１３】
前記コンテンツファイルを提供するステップは、ダウンロードするために、前記コンテンツファイルを含有するインストール実行ファイルを提供するステップを含む、請求項７から１２のいずれかに記載の方法。
【請求項１４】
前記インストール実行ファイルは、前記解釈ソフトウェアを備える、請求項１３に記載の方法。
【請求項１５】
前記インストール実行ファイルは、ウィンドウレスブラウザアプリケーションを備える、求項１３または１４に記載の方法。
【請求項１６】
前記インストール実行ファイルは、更新エージェントを備え、前記更新エージェントは、前記ソフトウェアアプリケーションの実行中に、
１つ以上の付加的なコンテンツファイルを受信することであって、前記１つ以上の付加的なコンテンツファイルのうちの少なくとも１つは、前記コンテンツファイルのうちの第１のコンテンツファイルのための置換ファイルを備える、ことと、
前記第１のコンテンツファイルを前記置換ファイルと置換することと
を行うように構成される、
請求項１３から１５のいずれかに記載の方法。
【請求項１７】
前記更新エージェントはさらに、前記第１のコンテンツファイルを前記置換ファイルと置換した後に、前記ソフトウェアアプリケーションの現在のユーザインターフェースをリフレッシュして前記置換ファイルを利用するように構成される、請求項１６に記載の方法。
【請求項１８】
モバイルデバイスシミュレータ内で前記ソフトウェアアプリケーションのシミュレーションを提示するステップをさらに含み、前記モバイルデバイスシミュレータは、モバイルデバイス上で前記ソフトウェアアプリケーションの機能性をシミュレートするように、前記１つ以上の提示ファイルのうちの少なくとも１つの前記命令を解釈する、請求項７から１７のいずれかに記載の方法。
【請求項１９】
前記モバイルデバイスシミュレータは、１つ以上の制御を備え、前記１つ以上の制御は、前記コンピュータデバイスのユーザによって起動されたときに、入力を前記ソフトウェアアプリケーションに供給するように構成される、請求項１８に記載の方法。
【請求項２０】
前記１つ以上の制御のうちの第１の制御を介して、配向入力を受信するステップと、
前記配向入力に応答して、前記モバイルデバイスシミュレータの表示部分の配向を変更するステップと
をさらに含む、請求項１９に記載の方法。
【請求項２１】
前記１つ以上の制御のうちの第１の制御を介して、デバイスタイプ入力を受信するステップと、
前記デバイスタイプ入力に応答して、前記デバイスシミュレータの外観を修正するステップであって、前記デバイスシミュレータは、モバイルデバイスフレームと、表示領域とを備える、ステップと
をさらに含む、請求項１９または２０に記載の方法。
【請求項２２】
前記デバイスタイプ入力に応答して、前記モバイルデバイスシミュレータによって提示される現在のユーザインターフェースをリフレッシュするステップをさらに含む、請求項２１に記載の方法。
【請求項２３】
前記コンピュータデバイスの前記プロセッサによって、前記複数の提示ファイルのうちの少なくとも第２の提示ファイルの変更を識別するステップと、
前記第２の提示ファイルからの情報を含むように、前記モバイルデバイスシミュレータによって提示される現在のユーザインターフェースをリフレッシュするステップと
をさらに含む、請求項１８から２２のいずれかに記載の方法。
【請求項２４】
前記第１の提示ファイルを前記別個のコンピュータデバイスに提供するステップは、前記コンピュータデバイスのユーザから要求を受信することに応答して、前記第１の提示ファイルを提供するステップを含む、請求項７から２３のいずれかに記載の方法。
【請求項２５】
前記要求は、１つ以上のコンピュータデバイスを識別し、前記１つ以上のコンピュータデバイスは、前記別個のコンピュータデバイスを備える、請求項２４に記載の方法。
【請求項２６】
前記コンテンツファイルを提供することに先立って、前記コンテンツファイルを備えるインストールファイルを準備するステップをさらに含む、請求項７から２５のいずれかに記載の方法。
【請求項２７】
前記インストールファイルを準備するステップは、デジタル署名を前記インストールファイルに追加するステップを含む、請求項２６に記載の方法。
【請求項２８】
バージョン制御されたプロジェクトディレクトリに前記コンテンツファイルを記憶するステップをさらに含む、請求項７から２７のいずれかに記載の方法。
【請求項２９】
少なくとも前記第１の提示ファイルの要求を記憶アドレスにおいて受信するステップをさらに含み、前記第１の提示ファイルを提供するステップは、前記記憶アドレスにおいてダウンロードするために前記第１の提示ファイルを提供するステップを含む、請求項７から２８のいずれかに記載の方法。
【請求項３０】
前記記憶アドレスは、ＵＲＬを備える、請求項２９に記載の方法。
【請求項３１】
前記第１の提示ファイルを提供するステップは、前記第２のコンピュータデバイスとのファイル更新接続を開放するステップを含む、請求項７から３０のいずれかに記載の方法。
【請求項３２】
前記第２のコンピュータデバイスは、以前にインストールされたウィンドウレスブラウザアプリケーション内で前記ソフトウェアアプリケーションを実行する、請求項７から３１のいずれかに記載の方法。
【請求項３３】
プロセッサによって実行されたときに、前記プロセッサに、
複数のコンテンツファイルを取得することであって、前記コンテンツファイルは、１つ以上の提示ファイルを備え、前記１つ以上の提示ファイルの各提示ファイルは、別個のコンピュータデバイスのプロセッサによって実行時に解釈されたときに、（ａ）機能性と、（ｂ）前記別個のコンピュータデバイス上で実行されるソフトウェアアプリケーションのユーザインターフェースとのうちの少なくとも１つを提供するように構成される、それぞれの命令を備える、ことと、
前記コンテンツファイルを前記別個のコンピュータデバイスに提供することと、
前記コンテンツファイルを提供した後に、
前記複数の提示ファイルのうちの少なくとも第１の提示ファイルの変更を識別することと、
少なくとも前記第１の提示ファイルを前記別個のコンピュータデバイスに提供することであって、前記別個のコンピュータデバイス上で実行される解釈ソフトウェアは、前記ソフトウェアアプリケーションを前記別個のコンピュータデバイス上に再インストールまたは再ロードする必要なく、（ａ）前記機能性と、（ｂ）前記ソフトウェアアプリケーションの前記ユーザインターフェースとのうちの少なくとも１つとして、前記第１の提示ファイルを実行するように構成される、ことと
を行わせる一式の命令を記憶する、
非一過性のコンピュータ可読媒体
【請求項３４】
前記複数のコンテンツファイルを取得するステップは、遠隔コンピュータデバイスからネットワークを介して、前記複数のコンテンツファイルのうちの少なくとも一部分を取得するステップを含む、請求項３３に記載のコンピュータ可読媒体。
【請求項３５】
前記命令は、実行されたときに、さらに前記プロセッサに、前記第１の提示ファイルの前記変更を識別することに応答して、前記遠隔コンピュータデバイスにアクセス可能な記憶リポジトリの中で前記第１の提示ファイルの複製を生じさせる、請求項３４に記載のコンピュータ可読媒体。
【請求項３６】
前記第１の提示ファイルを前記別個のコンピュータデバイスに提供するステップは、前記ネットワークを介して前記第１の提示ファイルを前記別個のコンピュータデバイスにアクセス可能にさせるステップを含む、請求項３４または３５に記載のコンピュータ可読媒体。
【請求項３７】
コンピュータデバイスのプロセッサによって、複数のコンテンツファイルを取得するステップであって、前記コンテンツファイルは、１つ以上の提示ファイルを備える、ステップと、
前記コンピュータデバイス上で実行されるコンパニオンアプリケーションによって、前記複数のコンテンツファイルにアクセスするステップと、
前記コンパニオンアプリケーションによって、前記１つ以上の提示ファイルのうちの少なくとも第１の提示ファイルを解釈するステップであって、前記第１の提示ファイルを解釈するステップは、（ａ）機能性と、（ｂ）ソフトウェアアプリケーションのユーザインターフェースとのうちの少なくとも１つをレンダリングするステップを含む、ステップと、
前記コンパニオンアプリケーションによって、１つ以上の置換コンテンツファイルを取得する要求を識別するステップと、
前記要求に応答して、
前記コンパニオンアプリケーションによって、少なくとも第１の置換提示ファイルにアクセスするステップであって、前記第１の置換提示ファイルは、前記第１の提示ファイルに取って代わるように構成される、ステップと、
前記コンパニオンアプリケーションによって、前記第１の置換提示ファイルから解釈される情報を提示するように前記ソフトウェアアプリケーションのユーザインターフェースをリフレッシュするステップと
を含む、方法。
【請求項３８】
前記要求は、前記別個のコンピュータデバイスのタッチスクリーンインターフェース上で行われるジェスチャを含む、請求項３７に記載の方法。
【請求項３９】
前記要求は、前記別個のコンピュータデバイスのスキャン特徴によって、機械可読指標をスキャンすることを通して取得される、スキャンデータを備える、請求項３７または３８に記載の方法。
【請求項４０】
前記スキャンデータは、ネットワークアドレスを備える、請求項３９に記載の方法。
【請求項４１】
前記置換提示ファイルにアクセスするステップは、前記置換提示ファイルを取得するように、ネットワークアドレスにアクセスするステップを含む、請求項３７から４０のいずれかに記載の方法。
【請求項４２】
前記コンパニオンアプリケーションは、ウィンドウレスブラウザを備え、前記ソフトウェアアプリケーションの前記ユーザインターフェースは、前記ウィンドウレスブラウザ内でレンダリングされる、請求項３７から４１のいずれかに記載の方法。
【請求項４３】
プロセッサと、
メモリであって、前記プロセッサによって実行されたときに、前記プロセッサに、
複数のコンテンツファイルを取得するステップであって、前記コンテンツファイルは、１つ以上の提示ファイルを備え、前記コンテンツファイルは、前記コンパニオンアプリケーションによる解釈時に、ソフトウェアアプリケーションを実行する、ステップと、
前記複数のコンテンツファイルにアクセスするステップと、
前記１つ以上の提示ファイルのうちの少なくとも第１の提示ファイルを解釈するステップであって、前記第１の提示ファイルを解釈するステップは、（ａ）機能性と、（ｂ）ソフトウェアアプリケーションのユーザインターフェースとのうちの少なくとも１つをレンダリングするステップを含む、ステップと、
１つ以上の置換コンテンツファイルを取得する要求を識別するステップと、
前記要求に応答して、
少なくとも第１の置換提示ファイルにアクセスするステップであって、前記第１の置換提示ファイルは、前記第１の提示ファイルに取って代わるように構成される、ステップと、
前記第１の置換提示ファイルから解釈される情報を提示するように前記ソフトウェアアプリケーションのユーザインターフェースをリフレッシュするステップと
を含む、コンテンツファイルを解釈するためのコンパニオンアプリケーションを実行させる、一式の命令を記憶するメモリと
を備える、システム。
【請求項４４】
その上に記憶された命令を有する、非一過性のコンピュータ可読媒体であって、前記命令は、プロセッサによって実行されたときに、前記プロセッサに、
複数のコンテンツファイルを取得するステップであって、前記コンテンツファイルは、１つ以上の提示ファイルを備え、前記コンテンツファイルは、前記コンパニオンアプリケーションによる解釈時に、ソフトウェアアプリケーションを実行する、ステップと、
前記複数のコンテンツファイルにアクセスするステップと、
前記１つ以上の提示ファイルのうちの少なくとも第１の提示ファイルを解釈するステップであって、前記第１の提示ファイルを解釈するステップは、（ａ）機能性と、（ｂ）ソフトウェアアプリケーションのユーザインターフェースとのうちの少なくとも１つをレンダリングするステップを含む、ステップと、
前記１つ以上の置換コンテンツファイルを取得する要求を識別するステップと、
前記要求に応答して、
少なくとも第１の置換提示ファイルにアクセスするステップであって、前記第１の置換提示ファイルは、前記第１の提示ファイルに取って代わるように構成される、ステップと、
前記第１の置換提示ファイルから解釈される情報を提示するように前記ソフトウェアアプリケーションのユーザインターフェースをリフレッシュするステップと
を含む、コンテンツファイルを解釈するためのコンパニオンアプリケーションを実行させる、
非一過性のコンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
（関連出願）
本願は、２０１２年１０月２２日に出願され、“Ｅｎｖｉｒｏｎｍｅｎｔ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｃｒｏｓｓ−Ｐｌａｔｆｏｒｍ  Ｄｅｖｅｌｏｐｍｅｎｔ  ｏｆ  Ｓｏｆｔｗａｒｅ  Ａｐｐｌｉｃａｔｉｏｎｓ”と題された、米国出願第１３／６５７，１４９号に対する優先権を主張するものであり、該出願は、２０１２年２月７日に出願され、“Ｅｎｖｉｒｏｎｍｅｎｔ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｄｅｖｅｌｏｐｍｅｎｔ  ｏｆ  Ｓｏｆｔｗａｒｅ  ｆｏｒ  Ｗｉｒｅｌｅｓｓ  Ｃｏｍｐｕｔｉｎｇ  Ｄｅｖｉｃｅｓ”と題された、仮出願第６１／５９５，９４５号と、２０１２年５月３日に出願され、“Ｅｎｖｉｒｏｎｍｅｎｔ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｄｅｖｅｌｏｐｍｅｎｔ  ｏｆ  Ｓｏｆｔｗａｒｅ  ｆｏｒ  Ｗｉｒｅｌｅｓｓ  Ｃｏｍｐｕｔｉｎｇ  Ｄｅｖｉｃｅｓ”と題された、仮出願第６１／６４２，１８７号との両方に対する優先権を主張するものであり、これらのそれぞれは、参照のためにその全内容が本明細書中に援用される。
【０００２】
（背景）
無線コンピュータデバイスは、いくつかの実施例では、携帯電話、スマートフォン、携帯情報端末、ポータブルマルチメディアプレーヤ、およびタブレットコンピュータを含んでもよい。ソフトウェアアプリケーションは、無線コンピュータデバイス上で作動するようにダウンロードされてもよい。いくつかの実装では、ウェブベースのアプリケーションストアが、デバイス特有、プラットフォーム特有、またはオペレーティングシステム特有のソフトウェアアプリケーションダウンロードを無線コンピュータデバイスに提供してもよい。
【０００３】
種々のコンピュータデバイスに配布するためのソフトウェアアプリケーションを開発するとき、様々なプラットフォーム能力およびプログラミング言語能力（例えば、オブジェクティブＣ、Ｊａｖａ（登録商標）、Ｃ＃等）が、開発者に同一のソフトウェアアプリケーションの複数のバージョンを生成させ得る。例えば、スマートフォン、タブレットコンピュータ、およびハンドヘルドゲームデバイス等の種々の無線デバイスに配布するためのソフトウェアアプリケーションを開発するとき、ソフトウェアプログラマは、各デバイス製造業者および／またはオペレーティングシステムプラットフォームのため、ならびに多くの場合、単一のデバイス製造業者および／またはオペレーティングシステムプラットフォームにわたる種々のプラットフォームに、異なるバージョンを生成する必要があり得る。ソフトウェア開発者は、加えて、オンライン（例えば、ブラウザベースの）ソフトウェアアプリケーションとして配布するためのソフトウェアの別のバージョンを開発し得る。
【０００４】
あるコンピュータデバイスプラットフォームについては、ソフトウェア開発キット（ＳＤＫ）または総合開発環境（ＩＤＥ）（例えば、Ａｐｐｌｅ，  Ｉｎｃ．によるｘＣｏｄｅＴＭ、Ｅｃｌｉｐｓｅ  Ｆｏｕｎｄａｔｉｏｎ（Ｏｔｔａｗａ，  Ｃａｎａｄａ）によるＥｃｌｉｐｓｅ、ＭｉｃｒｏｓｏｆｔによるＶｉｓｕａｌ  Ｓｔｕｄｉｏ（登録商標）、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐ．（ＩＢＭ）（Ａｒｍｏｎｋ，  ＮＹ）によるＷｅｂＳｐｈｅｒｅ（登録商標）ソフトウェア用のＲａｔｉｏｎａｌ  Ａｐｐｌｉｃａｔｉｏｎディベロッパ等）が、プラットフォーム互換性ソフトウェアアプリケーションの開発のために製造業者によって提供される。各ソフトウェア開発キットを購入し、各フトウェア開発キットの能力および機能性を習得する際に消費される経費および時間は、複数の開発プラットフォームにわたってソフトウェアアプリケーションを支給する際に開発者にとって不利益になり得る。
【０００５】
複数のコンピュータデバイスプラットフォーム上に展開するために準備され得る、クロスプラットフォームソフトウェアアプリケーションを開発するツールおよび機能性をソフトウェア開発者に提供する、開発環境の必要性がある。
【発明の概要】
【課題を解決するための手段】
【０００６】
いくつかの実装では、本開示は、コンピュータデバイス用のソフトウェアの開発のための環境および方法を対象とし得る。開発プロセスは、いくつかの実装では、２つ以上のコンピュータデバイスプラットフォーム上に展開するためのソフトウェアアプリケーションのクロスプラットフォーム開発を含んでもよい。コンピュータデバイスプラットフォームは、いくつかの実施例では、デバイスオペレーティングシステム（例えば、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ（Ｒｅｄｍｏｎｄ，  ＷＡ）によるＭｉｃｒｏｓｏｆｔ（登録商標）  Ｗｉｎｄｏｗｓ（登録商標）、Ｌｉｎｕｘ（登録商標）、Ａｐｐｌｅ  Ｉｎｃ．（Ｃｕｐｅｒｔｉｎｏ，  ＣＡ）によるＡｐｐｌｅ（登録商標）  ＭａｃＴＭ  ＯＳ、Ｒｅｓｅａｒｃｈ  ｉｎ  Ｍｏｔｉｏｎ  Ｌｉｍｉｔｅｄ（Ｗａｔｅｒｌｏｏ，  Ｏｎｔａｒｉｏ）によるＲｅｓｅａｒｃｈ  ｉｎ  Ｍｏｔｉｏｎ  （ＲＩＭ）  Ｂｌａｃｋｂｅｒｒｙ（登録商標）  ＯＳ等）、オペレーティングシステムバージョン、デバイスアプリケーションフォーマット（例えば、Ａｐｐｌｅ  Ｉｎｃ．によるＡｐｐｌｅ（登録商標）  ｉＯＳＴＭ、Ｇｏｏｇｌｅ  Ｉｎｃ．（Ｍｅｎｌｏ  Ｐａｒｋ，  ＣＡ）によるＡｎｄｒｏｉｄＴＭ、Ｍｉｃｒｏｓｏｆｔ  ＣｏｒｐｏｒａｔｉｏｎによるＷｉｎｄｏｗｓ（登録商標）  Ｐｈｏｎｅ、Ｈｅｗｌｅｔｔ−Ｐａｃｋａｒｄ  Ｃｏｍｐａｎｙ（Ｐａｌｏ  Ａｌｔｏ，  ＣＡ）によるＰａｌｍＴＭ  ｗｅｂＯＳＴＭ、Ａｃｃｅｎｔｕｒｅ  ＰＬＣ（Ｄｕｂｌｉｎ，  Ｉｒｅｌａｎｄ）によるＳｙｍｂｉａｎＴＭ、Ｓａｍｓｕｎｇ  Ｅｌｅｃｔｒｏｎｉｃｓ（Ｓｅｏｕｌ，  Ｓ．  Ｋｏｒｅａ）によるＢａｄａＴＭ等）、およびデバイス周辺構成（例えば、いくつかの実施例では、センサ、スピーカ、マイクロホン、仮想および／または小型キーボード、ボタン、および他の物理制御入力等の入出力デバイス）のうちの１つ以上等の特定の一式の構成パラメータを指し得る。
【０００７】
本明細書で説明されるように、総合クラウド環境（ＩＣＥ）は、いくつかの実装では、２つ以上のコンピュータデバイスプラットフォーム上で作動するようにコンパイルされ得る、クロスプラットフォームソフトウェアアプリケーションを開発するためのインターフェースを提供してもよい。いくつかの実装では、総合クラウド環境は、いくつかの無線コンピュータデバイスプラットフォーム用のソフトウェアアプリケーションを設計、構築、コンパイル、試験、および／または配布するための特徴を含んでもよい。いくつかの実装では、総合クラウド環境は、加えて、ウェブベースのアプリケーション（例えば、ブラウザベースのウェブアプリケーション、Ｆａｃｅｂｏｏｋ，  Ｉｎｃ．（Ｃａｍｂｒｉｄｇｅ，  ＭＡ）によるＦａｃｅｂｏｏｋ（登録商標）と互換性があるアプリケーション、ＭｉｃｒｏｓｏｆｔによるＡＳＰ．ＮＥＴ等のサーバ側ウェブアプリケーション等）用のソフトウェアアプリケーションを設計、構築、コンパイル、試験、および／または配布するための特徴を提供してもよい。総合クラウド環境は、いくつかの実装では、個々のソフトウェア開発キット（ＳＤＫ）または総合開発環境（ＩＤＥ）（例えば、Ａｐｐｌｅ，  Ｉｎｃ．によるｘＣｏｄｅＴＭ、Ｅｃｌｉｐｓｅ  Ｆｏｕｎｄａｔｉｏｎ（Ｏｔｔａｗａ，  Ｃａｎａｄａ）によるＥｃｌｉｐｓｅ  、ＭｉｃｒｏｓｏｆｔによるＶｉｓｕａｌ  Ｓｔｕｄｉｏ（登録商標）、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐ．（ＩＢＭ）（Ａｒｍｏｎｋ，  ＮＹ）によるＷｅｂＳｐｈｅｒｅ（登録商標）ソフトウェア用のＲａｔｉｏｎａｌ  Ａｐｐｌｉｃａｔｉｏｎディベロッパ等）から除去される開発環境、および／または典型的には無線コンピュータデバイスおよびウェブアプリケーションの種々のプラットフォーム用のソフトウェアアプリケーションを開発するために使用されるプログラミング言語（例えば、オブジェクティブＣ、Ｊａｖａ（登録商標）、Ｃ＃等）を開発者に提供してもよい。いくつかの実装では、クロスプラットフォームソフトウェアアプリケーションの開発のための総合クラウド環境は、クロスプラットフォームソフトウェアアプリケーションのプラットフォーム非依存型バージョンを開発してシミュレートするためにローカル開発コンピュータデバイス上にインストールされる、アプリケーションディベロッパインタフェースを伴ってもよい。クロスプラットフォームソフトウェアアプリケーションの開発のための総合クラウド環境は、いくつかの実装では、インターネットブラウザプログラムを通して開発者に提示される、アプリケーションディベロッパインターフェースを伴ってもよい。アプリケーションディベロッパインターフェースは、例えば、特定のコンピュータデバイスプラットフォームに向けたアプリケーション開発のために提供される、種々のソフトウェア開発キットまたは総合開発環境の側面を使用して、プラットフォーム特有のファイルを伴うプラットフォーム非依存型開発ファイルをコンパイルするための総合クラウド環境への通信チャネルを開発者に提供してもよい。
【０００８】
いくつかの実装では、種々のコンピュータデバイス用のクロスプラットフォーム開発は、いくつかの実施例では、ハイパーテキストマークアップ言語（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ；ＨＴＭＬ）等のマークアップ言語、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔ等のインタープリタ型言語、およびカスケーディングスタイルシート（Ｃａｓｃａｄｉｎｇ  Ｓｔｙｌｅ  Ｓｈｅｅｔｓ；ＣＳＳ）等のスタイルシート言語等の非コンパイラ型リソースファイル（例えば、本明細書で使用されるような「提示ファイル」）を通して、開発者がアプリケーションの挙動の多くを定義することを可能にする、抽象化層を通して可能にされ得る。提示ファイルは、例えば、センサ、制御、および入出力機構等のデバイス周辺機器と相互作用するためのコマンドを含んでもよい。いくつかの実装では、提示ファイルはさらに、デバイスまたはプラットフォーム特有のアプリケーションプログラミングインターフェース（ＡＰＩ）等のウェブベースのサービスと相互作用するためのコマンドを含んでもよい。いくつかの実装では、提示ファイルをプラットフォーム特有の無線コンピュータデバイスコマンドに変換するための抽象化層は、Ａｐａｃｈｅ  Ｓｏｆｔｗａｒｅ  Ｆｏｕｎｄａｔｉｏｎ（Ｆｏｒｅｓｔ  Ｈｉｌｌ，  Ｍａｒｙｌａｎｄ）によるＡｐａｃｈｅ  Ｃｏｒｄｏｖａプラットフォームを使用して開発されてもよい。
【０００９】
提示ファイルは、いくつかの実装では、コンピュータデバイス上での実行時に、ユーザとコンピュータデバイスとの間の相互作用を可能にするように解釈されてもよい。いくつかの実装では、提示ファイルは、コンピュータデバイスのブラウザエンジン特徴によって解釈されてもよい。いくつかの実装では、提示ファイルは、コンピュータデバイス上でレンダリングされる「ウィンドウレス」（例えば、ブラウザ境界を画定しない全画面等）ウェブブラウザインターフェースの中で提示するために提供されてもよい。いくつかの実装では、提示ファイルは、提示ファイルに組み込まれたメディアファイルへのリンクを通してアプリケーションの実行中にアクセスされて提示され得る、音声、画像、およびビデオファイル等のいくつかのメディアファイルと組み合わせられてもよい。メディアファイルおよび提示ファイルの組み合わせは、いくつかの実装では、クロスプラットフォームアプリケーションプロジェクトの「コンテンツファイル」と称され得る。
【００１０】
一側面では、本開示は、コンピュータデバイスのプロセッサによって、いくつかのコンテンツファイルを取得するステップを含む、方法を対象とし、コンテンツファイルは、１つ以上の提示ファイルを含み、１つ以上の提示ファイルの各提示ファイルは、別個のコンピュータデバイスのプロセッサによって実行時に解釈されたときに、（ａ）機能性および（ｂ）別個のコンピュータデバイス上で実行されるソフトウェアアプリケーションのユーザインターフェースのうちの少なくとも１つを提供するように構成される、それぞれの命令を含む。本方法はさらに、コンテンツファイルを別個のコンピュータデバイスに提供するステップを含んでもよい。コンテンツファイルを提供した後に、本方法はさらに、コンピュータデバイスのプロセッサによって、いくつかの提示ファイルのうちの少なくとも第１の提示ファイルの変更を識別するステップと、少なくとも第１の提示ファイルを別個のコンピュータデバイスに提供するステップとを含んでもよく、ソフトウェアアプリケーションは、ソフトウェアアプリケーションを別個のコンピュータデバイス上に再インストールまたは再ロードする必要なく、（ａ）機能性および（ｂ）ソフトウェアアプリケーションのユーザインターフェースのうちの少なくとも１つとして、第１の提示ファイルを実行するように構成される。
【００１１】
いくつかの実施形態では、コンテンツファイルはさらに、１つ以上のメディアファイルを含む。それぞれの命令は、実行時に解釈されたとき、ブラウザアプリケーション内でソフトウェアアプリケーションのユーザインターフェースを提供するように構成されてもよい。ブラウザアプリケーションは、ユーザに不可視的であるように構成されてもよい。
【００１２】
いくつかの実施形態では、コンテンツファイルを提供するステップは、無線接続を介してコンピュータデバイスから別個のコンピュータデバイスにコンテンツファイルをプッシュ配信するステップを含んでもよい。コンテンツファイルを提供するステップは、コンテンツファイルを別個のコンピュータデバイスにアクセス可能なネットワーク記憶領域にアップロードするステップを含んでもよい。コンテンツファイルを提供するステップは、ダウンロードするために、コンテンツファイルを含有するインストール実行ファイルを提供するステップを含んでもよい。
【００１３】
インストール実行ファイルは、ウィンドウレスブラウザアプリケーションを含んでもよい。インストール実行ファイルは、更新エージェントを含んでもよく、更新エージェントは、ソフトウェアアプリケーションの実行中に、１つ以上の付加的なコンテンツファイルのうちの少なくとも１つが、コンテンツファイルのうちの第１のコンテンツファイルのための置換ファイルを含む、１つ以上の付加的なコンテンツファイルを受信し、第１のコンテンツファイルを置換ファイルと置換するように構成される。更新エージェントはさらに、第１のコンテンツファイルを置換ファイルと置換した後に、ソフトウェアアプリケーションの現在のユーザインターフェースをリフレッシュして置換ファイルを利用するように構成されてもよい。
【００１４】
いくつかの実施形態では、本方法はさらに、モバイルデバイスシミュレータ内でソフトウェアアプリケーションのシミュレーションを提示するステップを含んでもよく、モバイルデバイスシミュレータは、モバイルデバイス上でソフトウェアアプリケーションの機能性をシミュレートするように、１つ以上の提示ファイルのうちの少なくとも１つの命令を解釈する。モバイルデバイスシミュレータは、１つ以上の制御を含んでもよく、１つ以上の制御は、コンピュータデバイスのユーザによって起動されたときに、入力をソフトウェアアプリケーションに供給するように構成される。本方法はさらに、１つ以上の制御のうちの第１の制御を介して、配向入力を受信するステップと、配向入力に応答して、モバイルデバイスシミュレータの表示部分の配向を変更するステップとを含んでもよい。
【００１５】
本方法はさらに、１つ以上の制御のうちの第１の制御を介して、デバイスタイプ入力を受信するステップと、デバイスタイプ入力に応答して、デバイスシミュレータの外観を修正するステップとを含んでもよく、デバイスシミュレータは、モバイルデバイスフレームと、表示領域とを含む。本方法はさらに、デバイスタイプ入力に応答して、モバイルデバイスシミュレータによって提示される現在のユーザインターフェースをリフレッシュするステップを含んでもよい。本方法はさらに、コンピュータデバイスのプロセッサによって、いくつかの提示ファイルのうちの少なくとも第２の提示ファイルの変更を識別するステップと、第２の提示ファイルからの情報を含むように、モバイルデバイスシミュレータによって提示される現在のユーザインターフェースをリフレッシュするステップとを含んでもよい。
【００１６】
いくつかの実施形態では、第１の提示ファイルを別個のコンピュータデバイスに提供するステップは、コンピュータデバイスのユーザから要求を受信することに応答して、第１の提示ファイルを提供するステップを含む。要求は、１つ以上のコンピュータデバイスを識別してもよく、１つ以上のコンピュータデバイスは、別個のコンピュータデバイスを含む。
【００１７】
本方法はさらに、コンテンツファイルを提供することに先立って、コンテンツファイルを含むインストールファイルを準備するステップを含んでもよい。インストールファイルを準備するステップは、デジタル署名をインストールファイルに追加するステップを含んでもよい。
【００１８】
いくつかの実施形態では、本方法はさらに、バージョン制御されたプロジェクトディレクトリにコンテンツファイルを記憶するステップを含む。本方法はさらに、少なくとも第１の提示ファイルの要求を記憶アドレスにおいて受信するステップを含んでもよく、第１の提示ファイルを提供するステップは、記憶アドレスにおいてダウンロードするために第１の提示ファイルを提供するステップを含む。記憶アドレスは、ＵＲＬを含んでもよい。第１の提示ファイルを提供するステップは、第２のコンピュータデバイスとのファイル更新接続を開放するステップを含んでもよい。第２のコンピュータデバイスは、以前にインストールされたウィンドウレスブラウザアプリケーション内でソフトウェアアプリケーションを実行してもよい。
【００１９】
一側面では、本開示は、コンピュータデバイスのプロセッサによって、いくつかのコンテンツファイルを取得するステップを含む、方法を対象とし、コンテンツファイルは、１つ以上の提示ファイルを含む。本方法は、コンピュータデバイス上で実行されるコンパニオンアプリケーションによって、いくつかのコンテンツファイルにアクセスするステップと、コンパニオンアプリケーションによって、１つ以上の提示ファイルのうちの少なくとも第１の提示ファイルを解釈するステップとを含んでもよく、第１の提示ファイルを解釈するステップは、（ａ）機能性および（ｂ）ソフトウェアアプリケーションのユーザインターフェースのうちの少なくとも１つをレンダリングするステップを含む。本方法は、コンパニオンアプリケーションによって、１つ以上の置換コンテンツファイルを取得する要求を識別するステップと、要求に応答して、コンパニオンアプリケーションによって、少なくとも第１の置換提示ファイルにアクセスするステップとを含んでもよく、第１の置換提示ファイルは、第１の提示ファイルに取って代わるように構成される。本方法は、コンパニオンアプリケーションによって、第１の置換提示ファイルから解釈される情報を提示するようにソフトウェアアプリケーションのユーザインターフェースをリフレッシュするステップを含んでもよい。
【００２０】
いくつかの実施形態では、要求は、別個のコンピュータデバイスのタッチスクリーンインターフェース上で行われるジェスチャを含む。要求は、別個のコンピュータデバイスのスキャン特徴によって、機械可読指標をスキャンすることを通して取得される、スキャンデータを含んでもよい。スキャンデータは、ネットワークアドレスを含んでもよい。置換提示ファイルにアクセスするステップは、置換提示ファイルを取得するように、ネットワークアドレスにアクセスするステップを含んでもよい。コンパニオンアプリケーションは、ウィンドウレスブラウザを含んでもよく、ソフトウェアアプリケーションのユーザインターフェースは、ウィンドウレスブラウザ内でレンダリングされる。
【００２１】
一側面では、本開示は、プロセッサと、プロセッサによって実行されたときにプロセッサにいくつかのコンテンツファイルを取得させる、一式の命令を記憶する、非一過性のコンピュータ可読媒体とを含む、システムを対象とし、コンテンツファイルは、１つ以上の提示ファイルを含み、１つ以上の提示ファイルの各提示ファイルは、別個のコンピュータデバイスのプロセッサによって実行時に解釈されたときに、（ａ）機能性および（ｂ）別個のコンピュータデバイス上で実行されるソフトウェアアプリケーションのユーザインターフェースのうちの少なくとも１つを提供するように構成される、それぞれの命令を含む。命令は、実行されたときに、プロセッサに、コンテンツファイルをいくつかの別個のコンピュータデバイスに提供させ、コンテンツファイルを提供した後に、いくつかの提示ファイルのうちの少なくとも第１の提示ファイルの変更を識別させ、少なくとも第１の提示ファイルをいくつかの別個のコンピュータデバイスのうちの少なくとも第１のコンピュータデバイスに提供させてもよく、ソフトウェアアプリケーションは、ソフトウェアアプリケーションを再インストールまたは再ロードする必要なく、（ａ）機能性および（ｂ）ソフトウェアアプリケーションのユーザインターフェースのうちの少なくとも１つとして、第１の提示ファイルを実行するように構成される。
【００２２】
いくつかの実施形態では、第１のコンピュータデバイスは、有線接続を介して本システムと通信している。少なくとも第１の提示ファイルを提供するステップは、少なくとも第１の提示ファイルを第２のコンピュータデバイスに提供するステップを含んでもよく、第２のコンピュータデバイスは、無線接続を介して本システムと通信している。命令は、実行されたときに、さらに、少なくとも第１の提示ファイルを提供することに先立って、プロセッサに、無線ネットワーク上のいくつかのコンピュータデバイスのうちの少なくとも１つのコンピュータデバイスを識別させてもよく、少なくとも１つのコンピュータデバイスは、第１のコンピュータデバイスを含む。第１の提示ファイルを第１のコンピュータデバイスに提供するステップは、無線ネットワークにわたって第１の提示ファイルを提供するステップを含んでもよい。第１の提示ファイルを第１のコンピュータデバイスに提供するステップは、第１のコンピュータデバイス上で実行されるダウンロードエージェントとのファイル共有接続を開放するステップを含んでもよい。
【００２３】
いくつかの実施形態では、本システムはさらに、入力デバイスを含み、命令は、実行されたときに、さらに、少なくとも第１の提示ファイルを提供することに先立って、プロセッサに、入力デバイスを介して、いくつかののコンピュータデバイスのうちの少なくとも１つのコンピュータデバイスの指示を受信させ、少なくとも１つのコンピュータデバイスは、第１のコンピュータデバイスを含む。第１の提示ファイルを提供するステップは、指示に応答して、第１の提示ファイルを少なくとも１つのコンピュータデバイスに提供するステップを含んでもよい。
【００２４】
一側面では、本開示は、プロセッサによって実行されたときに、プロセッサにいくつかのコンテンツファイルを取得させる、一式の命令を記憶する、非一過性のコンピュータ可読媒体を対象とし、コンテンツファイルは、１つ以上の提示ファイルを含み、１つ以上の提示ファイルの各提示ファイルは、別個のコンピュータデバイスのプロセッサによって実行時に解釈されたときに、（ａ）機能性および（ｂ）別個のコンピュータデバイス上で実行されるソフトウェアアプリケーションのユーザインターフェースのうちの少なくとも１つを提供するように構成される、それぞれの命令を含む。命令は、実行されたときに、さらにプロセッサに、コンテンツファイルを別個のコンピュータデバイスに提供させ、コンテンツファイルを提供した後に、いくつかの提示ファイルのうちの少なくとも第１の提示ファイルの変更を識別させ、少なくとも第１の提示ファイルを別個のコンピュータデバイスに提供させてもよく、ソフトウェアアプリケーションは、ソフトウェアアプリケーションを別個のコンピュータデバイス上に再インストールまたは再ロードする必要なく、（ａ）機能性および（ｂ）ソフトウェアアプリケーションのユーザインターフェースのうちの少なくとも１つとして、第１の提示ファイルを実行するように構成される。
【００２５】
いくつかの実施形態では、いくつかのコンテンツファイルを取得するステップは、遠隔コンピュータデバイスからネットワークを介して、いくつかのコンテンツファイルのうちの少なくとも一部分を取得するステップを含む。命令は、実行されたときに、さらにプロセッサに、第１の提示ファイルの変更を識別することに応答して、遠隔コンピュータデバイスにアクセス可能な記憶リポジトリの中で第１の提示ファイルの複製を生じさせてもよい。第１の提示ファイルを別個のコンピュータデバイスに提供するステップは、ネットワークを介して第１の提示ファイルを別個のコンピュータデバイスにアクセス可能にさせるステップを含んでもよい。
【００２６】
添付図面と併せて解釈される以下の説明を参照することによって、本開示の先述および他の目的、側面、特徴、および利点が、より明白となり、より理解されるであろう。
【図面の簡単な説明】
【００２７】
【図１Ａ】図１Ａ−１Ｆは、コンピュータデバイス用のソフトウェアアプリケーションを作成するために使用され得るソフトウェア開発環境を図示する、システム図である。
【図１Ｂ】図１Ａ−１Ｆは、コンピュータデバイス用のソフトウェアアプリケーションを作成するために使用され得るソフトウェア開発環境を図示する、システム図である。
【図１Ｃ】図１Ａ−１Ｆは、コンピュータデバイス用のソフトウェアアプリケーションを作成するために使用され得るソフトウェア開発環境を図示する、システム図である。
【図１Ｄ】図１Ａ−１Ｆは、コンピュータデバイス用のソフトウェアアプリケーションを作成するために使用され得るソフトウェア開発環境を図示する、システム図である。
【図１Ｅ】図１Ａ−１Ｆは、コンピュータデバイス用のソフトウェアアプリケーションを作成するために使用され得るソフトウェア開発環境を図示する、システム図である。
【図１Ｆ】図１Ａ−１Ｆは、コンピュータデバイス用のソフトウェアアプリケーションを作成するために使用され得るソフトウェア開発環境を図示する、システム図である。
【図２Ａ】図２Ａ−２Ｃは、コンピュータデバイス用のソフトウェアアプリケーションを開発するために使用され得る例示的方法を図示する、フローチャートである。
【図２Ｂ】図２Ａ−２Ｃは、コンピュータデバイス用のソフトウェアアプリケーションを開発するために使用され得る例示的方法を図示する、フローチャートである。
【図２Ｃ】図２Ａ−２Ｃは、コンピュータデバイス用のソフトウェアアプリケーションを開発するために使用され得る例示的方法を図示する、フローチャートである。
【図３Ａ】図３Ａおよび３Ｂは、コンピュータデバイス用のソフトウェアアプリケーションを作成するために使用され得る付加的な例示的方法を図示する、フローチャートである。
【図３Ｂ】図３Ａおよび３Ｂは、コンピュータデバイス用のソフトウェアアプリケーションを作成するために使用され得る付加的な例示的方法を図示する、フローチャートである。
【図４Ａ】図４Ａおよび４Ｂは、コンピュータデバイス用のソフトウェアアプリケーションを開発するために使用され得るさらなる例示的方法を図示する、フローチャートである。
【図４Ｂ】図４Ａおよび４Ｂは、コンピュータデバイス用のソフトウェアアプリケーションを開発するために使用され得るさらなる例示的方法を図示する、フローチャートである。
【図５Ａ】図５Ａ−５Ｈは、コンピュータデバイス用のソフトウェアアプリケーションを作成するために使用され得る、ソフトウェア開発環境用の例示的ユーザインターフェースを図示する。
【図５Ｂ】図５Ａ−５Ｈは、コンピュータデバイス用のソフトウェアアプリケーションを作成するために使用され得る、ソフトウェア開発環境用の例示的ユーザインターフェースを図示する。
【図５Ｃ】図５Ａ−５Ｈは、コンピュータデバイス用のソフトウェアアプリケーションを作成するために使用され得る、ソフトウェア開発環境用の例示的ユーザインターフェースを図示する。
【図５Ｄ】図５Ａ−５Ｈは、コンピュータデバイス用のソフトウェアアプリケーションを作成するために使用され得る、ソフトウェア開発環境用の例示的ユーザインターフェースを図示する。
【図５Ｅ】図５Ａ−５Ｈは、コンピュータデバイス用のソフトウェアアプリケーションを作成するために使用され得る、ソフトウェア開発環境用の例示的ユーザインターフェースを図示する。
【図５Ｆ】図５Ａ−５Ｈは、コンピュータデバイス用のソフトウェアアプリケーションを作成するために使用され得る、ソフトウェア開発環境用の例示的ユーザインターフェースを図示する。
【図５Ｇ】図５Ａ−５Ｈは、コンピュータデバイス用のソフトウェアアプリケーションを作成するために使用され得る、ソフトウェア開発環境用の例示的ユーザインターフェースを図示する。
【図５Ｈ】図５Ａ−５Ｈは、コンピュータデバイス用のソフトウェアアプリケーションを作成するために使用され得る、ソフトウェア開発環境用の例示的ユーザインターフェースを図示する。
【図６】図６は、コンピュータデバイス用のソフトウェアアプリケーションを作成するための別の例示的ネットワーク環境のブロック図である。
【図７】図７は、コンピュータデバイスおよびモバイルコンピュータデバイスのブロック図である。
【発明を実施するための形態】
【００２８】
本開示の特徴および利点は、類似参照文字が全体を通して対応する要旨を識別する、図面と併せて解釈されたときに、以下に記載される発明を実施するための形態から、より明白となるであろう。図面では、類似参照番号は、概して、同一の、機能的に類似する、および／または構造的に類似する要素を示す。
【００２９】
いくつかの実装では、本開示は、コンピュータデバイス用のソフトウェアの開発のための環境および方法を対象とし得る。開発プロセスは、いくつかの実装では、２つ以上のコンピュータデバイスプラットフォーム上に展開するためのソフトウェアアプリケーションのクロスプラットフォーム開発を含んでもよい。コンピュータデバイスプラットフォームは、いくつかの実施例では、デバイスオペレーティングシステム（例えば、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ（Ｒｅｄｍｏｎｄ，  ＷＡ）によるＭｉｃｒｏｓｏｆｔ（登録商標）  Ｗｉｎｄｏｗｓ（登録商標）、Ｌｉｎｕｘ（登録商標）、Ａｐｐｌｅ  Ｉｎｃ．（Ｃｕｐｅｒｔｉｎｏ，  ＣＡ）によるＡｐｐｌｅ（登録商標）  ＭａｃＴＭ  ＯＳ、Ｒｅｓｅａｒｃｈ  ｉｎ  Ｍｏｔｉｏｎ  Ｌｉｍｉｔｅｄ（Ｗａｔｅｒｌｏｏ，  Ｏｎｔａｒｉｏ）によるＲｅｓｅａｒｃｈ  ｉｎ  Ｍｏｔｉｏｎ  （ＲＩＭ）  Ｂｌａｃｋｂｅｒｒｙ（登録商標）  ＯＳ等）、オペレーティングシステムバージョン、デバイスアプリケーションフォーマット（例えば、Ａｐｐｌｅ  Ｉｎｃ．によるＡｐｐｌｅ（登録商標）  ｉＯＳＴＭ、Ｇｏｏｇｌｅ  Ｉｎｃ．（Ｍｅｎｌｏ  Ｐａｒｋ，  ＣＡ）によるＡｎｄｒｏｉｄＴＭ、Ｍｉｃｒｏｓｏｆｔ  ＣｏｒｐｏｒａｔｉｏｎによるＷｉｎｄｏｗｓ（登録商標）  Ｐｈｏｎｅ、Ｈｅｗｌｅｔｔ−Ｐａｃｋａｒｄ  Ｃｏｍｐａｎｙ（Ｐａｌｏ  Ａｌｔｏ，  ＣＡ）によるＰａｌｍＴＭ  ｗｅｂＯＳＴＭ、Ａｃｃｅｎｔｕｒｅ  ＰＬＣ（Ｄｕｂｌｉｎ，  Ｉｒｅｌａｎｄ）によるＳｙｍｂｉａｎＴＭ、Ｓａｍｓｕｎｇ  Ｅｌｅｃｔｒｏｎｉｃｓ（Ｓｅｏｕｌ，  Ｓ．  Ｋｏｒｅａ）によるＢａｄａＴＭ等）、およびデバイス周辺構成（例えば、いくつかの実施例では、センサ、スピーカ、マイクロホン、仮想および／または小型キーボード、ボタン、および他の物理制御入力等の入出力デバイス）のうちの１つ以上等の特定の一式の構成パラメータを指し得る。
【００３０】
本明細書で説明されるように、総合クラウド環境（ＩＣＥ）は、いくつかの実装では、２つ以上のコンピュータデバイスプラットフォーム上で作動するようにコンパイルされ得る、クロスプラットフォームソフトウェアアプリケーションを開発するためのインターフェースを提供してもよい。いくつかの実装では、総合クラウド環境は、いくつかの無線コンピュータデバイスプラットフォーム用のソフトウェアアプリケーションを設計、構築、コンパイル、試験、および／または配布するための特徴を含んでもよい。いくつかの実装では、総合クラウド環境は、加えて、ウェブベースのアプリケーション（例えば、ブラウザベースのウェブアプリケーション、Ｆａｃｅｂｏｏｋ，  Ｉｎｃ．（Ｃａｍｂｒｉｄｇｅ，  ＭＡ）によるＦａｃｅｂｏｏｋ（登録商標）と互換性があるアプリケーション、ＭｉｃｒｏｓｏｆｔによるＡＳＰ．ＮＥＴ等のサーバ側ウェブアプリケーション等）用のソフトウェアアプリケーションを設計、構築、コンパイル、試験、および／または配布するための特徴を提供してもよい。総合クラウド環境は、いくつかの実装では、個々のソフトウェア開発キット（ＳＤＫ）または総合開発環境（ＩＤＥ）（例えば、Ａｐｐｌｅ，  Ｉｎｃ．によるｘＣｏｄｅＴＭ、Ｅｃｌｉｐｓｅ  Ｆｏｕｎｄａｔｉｏｎ（Ｏｔｔａｗａ，  Ｃａｎａｄａ）によるＥｃｌｉｐｓｅ、ＭｉｃｒｏｓｏｆｔによるＶｉｓｕａｌ  Ｓｔｕｄｉｏ（登録商標）、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐ．（ＩＢＭ）（Ａｒｍｏｎｋ，  ＮＹ）によるＷｅｂＳｐｈｅｒｅ（登録商標）ソフトウェア用のＲａｔｉｏｎａｌ  Ａｐｐｌｉｃａｔｉｏｎディベロッパ等）から除去される開発環境、および／または典型的には無線コンピュータデバイスおよびウェブアプリケーションの種々のプラットフォーム用のソフトウェアアプリケーションを開発するために使用されるプログラミング言語（例えば、オブジェクティブＣ、Ｊａｖａ（登録商標）、Ｃ＃等）を開発者に提供してもよい。いくつかの実装では、クロスプラットフォームソフトウェアアプリケーションの開発のための総合クラウド環境は、クロスプラットフォームソフトウェアアプリケーションのプラットフォーム非依存型バージョンを開発してシミュレートするためにローカル開発コンピュータデバイス上にインストールされる、アプリケーションディベロッパインタフェースを伴ってもよい。クロスプラットフォームソフトウェアアプリケーションの開発のための総合クラウド環境は、いくつかの実装では、インターネットブラウザプログラムを通して開発者に提示される、アプリケーションディベロッパインターフェースを伴ってもよい。アプリケーションディベロッパインターフェースは、例えば、特定のコンピュータデバイスプラットフォームに向けたアプリケーション開発のために提供される、種々のソフトウェア開発キットまたは総合開発環境の側面を使用して、プラットフォーム特有のファイルを伴うプラットフォーム非依存型開発ファイルをコンパイルするための総合クラウド環境への通信チャネルを開発者に提供してもよい。
【００３１】
いくつかの実装では、種々のコンピュータデバイス用のクロスプラットフォーム開発は、いくつかの実施例では、ハイパーテキストマークアップ言語（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ；ＨＴＭＬ）等のマークアップ言語、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔ等のインタープリタ型言語、およびカスケーディングスタイルシート（Ｃａｓｃａｄｉｎｇ  Ｓｔｙｌｅ  Ｓｈｅｅｔｓ；ＣＳＳ）等のスタイルシート言語等の非コンパイラ型リソースファイル（例えば、本明細書で使用されるような「提示ファイル」）を通して、開発者がアプリケーションの挙動の多くを定義することを可能にする、抽象化層を通して可能にされ得る。提示ファイルは、例えば、センサ、制御、および入出力機構等のデバイス周辺機器と相互作用するためのコマンドを含んでもよい。いくつかの実装では、提示ファイルはさらに、デバイスまたはプラットフォーム特有のアプリケーションプログラミングインターフェース（ＡＰＩ）等のウェブベースのサービスと相互作用するためのコマンドを含んでもよい。いくつかの実装では、提示ファイルをプラットフォーム特有の無線コンピュータデバイスコマンドに変換するための抽象化層は、Ａｐａｃｈｅ  Ｓｏｆｔｗａｒｅ  Ｆｏｕｎｄａｔｉｏｎ（Ｆｏｒｅｓｔ  Ｈｉｌｌ，  Ｍａｒｙｌａｎｄ）によるＡｐａｃｈｅ  Ｃｏｒｄｏｖａプラットフォームを使用して開発されてもよい。
【００３２】
提示ファイルは、いくつかの実装では、コンピュータデバイス上での実行時に、ユーザとコンピュータデバイスとの間の相互作用を可能にするように解釈されてもよい。いくつかの実装では、提示ファイルは、コンピュータデバイスのブラウザエンジン特徴によって解釈されてもよい。いくつかの実装では、提示ファイルは、コンピュータデバイス上でレンダリングされる「ウィンドウレス」（例えば、ブラウザ境界を画定しない全画面等）ウェブブラウザインターフェースの中で提示するために提供されてもよい。いくつかの実装では、提示ファイルは、提示ファイルに組み込まれたメディアファイルへのリンクを通してアプリケーションの実行中にアクセスされて提示され得る、音声、画像、およびビデオファイル等のいくつかのメディアファイルと組み合わせられてもよい。メディアファイルおよび提示ファイルの組み合わせは、いくつかの実装では、クロスプラットフォームアプリケーションプロジェクトの「コンテンツファイル」と称され得る。
【００３３】
図１Ａ−１Ｆは、いくつかの実装では、２つ以上のデバイスプラットフォームを含むいくつかのコンピュータデバイスに展開するためにクロスプラットフォームソフトウェアアプリケーションを開発するための総合クラウド環境の変形例を図示し得る。図１Ａ−１Ｃが、例えば、クロスプラットフォームソフトウェアアプリケーションの開発のためのデスクトップクライアントアプリケーションを使用する、総合クラウド環境を図示し得る一方で、図１Ｄ−１Ｆは、クロスプラットフォームソフトウェアアプリケーションの開発のためのクラウド実装（例えば、ブラウザベースの）アプリケーションを使用する、総合クラウド環境を図示し得る。
【００３４】
図１Ａを参照すると、総合クラウド環境１００は、クラウドネットワーク１０４と通信している開発コンピュータデバイス１０２（例えば、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、ノートブックコンピュータ、またはソフトウェア開発目的のために構成可能な他のコンピュータデバイス）を含んでもよい。クラウドネットワーク１０４は、いくつかの実装では、プラットフォーム特有のコンピュータデバイスアプリケーションの生成のための開発サーバ１０６と、例えば、プロジェクトディレクトリ１１２の中に収集される際に、クロスプラットフォームソフトウェアアプリケーションプロジェクトに関係するプロジェクトファイル１１０（例えば、コンテンツファイルおよび他のファイル）を記憶するためのプロジェクトリポジトリ１０８と、開発コンピュータデバイス１０２とクラウドネットワーク１０４との間で開発環境インターフェースを可能にするためのウェブサーバ１１４とを含んでもよい。
【００３５】
総合クラウド環境１００で開発を開始するために、いくつかの実装では、開発者は、最初に、開発クライアントアプリケーション１１６をダウンロードし、開発コンピュータデバイス１０２上にインストールしてもよい。開発クライアントアプリケーション１１６は、いくつかの実施例では、（例えば、図示されるように）ネットワーククラウド１０４からダウンロードされ、（例えば、ウェブブラウザまたはウェブベースのアプリケーションストア等を介して）別のネットワークを通してダウンロードされ、または、いくつかの実施例では、コンパクトディスク（ＣＤ）、デジタルビデオディスク（ＤＶＤ）、またはユニバーサルシリアルバス（ＵＳＢ）メモリデバイス等の開発コンピュータデバイス１０２にアクセス可能な可撤性コンピュータ可読媒体を介してインストールされてもよい。
【００３６】
いくつかの実装では、開発クライアントアプリケーション１１６は、開発コンピュータデバイス１０２上で開発インターフェース１１８の局所提示を可能にしてもよい。開発クライアントアプリケーション１１６は、いくつかの実装では、開発インターフェース１１８を介して、提示ファイルおよび他の（例えば、媒体、メタデータ等）ファイルを使用して、クロスプラットフォームソフトウェアアプリケーションをプログラムおよびデバッグするための特徴を含んでもよく、またはそうするために（例えば、ウェブサーバ１１４を介して提供される）クラウドベースの特徴へのアクセスを含んでもよい。
【００３７】
いくつかの実装では、開発クライアントアプリケーション１１６は、開発インターフェース１１８を介して２つ以上のコンピュータデバイスプラットフォーム上でソフトウェアアプリケーションをシミュレートするための特徴を含んでもよく、またはそうするために（例えば、ウェブサーバ１１４を介して提供される）クラウドベースの特徴へのアクセスを含んでもよい。例えば、第１の画面サイズならびに第１の周辺および制御特徴を伴う第１のデバイスシミュレータは、第１のデバイスプラットフォームをシミュレートするように提示されてもよく（例えば、開発インターフェース１１８において提示されるデバイスシミュレータ１２０等）、第２の画面サイズならびに第２の周辺および制御特徴を伴う第２のデバイスシミュレータは、第２のデバイスプラットフォームをシミュレートするように提示されてもよい。
【００３８】
いくつかの実装では、デバイスシミュレータ１２０は、シミュレートされたデバイスプラットフォーム上のセンサ、入出力要素、および他の特徴の挙動をシミュレートするための１つ以上のセンサ入出力シミュレーション特徴を含んでもよい。そのような特徴を、例えば、図５Ａ−５Ｈで図示されるユーザインターフェースに関して詳細に議論する。
【００３９】
いったん開発者がシミュレートされたアプリケーションの性能に満足すると、いくつかの実装では、開発者は、任意のローカルに記憶されたプロジェクトファイル１２２（例えば、提示ファイル、メディアファイル等）をプロジェクトリポジトリ１０８にアップロードしてもよく、それらは、例えば、プロジェクトファイル１１０の一部分としてプロジェクトディレクトリ１１２に記憶されてもよい。いくつかの実装では、開発クライアントアプリケーション１１６は、クロスプラットフォームソフトウェアアプリケーションの開発中に、プロジェクトリポジトリ１０８の中でプロジェクトファイル１２２のうちの１つ以上を複製および／または維持してもよい。例えば、ファイルを保存すると、開発クライアントアプリケーション１１６は、プロジェクトリポジトリ１０８への新しい、または修正されたファイルのアップロードを開始してもよい。いくつかの実装では、プロジェクトファイル１２２は、開発者が１つ以上のプラットフォーム特有のアプリケーションファイル（例えば、実行可能ファイル、インストールファイル、ｚｉｐファイル等の実行時ファイルのダウンロード可能なバンドル等）の生成を要求するときまで、開発コンピュータデバイス１０２に対してローカルなままであってもよい。
【００４０】
プラットフォーム特有のアプリケーションファイルの生成を可能にするために、いくつかの実装では、開発クライアントアプリケーション１１６は、ローカルに記憶されたプロジェクトファイル１２２の一部分をプロジェクトリポジトリ１０８に複製してもよい。プロジェクトリポジトリ１０８から、例えば、プロジェクトファイル１１０は、プラットフォーム特有のアプリケーションファイルを作成するように、プラットフォーム特有のファイル１２４と組み合わせられてもよい。いくつかの実装では、更新エージェント１２６は、例えば、標的コンピュータデバイスへの試験中に、コンテンツファイルの部分的更新を可能にするように、プラットフォーム特有のアプリケーションファイルに含まれてもよい。いくつかの実装では、プラットフォーム特有のアプリケーションファイルは、例えば、特定の標的コンピュータデバイスがプラットフォーム特有のアプリケーションファイルをマルウェアまたは潜在的なウイルスよりもむしろ信頼できるファイルとして認識することを可能にするように、プラットフォーム特有またはデバイス特有の電子署名を含んでもよい。いくつかの実装では、開発クライアントアプリケーション１１６は、いくつかの実施例では、デバイスブランド、モデル、オペレーティングシステム、オペレーティングシステムバージョン、または一意のデバイス識別子を含む、標的無線コンピュータデバイス情報をアップロードしてもよい。いくつかの実装では、開発クライアントアプリケーション１１６は、いくつかの実装では、開発者に関する人口統計学情報（例えば、名前、連絡先情報等）等の開発者情報、および特定の無線デバイスプラットフォームに対応する署名権限等の署名権限によって提供されるような認証の証明書をアップロードしてもよい。
【００４１】
いくつかの実装では、開発クライアントアプリケーション１１６は、プラットフォーム特有のアプリケーションファイルのビルドに更新エージェント１２６を含むかどうかに関する開発者からの指示を提供してもよい。例えば、開発者は、プラットフォーム特有のアプリケーションファイルのそれぞれが、それぞれの標的コンピュータデバイス上でのアプリケーションの実行中に部分的に更新されることを可能にするように、プラットフォーム特有のアプリケーションファイルの中の更新エージェント１２６の包含を特定してもよい。別の実施例では、開発者は、デバッギングモードアプリケーションファイル（例えば、更新エージェント１２６を含む）または生産モードアプリケーションファイル（例えば、アプリケーションストア、ウェブベースのダウンロードサイト、または他の配布機構を通してエンドユーザに配布される）を生成するオプションを有してもよい。
【００４２】
図１Ｂを参照すると、総合クラウド環境１３０はさらに、いくつかの実装では、スマートフォン１３２ａ、折り畳み式携帯電話１３２ｂ、および携帯情報端末（ＰＤＡ）１３２ｃ等の一式の標的無線コンピュータデバイス１３２を含んでもよい。図示されるように、標的無線コンピュータデバイス１３２のそれぞれは、例えば、開発コンピュータデバイス１０２のポートに差し込まれたコードまたはワイヤによって、開発コンピュータデバイス１０２に個別に繋留される。いくつかの実装では、有線接続を介して開発コンピュータデバイス１０２に接続されるよりもむしろ、標的無線コンピュータデバイス１３２のうちの１つ以上は、無線機構を通して開発コンピュータデバイス１０２にアクセス可能であり得る。例えば、標的無線コンピュータデバイス１３２のうちの１つ以上は、開発コンピュータデバイス１０２と同一のローカルエリアネットワーク（ＬＡＮ）、キャンパスネットワーク、Ｗｉ−ＦｉＴＭネットワーク、または他の無線ネットワーク接続に接続されてもよい。いくつかの実装では、特定の標的無線コンピュータデバイス１３２と開発コンピュータデバイス１０２との間の直接または無線接続の選択は、開発目的で新しい実行可能ファイルのアップロードに関して、標的無線コンピュータデバイス１３２の特定のブランドまたはプラットフォームの許可に部分的に基づいてもよい。例えば、あるブランドまたはプラットフォームは、開発モードアプリケーションファイルの無線ダウンロードのための機会を提供しなくてもよい。
【００４３】
図示されるように、いくつかの実装では、一式のプラットフォーム特有の実行可能ファイル１３４（例えば、インストールファイル、アプリケーションファイル等）が、クラウドネットワーク１０４から開発コンピュータデバイス１０２に送達されてもよい。いくつかの実装では、プラットフォーム特有の実行可能ファイル１３４はそれぞれ、特定の標的無線コンピュータデバイス１３２に合わせられてもよい。開発クライアントアプリケーション１１６は、いくつかの実装では、標的無線コンピュータデバイス１３２のうちの特定の１つに属するものとして、プラットフォーム特有の実行可能ファイル１３４のそれぞれを識別し、関連プラットフォーム特有の実行可能ファイル１３４をそれぞれの標的無線コンピュータデバイス１３２にダウンロードしてもよい。例えば、第１のプラットフォーム特有の開発実行可能ファイル１３４ａが、開発クライアントアプリケーション１１６によってスマートフォン１３２ａにプッシュ配信されてもよい一方で、第２のプラットフォーム特有の実行可能ファイル１３４ｂは、折り畳み式携帯電話１３２ｂにプッシュ配信されてもよく、第３のプラットフォーム特有の実行可能ファイル１３４ｃは、ＰＤＡ１３２ｃにプッシュ配信されてもよい。いくつかの実装では、プラットフォーム特有の実行可能ファイル１３４のそれぞれは、開発クライアントアプリケーション１１６からのプラットフォーム特有の実行可能ファイル１３４のアップロード時に、それぞれの標的無線コンピュータデバイス１３２上に自動的にインストールされてもよい。他の実装では、開発者が、各標的無線コンピュータデバイス１３２へのインストールを開始してもよい。
【００４４】
図１Ｃを参照すると、更新された開発クライアントアプリケーション１４０はさらに、いくつかの実装では、標的無線コンピュータデバイス１３２のそれぞれと開発コンピュータデバイス１０２との間に無線通信を含んでもよい。例えば、標的無線コンピュータデバイス１３２のそれぞれは、開発コンピュータデバイス１０２と同一の無線ネットワークに接続されてもよいが、必ずしも標的無線コンピュータデバイス１３２のそれぞれの間で同一の無線ネットワークに接続されるわけではない。例えば、折り畳み式携帯電話１３２ｂが、Ｗｉ−ＦｉＴＭネットワークに接続されてもよい一方で、ＰＤＡ１３２ｃは、Ｂｌｕｅｔｏｏｔｈ（登録商標）ネットワークに接続されてもよい。いくつかの実装では、更新エージェント１２６は、開発クライアントアプリケーション１１６が所与のネットワーク上の標的無線コンピュータデバイス１３２のそれぞれを認識することを可能にするように、一意の無線識別子を含んでもよい。いくつかの実装では、更新エージェント１２６は、開発クライアントアプリケーション１１６が、それぞれの標的無線コンピュータデバイス１３２上で作動する特定のプラットフォーム特有の開発アプリケーション１４２（例えば、図１Ｂに関して説明されるような特定のプラットフォーム特有の実行可能ファイル１３４を使用してインストールされる）を認識することを可能にするように、一意の識別子を含んでもよい。
【００４５】
標的無線コンピュータデバイス１３２のそれぞれの上のプラットフォーム特有の開発アプリケーション１４２を試験しながら、いくつかの実装では、開発者は、（例えば、開発コンピュータデバイス１０２上の開発インターフェース１１８を通して）コンテンツファイル１４４のうちの１つ以上を修正することを選択してもよい。コンテンツファイル１４４は、例えば、提示ファイルによって実行時間中にアクセスされる、１つ以上の提示ファイルまたはメディアファイルを含んでもよい。いくつかの実装では、例えば、各修正されたコンテンツファイル１４４を保存すると、またはプラットフォーム特有のアプリケーション１４２が修正されたコンテンツファイル１４４を用いて更新されることを要求すると、コンテンツファイル１４４への変更がクラウドネットワーク１０４に提供されてもよい。コンテンツファイル１４４に行われる修正は、いくつかの実装では、プロジェクトリポジトリ１０８の中のプロジェクトファイル１１０に追加されてもよい。いくつかの実装では、更新されたコンテンツファイル１４４は、プロジェクトリポジトリ１０８に記憶された既存のプロジェクトファイル１１０に取って代わってもよい。更新されたコンテンツファイル１４４のうちの１つ以上は、いくつかの実装では、既存のプロジェクトファイル１１０の新しいバージョンとしてプロジェクトディレクトリ１１２に追加されてもよい。
【００４６】
修正されたコンテンツファイル１４４が、バイナリ実行ファイルにコンパイルされるよりもむしろ、実行時間中に解釈された場合、いくつかの実装では、修正されたコンテンツファイル１４４は、それぞれのプラットフォーム特有の開発アプリケーション１４２によって使用するために、標的無線コンピュータデバイス１３２のうちの１つ以上にプッシュ配信されてもよい。いくつかの実装では、開発クライアントアプリケーション１１６は、標的無線コンピュータデバイス１３２のそれぞれとのファイル転送接続を開放してもよい。例えば、プラットフォーム特有の開発アプリケーション１４２のそれぞれを介して作動する更新エージェント１２６は、いくつかの実装では、開発クライアントアプリケーション１１６とのファイル共有セッションの作成を可能にしてもよい。無線接続にわたる転送として図示されているが、いくつかの実装では、標的無線コンピュータデバイス１３２のうちの１つ以上は、開発コンピュータデバイス１０２に繋留されてもよい。加えて、標的無線コンピュータデバイス１３２のそれぞれは、コンテンツファイル１４４のコピーを受信するものとして図示されているが、いくつかの実装では、開発者は、コンテンツファイル１４４を受信するために標的無線コンピュータデバイス１３２の一部分を選択してもよい。例えば、開発者は、更新されたコンテンツファイル１４４を折り畳み式携帯電話１３２ｂおよびＰＤＡ１３２ｃに提供することなく、スマートフォン１３２ａ上の機能性を検証してもよい。
【００４７】
プラットフォーム特有の開発アプリケーション１４２のそれぞれを介して作動する更新エージェント１２６は、いくつかの実装では、コンテンツファイルの追加または更新を認識するように、それぞれの標的無線コンピュータデバイス１３２上のコンテンツファイルディレクトリを監視してもよい。いくつかの実装では、新しい、または更新されたコンテンツファイルの認識時に、更新エージェント１２６は、プラットフォーム特有の開発アプリケーション１４２の現在の提示をリフレッシュしてもよい。このようにして、例えば、開発者によって行われる修正は、それぞれのプラットフォーム特有の開発アプリケーション１４２を再ロードまたは再起動する必要なく、各更新された標的無線コンピュータデバイス１３２上のユーザインターフェースにおいて即時に反映されてもよい。
【００４８】
類似総合クラウド環境１５０において、いくつかの実装では、開発者は、ウェブクライアントアプリケーション１５６内で稼働するようにクラウドネットワーク１０４内のウェブサーバ１１４に接続することによって、クロスプラットフォームソフトウェアアプリケーションを開発して試験してもよい。ウェブクライアントアプリケーション１５６は、いくつかの実装では、サーバ側開発クライアントアプリケーション１６４を送達するためのブラウザベースのプログラムであってもよい。例えば、ウェブクライアントアプリケーション提示ファイル１５１は、開発インターフェース１１８を介した開発を可能にするように、開発コンピュータデバイス１０２に提供（例えば、ダウンロード）されてもよい。いくつかの実装では、ウェブクライアントアプリケーション１５６は、ウェブサーバ１１４によって提供される開発クライアントアプリケーション１６４と統合することが可能なデスクトップまたはモバイルデバイスアプリケーションであってもよい。図１Ａに関連して説明される総合クラウド環境１００と同様に、ウェブクライアントアプリケーション１５６および／または開発クライアントアプリケーション１６４は、いくつかの実装では、デバイスシミュレータ１２０を含む、開発インターフェース１１８を提示するために使用されてもよい。
【００４９】
クロスプラットフォームソフトウェアアプリケーションを開発しながら、開発者は、１つ以上のコンテンツファイルを作成し、および／または１つ以上のコンテンツファイルをウェブサーバ１１４にアップロードしてもよい。コンテンツファイルは、いくつかの実装では、プロジェクトディレクトリ１１２のプロジェクトファイル１１０内に、例えば、プロジェクトリポジトリ１０８内に記憶されてもよい。
【００５０】
いくつかの実装では、開発者が、コンパニオンアプリケーションインストール実行ファイル１５２を標的無線コンピュータデバイス１３２のうちの１つ以上にダウンロードしてもよい。コンパニオンアプリケーションインストール実行ファイル１５２は、いくつかの実装では、例えば、購入するために、または無料で提供される、いくつかのモバイルデバイスアプリケーションを含む、アプリケーションストア１６０を介して、モバイルデバイスアプリケーションサーバ１５８を通して入手可能であり得る。いくつかの実装では、２つ以上のモバイルデバイスアプリケーションサーバが、コンパニオンアプリケーションインストール実行ファイル１５２へのアクセスを提供してもよい。例えば、アプリケーションストア１６０は、Ａｐｐｌｅ  Ｉｎｃ．によるｉＰｈｏｎｅＴＭ用のＡｐｐｌｅ（登録商標）Ａｐｐ  Ｓｔｏｒｅ等のプラットフォーム特有のアプリケーションストアであってもよい。いくつかの実装では、モバイルデバイスアプリケーションサーバ１５８が、クラウドネットワーク１０４から別個のネットワーク１６６内に提供されてもよい。他の実装では、ネットワーク１６６は、クラウドネットワーク１０４内に含まれてもよい。コンパニオンアプリケーション実行ファイル１５２ａ、１５２ｂ、および１５２ｃのそれぞれは、特定のオペレーティングシステムおよび／またはデバイスプラットフォームとともに動作するように生成されてもよい。例えば、コンパニオンアプリケーション実行ファイル１５２ａは、標的無線コンピュータデバイス１３２ａのデバイスプラットフォームへのインストール時に生成されてもよい。
【００５１】
コンパニオンアプリケーションインストール実行ファイル１５２のダウンロード時に、それぞれのコンパニオンアプリケーション１６２ａ、１６２ｂ、１６２ｃが、それぞれの標的無線コンピュータデバイス１３２ａ、１３２ｂ、１３２ｃ上にインストールされてもよい。コンパニオンアプリケーション１６２は、いくつかの実装では、開発クライアントアプリケーション１６４およびウェブクライアントアプリケーション１５６を介して開発されるコンテンツファイル１４４を提示するためのシェル環境を生成するために使用されてもよい。いくつかの実装では、コンパニオンアプリケーション１６２は、コンテンツファイル１４４を提示するためのウィンドウレスブラウザ特徴を含んでもよい。コンパニオンアプリケーション１６２は、いくつかの実装では、例えば、要求に応じて、および／または自動的にコンテンツファイルがコンパニオンアプリケーション１６２内で更新されることを可能にするように構成される、クラウドネットワーク１０４および更新エージェント（図示せず）からコンテンツファイルを受信することが可能な受信エージェント（図示せず）等の付加的な機能性を含んでもよい。
【００５２】
図１Ｅを参照すると、コンパニオンアプリケーション１６２をインストールした後、（例えば、プロジェクトディレクトリ１１２の中に蓄積された、開発クライアントアプリケーション１６４およびウェブクライアントアプリケーション１５６を介して開発されるような）現在のプロジェクトに関係するコンテンツファイル１２２が、ダウンロードされ、コンパニオンアプリケーション１６２内でレンダリングされてもよい。例えば、コンパニオンアプリケーション１６２は、開発クライアントアプリケーション１６４およびウェブクライアントアプリケーション１５６内で開発されたクロスプラットフォームソフトウェアアプリケーションの機能性を立ち上げるためのシェルとして挙動してもよい。この機能性、例えば、開発アプリケーション１７０ａ、１７０ｂ、１７０ｃは、コンパニオンアプリケーション１６２内で立ち上げられてもよい。いくつかの実装では、コンパニオンアプリケーション１６２は、クロスプラットフォームソフトウェアアプリケーションの現行の試験および開発のために、２つ以上の開発アプリケーション（例えば、２つ以上のクロスプラットフォームソフトウェアアプリケーションプロジェクトに対応する）、または単一の開発アプリケーションの２つ以上のバージョンを組織化してもよい。
【００５３】
図１Ｆで図示されるように、１つ以上のコンテンツファイル１４４は、クロスプラットフォーム開発アプリケーションが標的無線コンピュータデバイス１３２に展開された後に、修正、更新、または追加されてもよい。いくつかの実装では、コンテンツファイル１４４は、標的無線コンピュータデバイス１３２に引き出されてもよい。例えば、メニュー選択、事前設定されたタッチスクリーンジェスチャ、またはネットワーク場所へのアクセス時に、標的無線コンピュータデバイス１３２のそれぞれは、１つ以上のコンテンツファイル１４４を受信してもよい。コンテンツファイル１４４のダウンロードは、いくつかの実装では、コンパニオンアプリケーション１６２に内蔵された機能性によって補助されてもよい。いくつかの実装では、コンテンツファイル１４４は、自動的に標的無線コンピュータデバイス１３２のうちの１つ以上にプッシュ配信されてもよい。例えば、クラウドネットワーク１０４とのネットワーク接続を通して、またはコンピュータデバイス１０２との無線接続を介して、コンテンツファイル１４４は、標的無線コンピュータデバイス１３２のうちの１つ以上に送達されてもよい。
【００５４】
いくつかの実装では、コンテンツファイル１４４のダウンロード時に、コンパニオンアプリケーション１６２は、コンテンツファイル１４４内で提供される新しいコンテンツを自動的に取り出すように、現在の表示を再生してもよい。例えば、図１Ａ−１Ｃに関連して説明される、更新エージェント１２６に類似する機能性が、コンパニオンアプリケーション１６２に内蔵されてもよい。このようにして、コンパニオンアプリケーション１６２ａ、１６２ｂ、および１６２ｃはそれぞれ、更新された開発アプリケーション１７０’ａ、１７０’ｂ、および１７０’ｃを提示してもよい。
【００５５】
いったん試験アプリケーションが所望に応じて機能していることを開発者が判定すると、いくつかの実装では、プロジェクトファイル１１０は、展開アプリケーションを構築するように、例えば、開発サーバ１０６内のプラットフォーム特有のファイル１２４と合併させられてもよい。展開アプリケーションは、いくつかの実装では、コンピュータデバイス１０２に提供されるか、または図１Ｄに関連して説明されるアプリケーションストア１５８等のアプリケーションストアに転送されてもよい。
【００５６】
図２Ａ−２Ｃは、クロスプラットフォームソフトウェアアプリケーションを開発するための一式の方法２００、２７０、２８０を図示する、フローチャートを提示する。方法２００は、例えば、方法２７０（例えば、クライアントがインストールした開発ソリューションを伴う状況で）または方法２８０（例えば、ブラウザベースの開発環境を伴う状況で）のいずれか一方と組み合わせられてもよい。
【００５７】
図２Ａを参照すると、いくつかの実装では、方法２００は、クロスプラットフォームソフトウェアアプリケーションを開発するための開発クライアントアプリケーションにアクセスすることから始めてもよい（２０２）。いくつかの実装では、開発クライアントアプリケーションにアクセスすることは、総合クラウド開発環境と連動するためのクライアントアプリケーションをインストールすることを含んでもよい。開発クライアントアプリケーションは、いくつかの実装では、ライトクライアントまたはブラウザインターフェースを通して提供されてもよい。
【００５８】
いくつかの実装では、クロスプラットフォームソフトウェアアプリケーションプロジェクトが作成されてもよい（２０４）。プロジェクトは、いくつかの実装では、クロスプラットフォームソフトウェアアプリケーションを開発するための１つ以上の開発ファイル、標的コンピュータデバイス、および他のリソースと関連付けられてもよい。新しいプロジェクトの作成時に、いくつかの実装では、１つ以上の基本提示ファイルが、（例えば、ローカルであるか、および／またはネットワーククラウドを介してアクセス可能である）プロジェクトディレクトリに追加されてもよい。基本提示ファイルは、例えば、アプリケーションインターフェースを提示するための大まかなフレームワークを提供する標準包含および構造を伴って構成されてもよい。いくつかの実装では、基本提示ファイルは、いくつかの実施例では、テキスト、制御、および画像を含む、アプリケーションの提示を表す、少なくとも１つのマークアップ言語ファイルを含んでもよい。さらに、いくつかの実装では、基本提示ファイルは、いくつかの実施例では、ユーザが開始したアクション（例えば、制御選択、テキスト入力、音声入力等）への応答およびデバイス事象への応答（例えば、デバイスセンサ事象への応答）等の行われるプログラムアクションをサポートし得る、１つ以上の解釈言語ファイルを加えて、実行時に提示するために適用され得る、スタイルを表すための１つ以上のスタイルシートファイルを含んでもよい。特定の実施例では、基本提示ファイルは、ウィンドウレスブラウザ提示エンジンと連動するためのＪａｖａ（登録商標）Ｓｃｒｉｐｔファイル、基本表示設定を確立するためのｓｔｙｌｅ．ｃｓｓファイル、および種々の提示ファイルをともにリンクするためのｉｎｄｅｘ．ｈｔｍｌファイルを含んでもよい。
【００５９】
いくつかの実装では、抽象化層ライブラリが、特定の無線コンピュータデバイスプラットフォームに含まれる、特徴、入出力要素、センサ、および／または周辺デバイスへの呼び出しを可能にするように含まれてもよい。例えば、Ａｐａｃｈｅ  Ｃｏｒｄｏｖａが、無線コンピュータデバイスプラットフォームの特徴へのアクセスを提供するように含まれてもよい。抽象化層を使用して利用可能な一般機能は、例えば、（例えば、アプリケーションプログラミングインターフェースを通して）個々のコンピュータデバイスプラットフォームの特定のセンサデバイス、入出力デバイス、または他の特徴にマップされてもよく、開発者が、プラットフォームごとのレベルで実装されるような特徴に関する特定の情報を把握することなく、これらの特徴と相互作用することを可能にする。いくつかの実施例では、抽象化層は、スピーカ要素、加速度計要素、全地球測位システム（ＧＰＳ）要素、または多くのコンピュータデバイスに共通する他の要素への一般的な呼び出しを含んでもよい。
【００６０】
いくつかの実装では、開発者が、新しいプロジェクトを作成することに先立って、新しいユーザアカウントを総合クラウド環境に登録するか、または総合クラウド環境で既存のアカウントにログインしてもよい。プロジェクト作成中に、１つ以上のプロジェクトディレクトリが、クロスプラットフォームソフトウェアアプリケーションの開発で使用されるプロジェクト材料（例えば、メタデータ、提示ファイル、メディアファイル、実行可能ファイル等）を記憶するために作成されてもよい。
【００６１】
いくつかの実装では、アプリケーション開発ユーザインターフェースが、クロスプラットフォームソフトウェアアプリケーションプロジェクト用の提示ファイルを開発するために提示されてもよい（２０６）。提示ファイルは、いくつかの実装では、クロスプラットフォームソフトウェアアプリケーションのユーザインターフェースとして実行時に解釈される、一式のプラットフォーム非依存型コンテンツファイルの一部分を形成してもよい。アプリケーション開発ユーザインターフェースは、いくつかの実装では、提示ファイル（例えば、ＨＴＭＬ、ＣＳＳ、およびＪａｖａ（登録商標）Ｓｃｒｉｐｔファイル等）を編集するためのエディタを含んでもよい。エディタは、いくつかの実装では、開発者がクロスプラットフォームソフトウェアアプリケーションプロジェクト用の一式の相互関連コンテンツファイルを容易に作成および修正することを可能にするように、構文着色、構文書式設定、リファクタリング、および／またはコードナビゲーション能力を含んでもよい。
【００６２】
いくつかの実装では、プロジェクトファイルナビゲーションインターフェースが、コンテンツファイルをクロスプラットフォームソフトウェアアプリケーションプロジェクトに追加するために提示されてもよい（２０８）。いくつかの実装では、プロジェクトファイルナビゲーションインターフェースは、１つ以上のコンピュータデバイスプラットフォームに関係するネイティブプラットフォームコードファイルを含有するいくつかのファイルおよびディレクトリ、ならびに提示ファイルおよびメディアファイル等のプラットフォーム非依存型コンテンツのファイルおよびディレクトリを含んでもよい。いくつかの実装では、ネイティブプラットフォームコードファイルは、ネットワーククラウドで管理されてもよい一方で、プラットフォーム非依存型ファイルは、開発コンピュータデバイス上でローカルに複製されてもよい。いくつかの実装では、開発者は、新しいクロスプラットフォームソフトウェアアプリケーションを開発する際に使用するように、他のプロジェクトディレクトリからのファイルを現在のプロジェクトディレクトリにコピーしてもよい。例えば、開発者は、総合クラウド環境で１つ以上のクロスプラットフォームソフトウェアアプリケーションをすでに作成していてもよい。開発者は、いくつかの実装では、音声、画像、およびビデオファイル等の１つ以上のローカルに記憶されたメディアファイルをプロジェクトファイルナビゲーションインターフェースの中へドラッグアンドドロップしてもよい。
【００６３】
いくつかの実装では、クロスプラットフォームソフトウェアアプリケーションのシミュレーションが、デバイスシミュレータにおいて実行されてもよい（２１０）。例えば、コンテンツファイルにおけるリンクの問題等のプロジェクトコンテンツの任意のプリコンパイラエラーを作成、編集、および解決した後に、開発者は、開発クライアントアプリケーションにおいて試験するためのクロスプラットフォームソフトウェアアプリケーションのシミュレータバージョンを構築することを選択してもよい。デバイスシミュレータは、いくつかの実装では、開発クライアントアプリケーションにおいてオーバーレイとしてレンダリングされてもよい。いくつかの実装では、デバイスシミュレータは、開発コンピュータデバイスの表示領域（例えば、内蔵または外部モニタ等）上で別個のアプリケーションとして立ち上がってもよい。デバイスシミュレータは、いくつかの実装では、いくつかの異なるコンピュータデバイスプラットフォームをシミュレートするように構成されてもよい。いくつかの実施例では、デバイスシミュレータは、種々のブランドおよびモデルのスマートフォン、ＰＤＡ、タブレットコンピュータ、ポータブルマルチメディアデバイス、および他のコンピュータデバイスまたはデバイスプラットフォームのためのシミュレーション構造を含んでもよい。いくつかの実装では、シミュレータは、異なるタイプ、ブランド、および／またはモデルのデバイスまたはデバイスプラットフォームをシミュレートするように、シミュレーション構造を変更するための制御を含んでもよい。
【００６４】
いくつかの実装では、開発者は、シミュレーション構造上で例証される制御を通して、シミュレーションと相互作用してもよい。例えば、開発者は、（例えば、タッチスクリーン上のジェスチャ、マウス、または他のポインティングデバイスを用いたクリック等を介して）シミュレーション構造でレンダリングされる内蔵キーボードのキー等のボタンまたは他の制御を選択してもよい。いくつかの実装では、開発者は、入力（例えば、ログイン情報、タッチスクリーンベースの制御への「タッチ」等）をデバイスシミュレータによってレンダリングされるシミュレートされたアプリケーションに提供するように、キーボードおよび／またはマウス等の開発コンピュータデバイスに接続された入力デバイスを使用してもよい。
【００６５】
いくつかの実装では、開発者は、入力「コマンド」のファイルをデバイスシミュレータに供給してもよい。例えば、試験提示ファイルは、いくつかの実施例では、地理位置情報および加速度計示度値等のクロスプラットフォームソフトウェアアプリケーションのシミュレーションへの入力をシミュレートするためのいくつかの入力コマンドを含有してもよい。
【００６６】
いくつかの実装では、デバイスシミュレータは、センサデータおよびデバイス配向等のユーザ入力をシミュレートするための特徴を含んでもよい。例えば、デバイスシミュレータは、地理位置情報、加速度情報、光センサ入力、マイクロホン入力、または他のシミュレートされた入力を提供するように、入力機構を含んでもよい。
【００６７】
シミュレートされたアプリケーションの機能性に基づくシミュレーション中に（２１２）、いくつかの実装では、クロスプラットフォームソフトウェアアプリケーションプロジェクトへの更新が受信されてもよい（２１４）。例えば、開発者は、シミュレートされたアプリケーションの挙動を調整するように、デバイスシミュレータと相互作用することと、１つ以上のコンテンツファイルを更新することとを切り替えてもよい。いくつかの実装では、シミュレートされたアプリケーションがデバイスシミュレータによって実行されている間に、実行時間中に解釈され得る１つ以上のコンテンツファイルへの更新が、シミュレートされたアプリケーションに適用されてもよい。いくつかの実装では、デバイスシミュレータのディスプレイは、開発者によって提供される変更を含む、シミュレートされたアプリケーションの外見を開発者に提示するように、更新されたコンテンツファイルに応答してリフレッシュされてもよい。いくつかの実施例では、更新されたコンテンツファイル内で行われる変更は、シミュレートされたデバイス構造または他のシミュレートされた入力との相互作用に応答して、レンダリングされたテキストのサイズ、位置、色、またはフォントスタイルを生じさせ、双方向制御を追加または除去し、背景画像を画面に追加し、またはシミュレートされたアプリケーションの挙動を修正してもよい。
【００６８】
ある時点で、開発者は、標的コンピュータデバイス上でクロスプラットフォームソフトウェアアプリケーションを実行することを決定してもよい。図２Ｂを参照すると、ローカル開発クライアントアプリケーションを伴う実装等のいくつかの実装では、方法２００は、その後に方法２７０が続いてもよく、１つ以上の標的コンピュータデバイスの選択を受信することから始まる（２１６）。いくつかの実装では、開発者が、利用可能なブランドおよび／またはモデルの標的コンピュータデバイスのリストから１つ以上の標的コンピュータデバイスを選択してもよい。いくつかの実装では、特定のブランドまたはモデルのコンピュータデバイスの指示よりもむしろ、標的コンピュータデバイスプラットフォームが開発者によって供給されてもよい。
【００６９】
いくつかの実装では、開発者が、（例えば、ユーザアカウントを通して）１つ以上のコンピュータデバイスをプロジェクトに、または総合クラウド環境に登録してもよい。いくつかの実装では、コンピュータデバイスのうちの１つ以上が、開発デバイスとして無線コンピューティングプラットフォーム（例えば、Ａｐｐｌｅ（登録商標）ｉＯＳＴＭ、Ｇｏｏｇｌｅ  ＡｎｄｒｏｉｄＴＭ等）に登録されてもよい。例えば、デバイスが、開発プロセス中に開発者による開発アプリケーションの直接ローディングを可能にするように、「開発デバイス」として支給されてもよい。開発デバイスの支給は、例えば、特定のコンピュータデバイスプラットフォームの判断によってもよい。いくつかの実装では、規定または証明書が、総合クラウド環境でデバイスを承認するように開発者によってアップロードされてもよい。供給された規定または証明書は、いくつかの実装では、コンピュータデバイスが開発者と関連付けられる任意のプロジェクトに関連して使用され得るように、ユーザアカウントと関連付けられてもよい。
【００７０】
この登録に関する情報は、いくつかの実装では、プロジェクトと関連付けられるように、メタデータとして総合クラウド環境に提供されてもよい。開発者は、いくつかの実装では、登録された標的コンピュータデバイスのリストから１つ以上の標的コンピュータデバイスを選択してもよい。
【００７１】
他の実装では、開発クライアントアプリケーションは、開発コンピュータデバイスと通信している１つ以上のコンピュータデバイスを識別してもよい。例えば、開発クライアントアプリケーションは、開発コンピュータデバイスと通信している各コンピュータデバイスの情報（例えば、識別子、プラットフォーム情報等）を取り出し、標的コンピュータデバイスとして選択するための候補として、これらをユーザに提示してもよい。いくつかの実装では、コンピュータデバイスの検出時に、総合クラウド環境は、コンピュータデバイスのプラットフォームが開発デバイスとしての支給を必要とするかどうかを判定してもよい。もしそうであれば、いくつかの実装では、総合クラウド環境は、関連プラットフォーム用の開発デバイスとしてのコンピュータデバイスの支給の証明を供給するように開発者に促してもよい。
【００７２】
いくつかの実装では、開発アプリケーション実行可能ファイルのコンパイルが開始されてもよい（２１８）。開発者は、いくつかの実装では、開発クライアントアプリケーションのユーザインターフェースを通して、選択標的コンピュータデバイス上にクロスプラットフォームソフトウェアアプリケーションをインストールするためのアプリケーション実行可能ファイルの生成を開始する、制御（例えば、「標的コンピュータデバイス上で実行する」、「標的コンピュータデバイス用の試験アプリケーションをコンパイルする」等）を選択してもよい。この制御の選択に応答して、例えば、開発クライアントアプリケーションは、選択される各標的コンピュータデバイス用のプラットフォーム特有のアプリケーション実行可能ファイル（例えば、実行可能アプリケーションファイル、インストールファイル等）のコンパイルを開始してもよい。いくつかの実装では、１つ以上のコンテンツファイルが、開発アプリケーション実行可能ファイルのコンパイルに含むために総合クラウド環境にアップロードされてもよい。
【００７３】
いくつかの実装では、１つ以上の開発アプリケーション実行可能ファイルが受信されてもよい（２２０）。例えば、開発コンピュータデバイスは、クラウドネットワークから１つ以上の開発アプリケーション実行可能ファイルを受信してもよい。いくつかの実装では、開発アプリケーション実行可能ファイルは、標的コンピュータデバイス上にインストールし、それと連動するプラットフォーム特有の機能およびフレームワークを含んでもよい。開発アプリケーション実行可能ファイルは、いくつかの実装では、標的コンピュータデバイスプラットフォームを介した検証および承認に使用されるデジタル署名を含んでもよい。開発アプリケーション実行可能ファイルは、いくつかの実装では、標的コンピュータデバイスにインストールした後の開発アプリケーションの部分的更新のための更新エージェントを含んでもよい。
【００７４】
いくつかの実装では、１つ以上の標的コンピュータデバイスが識別されてもよい（２２２）。例えば、１つ以上の標的コンピュータデバイスの選択に関連して行われない場合、開発クライアントアプリケーションは、開発コンピュータデバイスと通信している１つ以上の標的コンピュータデバイスを識別してもよい。いくつかの実装では、標的コンピュータデバイスは、開発コンピュータデバイスと直接（例えば、繋留、有線）通信してもよい。いくつかの実装では、標的コンピュータデバイスのうちの１つ以上は、開発コンピュータデバイスと無線通信してもよい。
【００７５】
各識別された標的コンピュータデバイス（２２６）については、いくつかの実装では、対応するアプリケーション実行可能ファイルが、標的コンピュータデバイスにプッシュ配信されてもよい（２２４）。いくつかの実装では、開発クライアントアプリケーションは、各実行可能ファイルをそれぞれの標的コンピュータデバイスにプッシュ配信してもよい。開発者は、いくつかの実装では、アプリケーション実行可能ファイルを対応する標的コンピュータデバイスに手動で転送してもよい。いくつかの実装では、アプリケーション実行可能ファイルは、標的コンピュータデバイスへのダウンロード時に自動的にインストールするように構成されてもよい。開発クライアントアプリケーションは、いくつかの実装では、標的コンピュータデバイスのうちの１つ以上へのダウンロードされたアプリケーション実行可能ファイルのインストールの実行を開始してもよい。いくつかの実装では、アプリケーション実行可能ファイルは、ダウンロード時にインストールし始めてもよい。開発者が、いくつかの実装では、標的コンピュータデバイスへのアプリケーション実行可能ファイルの手動インストールを開始してもよい。
【００７６】
いくつかの実装では、１つ以上の標的コンピュータデバイスが、無線ネットワーク上で識別されてもよい（２２８）。例えば、各標的コンピュータデバイス上の開発コンピュータデバイスアプリケーションのダウンロードおよびインストール後のある時点で、開発者は、開発コンピュータデバイスに以前に直接接続された標的コンピュータデバイスのうちの少なくとも１つを切断してもよい。さらに実施例として、標的コンピュータデバイスは、開発コンピュータデバイスと同一の無線ネットワーク（例えば、Ｗｉ−ＦｉＴＭ、Ｂｌｕｅｔｏｏｔｈ（登録商標）等）と通信してもよい。
【００７７】
いくつかの実装では、１つ以上のコンテンツファイルへの更新または１つ以上のコンテンツファイルの追加が受信されてもよい（２３０）。例えば、開発クライアントアプリケーションユーザインターフェースを介して、開発者は、標的コンピュータデバイスのうちの１つ以上の上で作動する開発アプリケーションとの相互作用中に、観察された挙動に応答して、コンテンツファイルのうちの１つ以上に修正を適用してもよい。例えば、ディスプレイの一部分が、予想通りにレンダリングされなくてもよく、または制御が、予想された様式で応答しなくてもよい。開発者は、いくつかの実装では、コンテンツファイルのうちの１つ以上の修正および／または１つ以上の新しいコンテンツファイルの追加を通して、修正を挙動に適用してもよい。修正された、および／または新しいコンテンツファイルが、実行時間中に解釈されるファイルのみを含む場合、いくつかの実装では、開発コンピュータデバイスアプリケーションに含まれる更新エージェントは、更新されたコンテンツファイルを受信し、開発コンピュータデバイスアプリケーションと統合するように構成されてもよい。
【００７８】
各標的コンピュータデバイス（２３８）については、標的コンピュータデバイスとの無線接続が利用可能である場合（２３２）、いくつかの実装では、更新および／または追加されたコンテンツファイルは、無線接続を経由して標的コンピュータデバイスにプッシュ配信されてもよい（２３４）。いくつかの実装では、開発アプリケーションに内蔵された更新エージェントは、無線ネットワークを経由して開発コンピュータデバイスとのファイル共有接続を確立するように構成されてもよい。他の実装では、ファイル共有接続が、更新エージェントの助けを借りずに標的コンピュータデバイスと開発コンピュータデバイスとの間に構成されてもよい。例えば、無線コンピュータデバイスプラットフォーム通信プロトコルが、無線標的コンピュータデバイスと開発コンピュータデバイスとの間に接続を確立するために使用されてもよい。標的コンピュータデバイスとの無線接続が利用可能ではない場合（２３２）、いくつかの実装では、更新および／または追加されたコンテンツファイルは、直接（例えば、有線、繋留）接続を経由して標的コンピュータデバイスにプッシュ配信されてもよい（２３６）。有線または無線状況のいずれか一方で、いくつかの実装では、開発クライアントアプリケーションは、開発アプリケーションによって使用されるコンテンツファイルを現在含有している、各標的コンピュータデバイス上のディレクトリ構造の中へコンテンツファイルをプッシュ配信してもよい。いくつかの実装では、開発アプリケーションの中にコンパイルされた更新エージェントは、一時ディレクトリの中にプッシュ配信された１つ以上のファイルを取り出し、アクティブディレクトリ（例えば、開発アプリケーションによって読み取られるディレクトリ）の中へファイルを移動させてもよい。
【００７９】
図２Ｃを参照すると、方法２００は、情報を標的コンピュータデバイスに提供することから始まって（２４０）、方法２８０を続けてもよい。例えば、プロジェクトのコンテンツファイルの準備時に、開発者がコンテンツファイルをダウンロードするネットワーク場所に標的コンピュータデバイスを指し示すために、参照が提供されてもよい。いくつかの実装では、クイックレスポンス（ＱＲ）コードが、開発コンピュータデバイスの表示領域内に提供されてもよい。例えば、ＱＲコード（登録商標）をスキャンして、コンテンツファイルが取得され得るユニバーサルリソースロケータ（ＵＲＬ）等のネットワーク場所を取り出すために、標的無線コンピュータデバイスのスキャン特徴が使用されてもよい。いくつかの実装では、場所が、例えば、テキストとして、またはハイパーリンクとして、開発コンピュータデバイスの表示領域に提供されてもよい。任意の付加的なデバイス（２４２）については、いくつかの実装では、ダウンロード情報が同様に提供されてもよい。
【００８０】
いくつかの実装では、標的コンピュータデバイスは、ダウンロード情報を使用してコンテンツファイルをダウンロードしてもよい（２４６）。いくつかの実装では、コンテンツファイルは、開発アプリケーションの機能性を実証するためのシェルとして挙動する、コンパニオンアプリケーションの中へダウンロードされてもよい。開発者は、続けて標的コンピュータデバイス上で開発アプリケーションを試験してもよい。
【００８１】
ある以降の時点で、いくつかの実装では、１つ以上のコンテンツファイルの追加、または１つ以上のコンテンツファイルへの更新が受信されてもよい（２４８）。例えば、開発クライアントアプリケーションユーザインターフェースを介して、開発者は、標的コンピュータデバイスのうちの１つ以上の上で作動する開発アプリケーションとの相互作用中に、観察された挙動に応答して、コンテンツファイルのうちの１つ以上に修正を適用してもよい。例えば、ディスプレイの一部分が、予想通りにレンダリングされなくてもよく、または制御が、予想された様式で応答しなくてもよい。開発者は、いくつかの実装では、コンテンツファイルのうちの１つ以上の修正および／または１つ以上の新しいコンテンツファイルの追加を通して、修正を挙動に適用してもよい。いくつかの実装では、コンパニオンアプリケーションは、更新された、および／または付加的なコンテンツファイルを受信して統合するように構成されてもよい。
【００８２】
特定の標的コンピュータデバイスとの接続が確立されている場合（２５０）、いくつかの実装では、コンテンツファイルは、標的コンピュータデバイスにプッシュ配信されてもよい（２５６）。例えば、コンテンツファイルの最初のダウンロード時に、いくつかの実装では、共有ネットワーク接続が、総合クラウド環境と標的コンピュータデバイスとの間に確立されてもよい。他の実装では、１つ以上のコンテンツファイルは、（例えば、クラウドネットワークから開発コンピュータデバイスへコンテンツファイルをダウンロードした後に）開発コンピュータデバイスから直接、標的コンピュータデバイスにプッシュ配信されてもよい。
【００８３】
いくつかの実装では、コンテンツファイルは、ダウンロードするために提供されてもよい（２５２）。例えば、コンテンツファイルは、最初の一式のコンテンツファイルと同一のネットワーク場所で、または異なるネットワーク場所でダウンロードするために提供されてもよい。
【００８４】
いくつかの実装では、標的コンピュータデバイスは、更新されたコンテンツファイルを引き出してもよい（２５４）。いくつかの実装では、開発者が、ＱＲコード（登録商標）、ＵＲＬ、または他の入力情報を使用して、ダウンロードを開始してもよい。他の実装では、ネットワーク場所は、（例えば、コンパニオンアプリケーションの特徴によって）標的コンピュータデバイス内に記憶されてもよく、コンテンツファイルは、開発者から特定の入力を受信すると自動的に引き出されてもよい。例えば、ディスプレイ内のメニューの選択時に、または標的コンピュータデバイスのタッチスクリーンを介して識別される特定のジェスチャ時に、コンテンツファイルは、標的コンピュータデバイスに引き出されてもよい。各付加的な標的コンピュータデバイス（２５８）については、コンテンツファイルの自動プッシュ配信（２５６）のための標的コンピュータデバイス（２５０）への接続があるか、またはコンテンツファイルが標的コンピュータデバイスに引き出される（２５４）かに応じて、コンテンツファイルは、標的コンピュータデバイスに転送されてもよい。
【００８５】
図３Ａを参照すると、フローチャートが、いくつかの実装では、クロスプラットフォームソフトウェアアプリケーションを開発するために使用され得る、方法３００を図示する。いくつかの実装では、方法３００は、クロスプラットフォームソフトウェアアプリケーションプロジェクトに関係する一式のコンテンツファイルを受信することから始まってもよい（３０２）。いくつかの実装では、コンテンツファイルは、実行時間中にプラットフォーム特有の開発アプリケーションによって解釈される情報として提供されてもよい。例えば、コンテンツファイルは、標的コンピュータデバイス上で実行される（例えば、「ウィンドウレス」ブラウザアプリケーション内の）ブラウザエンジン特徴を介して、アプリケーショングラフィカルユーザインターフェースを提示するように構成される、提示ファイルおよびメディアファイルを含んでもよい。いくつかの実装では、コンテンツファイルは、一式のコンテンツファイルを組み込む１つ以上のプラットフォーム特有のアプリケーション実行可能ファイルを生成するための総合クラウド環境等のネットワーク接続環境にアップロードされてもよい。コンテンツファイルに加えて、いくつかの実装では、プラットフォーム特有のアプリケーション実行可能ファイルの生成のための標的コンピュータデバイスプラットフォームに関する情報、無線コンピュータデバイスアプリケーションコードを伴うコンパイル時間包含のためのメディアまたは他のファイル（例えば、アプリケーションアイコンとして使用される画像等）、クロスプラットフォームソフトウェアアプリケーションの開発のために総合クラウド環境を使用するように登録される特定のプロジェクトまたは開発者に関する情報、および開発者が１つ以上の特定のコンピュータデバイスプラットフォーム用のコンピュータデバイスアプリケーションを開発する権限があるという証拠を提示する、登録情報、規定情報、または証明書情報等の他のファイルまたは情報が、いくつかの実施例では受信されてもよい。いくつかの実装では、１つ以上の他のファイルが、いくつかの実施例では、名前、メタデータ、またはファイル構造位置に基づいて、解釈ファイルよりもむしろコンパイル時間ファイルとして識別されてもよい。
【００８６】
コンテンツファイルおよび任意の他のファイルの目的および使用は、いくつかの実装では、クロスプラットフォームソフトウェアアプリケーションをデバイス特徴（例えば、センサ、入出力要素等）にアクセスするためのプラットフォーム特有のコマンドにマップするために使用される、抽象化層のディレクトリ構造を通して部分的に導出されてもよい。例えば、Ａｐａｃｈｅ  Ｃｏｒｄｏｖａ抽象化層を使用してアプリケーションを開発するために、コンテンツファイルが「ｗｗｗ」ファイルディレクトリの中に提供されてもよい。いくつかの実装では、抽象化層のディレクトリ構造は、部分的に、クロスプラットフォームソフトウェアアプリケーションを作成するときに開発者によってアクセスされる開発環境で提示されてもよい。
【００８７】
各標的コンピュータデバイスプラットフォームについては（３０８）、いくつかの実装では、コンテンツファイルは、標的コンピュータデバイスプラットフォーム用の一式のプロジェクトファイルを作成するように、特定の標的コンピュータデバイスプラットフォームにとってプラットフォーム特有であるプラットフォーム特有のファイルと組み合わせられてもよい（３０４）。いくつかの実装では、プラットフォーム特有のファイルは、デバイス特徴（例えば、センサ、入出力要素等）と連動するための抽象化層が、特定のコンピュータデバイスプラットフォームと通信することを可能にするように、プラットフォーム特有のライブラリを含んでもよい。いくつかの実装では、プラットフォーム特有のファイルは、特定のコンピュータデバイスプラットフォーム用のコンピュータデバイスアプリケーションを作成するためのソフトウェア開発キット（ＳＤＫ）から取得されてもよい。例えば、１つ以上のプラットフォーム特有のＳＤＫは、全体的または部分的に、クロスプラットフォームソフトウェアアプリケーションファイルに基づいてプラットフォーム特有のソフトウェアアプリケーション実行ファイルを生成するためのネットワーククラウド環境で展開されてもよい。
【００８８】
加えて、いくつかの実装では、コンテンツファイルは、クロスプラットフォームソフトウェアアプリケーションの機能性を可能にするように、他のクロスプラットフォームファイルと組み合わせられてもよい。例えば、コンテンツファイルは、１つ以上のコンピュータデバイスプラットフォーム上のクロスプラットフォームソフトウェアアプリケーションの機能性をサポートするように、ライブラリ、抽象化層、または他の構図と組み合わせられてもよい。特定の実施例では、コンテンツファイルは、Ａｐａｃｈｅ  Ｃｏｒｄｏｖａプラットフォームを組み込むディレクトリ構造にコピーされてもよい。
【００８９】
いくつかの実装では、更新エージェントはまた、標的コンピュータデバイス上にインストールされたときに、プラットフォーム特有の開発アプリケーションの更新を可能にするように、プロジェクトファイルと合併させられてもよい（３０６）。更新エージェントは、いくつかの実装では、標的コンピュータデバイス上で実行されるプラットフォーム特有の開発アプリケーションを識別するために開発コンピュータデバイスによって使用される、識別機構を提供するための１つ以上のアルゴリズムを含んでもよい。いくつかの実装では、更新エージェントは、開発コンピュータデバイスから更新されたコンテンツファイルを受信するために、標的コンピュータデバイスと開発コンピュータデバイスとの間のファイル共有接続を確立するための１つ以上のアルゴリズムを含んでもよい。更新エージェントは、いくつかの実装では、開発コンピュータデバイスから標的コンピュータデバイスにプッシュ配信される、更新された、または新しいファイル用のコンテンツファイルディレクトリまたは一時ディレクトリ等のディレクトリを監視するための１つ以上のアルゴリズムを含んでもよい。
【００９０】
各標的コンピュータデバイスプラットフォーム（３１４）については、いくつかの実装では、プロジェクトファイルは、標的コンピュータデバイスプラットフォーム用のそれぞれのプラットフォーム特有の開発アプリケーション実行可能ファイルを作成するようにコンパイルされてもよい（３１０）。いくつかの実装では、プラットフォーム特有の開発アプリケーション実行可能ファイル（例えば、インストール実行可能ファイル）が、プラットフォーム特有のＳＤＫの部分を使用して、総合クラウド環境で生成されてもよい。例えば、プラットフォーム特有のＳＤＫを通して提供されるコンパイルおよび構築動作が、プラットフォーム特有の開発アプリケーション実行可能ファイルをコンパイルおよび構築するように、クラウドネットワークを介してアクセスされてもよい。
【００９１】
各標的コンピュータデバイスプラットフォーム（３１４）については、さらに、いくつかの実装では、デジタル署名が特定の標的コンピュータデバイスプラットフォーム用の開発アプリケーション実行可能ファイルに追加されてもよい（３１２）。いくつかの実装では、コード署名技法が、コードの完全性を確保するためにコンピュータデバイスプラットフォームによって使用されてもよい。例えば、そのコンピュータデバイスプラットフォームを伴って構成された標的コンピュータデバイスがアプリケーションコードのソース（例えば、開発者、企業等）を認証することを可能にするように、デジタル署名が、プラットフォーム特有の開発実行可能ファイルに適用されてもよい。いくつかの実装では、コードと関連付けられる意図に関する情報を標的コンピュータデバイスに提供するように、デジタル署名が、プラットフォーム特有の開発アプリケーション実行可能ファイルに適用されてもよい。意図は、いくつかの実装では、どのデバイス能力がプラットフォーム特有の開発アプリケーションによってアクセスされるかを含んでもよい（例えば、地理位置、Ｗｉ−ＦｉＴＭ等）。意図は、例えば、プラットフォーム特有の開発アプリケーションに供給されるアクセスをユーザに知らせて、プラットフォーム特有の開発アプリケーションの機能性を可能にするように、ユーザに提示されてもよい。特定の実施例では、Ａｐｐｌｅ  ｉＯＳＴＭが、意図のステートメント、および認証された開発者証明書を含む、モバイル規定ファイルを受け取ってもよい。
【００９２】
いくつかの実装では、開発者によって提供されるメタデータが、デジタル署名を用いて実行ファイルを符号化するために使用されてもよい。いくつかの実施例では、特定のコンピュータデバイスプラットフォーム上に新しいコンピュータデバイスアプリケーションを開発する要求とともに開発者が提出したアプリケーションに基づいて、規定または証明書が開発者に供給されてもよい。規定または証明書に関する情報、またはいくつかの実装では、規定または証明書自体が、プラットフォーム特有の開発アプリケーション実行可能ファイルに含むために総合クラウド環境に供給されてもよい。
【００９３】
いくつかの実装では、プラットフォーム特有の開発アプリケーション実行可能ファイルは、開発コンピュータデバイスに提供されてもよい（３１６）。例えば、総合クラウド環境は、開発アプリケーション実行可能ファイルを標的コンピュータデバイス上のディレクトリにアップロードされてもよい。いくつかの実装では、プラットフォーム特有の開発アプリケーション実行可能ファイルは、一時ディレクトリの中に配置されてもよい。他の実装では、開発者は、プラットフォーム特有の開発アプリケーション実行可能ファイルのダウンロードを要求してもよい。
【００９４】
いくつかの実装では、コンテンツファイルは、バージョン制御プロジェクトディレクトリに記憶されてもよい（３１８）。例えば、コンテンツファイルの複数のバージョンが、開発の以前の段階に逆行するために、またはチーム内の付加的な開発者と共有するために、総合クラウド環境で維持されてもよい。いくつかの実装では、プロジェクトファイルおよび／またはプラットフォーム特有の開発アプリケーション実行可能ファイルも、バージョン制御プロジェクトディレクトリに記憶されてもよい。いくつかの実装では、規定または証明書データ等のデジタル署名データが、プロジェクトディレクトリの中で維持されてもよい。他の実装では、規定または証明書データのコピーが、例えば、デジタル署名データの盗用および悪用から開発者を保護するように、デジタル署名として含んだ後に削除されてもよい。
【００９５】
図３Ｂを参照すると、いくつかの実装では、フローチャートが、クロスプラットフォームソフトウェアアプリケーションを開発するために使用され得る、方法３３０を図示する。いくつかの実装では、方法３３０は、クロスプラットフォームソフトウェアアプリケーションプロジェクトに関係する一式のコンテンツファイルを取り出すことから始まってもよい（３３２）。いくつかの実装では、コンテンツファイルは、実行時間中にプラットフォーム特有の開発アプリケーションによって解釈される情報として提供されてもよい。例えば、コンテンツファイルは、標的コンピュータデバイス上で実行される（例えば、「ウィンドウレス」ブラウザアプリケーション内の）ブラウザエンジン特徴を介して、アプリケーショングラフィカルユーザインターフェースを提示するように構成される、提示ファイルおよびメディアファイルを含んでもよい。コンテンツファイルに加えて、いくつかの実装では、プラットフォーム特有のアプリケーション実行可能ファイルの生成のための標的コンピュータデバイスプラットフォームに関する情報、開発アプリケーションコードを伴うコンパイル時間包含のためのメディアまたは他のファイル（例えば、アプリケーションアイコンとして使用される画像等）、クロスプラットフォームソフトウェアアプリケーションの開発のために総合クラウド環境を使用するように登録される特定のプロジェクトまたは開発者に関する情報、および開発者が１つ以上の特定のコンピュータデバイスプラットフォーム用のコンピュータデバイスアプリケーションを開発する権限があるという証拠を提示する、登録情報、規定情報、または証明書情報等の他のファイルまたは情報が、いくつかの実施例では受信されてもよい。いくつかの実装では、１つ以上の他のファイルが、いくつかの実施例では、名前、メタデータ、またはファイル構造位置に基づいて、解釈ファイルよりもむしろコンパイル時間ファイルとして識別されてもよい。
【００９６】
コンテンツファイルおよび任意の他のファイルの目的および使用は、いくつかの実装では、クロスプラットフォームソフトウェアアプリケーションをデバイス特徴（例えば、センサ、入出力要素等）にアクセスするためのプラットフォーム特有のコマンドにマップするために使用される、抽象化層のディレクトリ構造を通して部分的に導出されてもよい。例えば、Ａｐａｃｈｅ  Ｃｏｒｄｏｖａ抽象化層を使用してアプリケーションを開発するために、コンテンツファイルが「ｗｗｗ」ファイルディレクトリの中に提供されてもよい。いくつかの実装では、抽象化層のディレクトリ構造は、部分的に、クロスプラットフォームソフトウェアアプリケーションを作成するときに開発者によってアクセスされる開発環境で提示されてもよい。
【００９７】
いくつかの実装では、記憶アドレスが判定されてもよい（３３４）。例えば、ネットワーク場所またはＵＲＬが、コンテンツファイルをネットワーク接続された標的コンピュータデバイスに提供するために識別されてもよい。記憶アドレスは、いくつかの実装では、既知の標的コンピュータデバイス（例えば、認識される一意の識別子）のみに、または総合クラウド環境のセキュリティ要素によって認識される識別情報（例えば、ユーザ識別、パスワード等）を有する要求側によってアクセス可能なアドレスであってもよい。
【００９８】
いくつかの実装では、要求が記憶アドレスで受信されてもよい（３３６）。いくつかの実装では、要求は、１つ以上のコンテンツファイルのダウンロードのためのものであってもよい。要求は、いくつかの実装では、既知の、または識別可能な標的コンピュータデバイスによって受信されてもよい。標的コンピュータデバイスのユーザは、いくつかの実装では、コンテンツファイルをダウンロードすることを可能にされることに先立って、認証情報を提供してもよい。
【００９９】
いくつかの実装では、コンテンツファイルは、要求標的コンピュータデバイスに提供されてもよい（３３８）。例えば、標的コンピュータデバイスによって提供される標的コンピュータデバイスまたはユーザ情報の認証時に、１つ以上のコンテンツファイルが標的コンピュータデバイスにダウンロードされてもよい。
【０１００】
以降の時点で、いくつかの実装では、コンテンツファイルへの更新が受信されてもよい（３４０）。例えば、開発者が、開発クライアントアプリケーション内のプロジェクトに変更を行ってもよい。更新されたンテンツファイルは、いくつかの実装では、１つ以上の標的コンピュータデバイスによるダウンロードのために利用可能にされてもよい。
【０１０１】
特定の標的コンピュータデバイスが、更新されたコンテンツファイルの自動受信のために更新される場合（３４２）、いくつかの実装では、コンテンツファイルが標的コンピュータデバイスにプッシュ配信されてもよい（３３８）。例えば、確立されたネットワーク接続を使用して、コンテンツファイルは、自動的に標的コンピュータデバイスに提供されてもよい。いくつかの実装では、標的コンピュータデバイス上で実行されるコンパニオンアプリケーションが、総合クラウド環境とのコンテンツファイル共有接続を確立してもよい。
【０１０２】
そうでなければ、いくつかの実装では、更新されたコンテンツファイルの要求が記憶アドレスで受信されてもよい（３４４）。いくつかの実装では、記憶アドレスは、クロスプラットフォームソフトウェアアプリケーションプロジェクトに関係するコンテンツファイルを提供するために、最初に判定された記憶アドレス（３３４）と同一であり得る。記憶アドレスは、いくつかの実装では、判定され、標的コンピュータデバイスの表示領域上で、例えば、ＱＲコード（登録商標）、ＵＲＬ、またはテキストメッセージとして開発者に提供されてもよい。コンテンツファイルは、いくつかの実装では、記憶アドレスから標的コンピュータデバイスにダウンロードされてもよい。
【０１０３】
図４Ａは、いくつかの実装では、クロスプラットフォームソフトウェアアプリケーションの開発バージョンの部分的更新を行うために使用され得る、方法４００のフローチャートを図示する。いくつかの実装では、方法４００は、開発アプリケーション実行ファイルをダウンロードすることから始まってもよい（４０２）。開発アプリケーション実行ファイルは、いくつかの実装では、標的コンピュータデバイス上で開発アプリケーションを試験しながら、コンテンツファイルを自動的に更新するための更新エージェント特徴を用いてコンパイルされた開発アプリケーションをインストールするために使用されてもよい。いくつかの実装では、開発アプリケーション実行ファイルは、開発コンピュータデバイスから繋留された標的コンピュータデバイスにプッシュ配信されてもよい。他の実装では、開発アプリケーション実行ファイルは、無線ネットワーク接続を経由して開発コンピュータデバイスから標的コンピュータデバイスにプッシュ配信されてもよい。
【０１０４】
いくつかの実装では、開発アプリケーション実行ファイルは、開発アプリケーションをインストールするように実行されてもよい（４０４）。開発アプリケーションは、いくつかの実装では、一式の提示ファイルからユーザインターフェース命令を解釈する、ブラウザエンジン特徴（例えば、「ウィンドウレス」ブラウザインターフェース）を使用して生成される、インターフェースを含んでもよい。提示ファイルは、いくつかの実装では、開発アプリケーションに符号化されるコンテンツファイルディレクトリにインストールされてもよい。
【０１０５】
いくつかの実装では、開発コンピュータデバイスとのファイル更新接続が開放されてもよい（４０６）。いくつかの実装では、開発アプリケーションの更新エージェント特徴は、ファイル共有接続を確立するように開発コンピュータデバイスと通信してもよい。更新エージェントは、いくつかの実装では、標的コンピュータデバイス上で作動するようにコンパイルされる開発アプリケーションを識別する一意の識別子を開発コンピュータデバイスに伝送するか、または別様に利用可能にしてもよい。
【０１０６】
いくつかの実装では、開発アプリケーションが作動していてもよい（４０８）。例えば、開発者が、開発アプリケーションと直接相互作用しているか、または相互作用を引き起こしていてもよい（例えば、試験入力を標的コンピュータデバイスに供給する）。
【０１０７】
いくつかの実装では、コンテンツファイルが修正されてもよい（４１０）。標的コンピュータデバイス上で開発アプリケーションを試験しながら、いくつかの実装では、開発者が、開発アプリケーションの性能に関する問題を発見し得る。いくつかの実装では、開発者は、開発アプリケーションの性能を変更するように１つ以上のコンテンツファイルを更新し、更新されたコンテンツファイルを標的コンピュータデバイスにプッシュ配信してもよい。例えば、開発者は、開発アプリケーションのユーザインターフェースにおける制御の位置を変更してもよい。開発クライアントアプリケーションユーザインターフェースにおいて保存制御を選択すると、いくつかの実装では、更新されたコンテンツファイルは、更新エージェント特徴とともに開発アプリケーションを実行する１つ以上の標的コンピュータデバイスに自動的にプッシュ配信されてもよい。いくつかの実装では、開発者が、コンテンツファイルを標的コンピュータデバイスにプッシュ配信するように開発クライアントアプリケーションに命令する、制御を能動的に選択してもよい。
【０１０８】
いくつかの実装では、標的コンピュータデバイス上で機能する更新エージェントは、１つ以上のコンテンツファイルの転送を受け入れてもよい。コンテンツファイルは、いくつかの実装では、コンテンツファイルディレクトリ（例えば、ユーザインターフェース情報を解釈するために開発アプリケーションによって使用されているディレクトリ）にプッシュ配信されてもよい。いくつかの実装では、コンテンツファイルは、一時ディレクトリにプッシュ配信されてもよい。例えば、更新エージェントは、１つ以上の更新されたコンテンツファイルの受信を認識し、更新されたコンテンツファイルを開発アプリケーションによって読み取られるコンテンツファイルディレクトリの中へ移動させてもよい。いくつかの実装では、更新されたコンテンツファイルのみを受信するよりもむしろ、開発クライアントアプリケーションは、更新された提示ファイルおよび新しいコンテンツファイル（例えば、スクリプト言語での包含ステートメントを通して更新された提示ファイルの中へリンクされる等）を標的コンピュータデバイスにプッシュ配信してもよい。
【０１０９】
いくつかの実装では、実行開発アプリケーションの現在のページ（例えば、表示、ユーザインターフェース画像等）が、修正されたコンテンツファイルの受信に応答して、強制的にリフレッシュされてもよい（４１２）。いくつかの実装では、更新エージェントが、開発アプリケーションのユーザインターフェースをリフレッシュするためのアルゴリズムを含んでもよい一方で、開発アプリケーションは、同一の点から作動し続ける。例えば、提示ファイルが、現在表示されているユーザインターフェースの表示上の制御の位置まで移動するように更新された場合、ページのリフレッシュは、ユーザインターフェース内の制御の新しい位置の即時の表示を引き起こしてもよい。このようにして、いくつかの実装では、開発アプリケーションの機能性の顕著な遅延または再起動を引き起こすことなく、開発アプリケーションの挙動への修正が行われてもよい。他の実装では、更新エージェントは、コンテンツファイルが更新されている間に開発アプリケーションを停止または一時停止し、次いで、更新されたコンテンツファイルを使用し始めるように、開発アプリケーションを再起動するか、または開発アプリケーションを再ロードしてもよい。
【０１１０】
図４Ｂは、いくつかの実装では、クロスプラットフォームソフトウェアアプリケーションの開発バージョンの部分的更新を行うために使用され得る、方法４２０のフローチャートを図示する。いくつかの実装では、方法４２０は、コンパニオンアプリケーションが標的コンピュータデバイス上にインストールされているかどうかを判定することから始まってもよい（４２２）。いくつかの実装では、コンパニオンアプリケーションインストールファイル、アプリケーションファイル、または他のインジケータが標的コンピュータデバイス上に位置しない場合、コンパニオンアプリケーションインストール実行ファイルがダウンロードされてもよい（４２４）。いくつかの実装では、コンパニオンアプリケーションインストール実行ファイルは、例えば、標的コンピュータデバイスからコンパニオンアプリケーションを閲覧または検索することによって、アプリケーションストアからダウンロードされてもよい。いくつかの実装では、コンパニオンアプリケーションインストール実行ファイルは、ネットワーク記憶場所でアクセスされてもよい。例えば、ＵＲＬには、コンパニオンアプリケーションインストール実行ファイルのダウンロードについての情報が提供されてもよい。記憶場所は、いくつかの実施例では、開発コンピュータデバイスおよび／または標的コンピュータデバイスの表示領域にレンダリングされる、ＱＲコード（登録商標）またはテキスト内に提供されてもよい。
【０１１１】
コンパニオンアプリケーションは、いくつかの実装では、クロスプラットフォームソフトウェアアプリケーションのコンテンツファイルをレンダリングするように構成されるウィンドウレスブラウザ機能性を含んでもよい。ウィンドウレスブラウザ機能性はさらに、いくつかの実装では、特定のコンピュータデバイスプラットフォームに含まれる、特徴、入出力要素、センサ、および／または周辺デバイスへの呼び出しを可能にするように、抽象化層ライブラリを含んでもよい。例えば、Ａｐａｃｈｅ  Ｃｏｒｄｏｖａが、コンピュータデバイスプラットフォームの特徴へのアクセスを提供するように含まれてもよい。ウィンドウレスブラウザ内でレンダリングされるコンテンツファイルは、いくつかの実装では、抽象化層を使用して利用可能な一般機能を含む。いくつかの実施例では、一般機能は、（例えば、アプリケーションプログラミングインターフェースを通して）個々のコンピュータデバイスプラットフォームの特定のセンサデバイス、入出力デバイス、または他の特徴にマップされてもよい。一般機能は、例えば、プラットフォームごとのレベルで実装されるような特徴に関する特定の情報を把握することなく、開発者がこれらの特徴と相互作用するための機会を提供してもよい。例えば、抽象化層は、スピーカ要素、加速度計要素、全地球測位システム（ＧＰＳ）要素、または多くのコンピュータデバイスに共通する他の要素への一般的な呼び出しを含んでもよい。
【０１１２】
いくつかの実装では、コンパニオンアプリケーションは、クロスプラットフォームソフトウェアアプリケーションの開発のための総合クラウド環境で作成される２つ以上のクロスプラットフォームソフトウェアアプリケーションプロジェクトを管理するように、管理特徴を含んでもよい。例えば、２つ以上のクロスプラットフォームソフトウェアアプリケーションプロジェクトに関係するコンテンツファイルが、標的コンピュータデバイスにダウンロードされ、コンパニオンアプリケーションによって管理されてもよい。
【０１１３】
コンパニオンアプリケーションは、いくつかの実装では、１つ以上のクロスプラットフォームソフトウェアアプリケーションプロジェクトのためのコンテンツファイルをダウンロードして管理するための機能性を含んでもよい。例えば、コンパニオンアプリケーションは、コンテンツファイルを提供する開発サーバを用いて標的コンピュータデバイスを認証するように、認証情報を管理してもよい。いくつかの実装では、コンパニオンアプリケーションは、管理されたクロスプラットフォームソフトウェアアプリケーションプロジェクトのそれぞれのためのコンテンツファイルをダウンロードするための記憶場所を追跡してもよい。
【０１１４】
いくつかの実装では、開発アプリケーションコンテンツファイルが、標的コンピュータデバイスにダウンロードされてもよい（４２６）。いくつかの実装では、ダウンロードアドレスを取得するように、例えば、標的コンピュータデバイスのスキャン機能を使用して、標的コンピュータデバイスの表示領域にレンダリングされるＱＲコード（登録商標）がスキャンされてもよい。いくつかの実装では、コンパニオンアプリケーションは、ネットワーク記憶場所からのコンテンツファイルのダウンロードをサポートするための機能性を含んでもよい。例えば、ユーザ証明書（例えば、開発者ユーザｉｄ、パスワード、プロジェクト名等）に基づいて、コンパニオンアプリケーションは、ダウンロードのためのオプションとして、１つ以上のプロジェクト識別子を引き出してもよい。コンパニオンアプリケーションは、例えば、コンテンツファイルをコンパニオンアプリケーションにダウンロードするためのオプションのリストを例証するメニューを含んでもよい。コンテンツファイルは、いくつかの実装では、ダウンロード時にコンパニオンアプリケーションによって組織化されてもよい。例えば、コンパニオンアプリケーションは、２つ以上のクロスプラットフォームソフトウェアアプリケーションプロジェクトに関係するコンテンツファイル用の別個のディレクトリを作成してもよい。
【０１１５】
いくつかの実装では、開発アプリケーションのコンテンツファイルが、コンパニオンアプリケーションフレームワーク内でレンダリングされてもよい（４２８）。例えば、コンパニオンアプリケーションは、その内側でコンテンツファイルがレンダリングされ得る、ウィンドウレスブラウザ特徴を供給してもよい。さらに、いくつかの実装では、コンパニオンアプリケーションは、抽象化層ライブラリを含んでもよい。抽象化層ライブラリは、例えば、特定のコンピュータデバイスプラットフォームに含まれる、特徴、入出力要素、センサ、および／または周辺デバイスへの呼び出しを可能にしてもよい。抽象化層を使用して利用可能な一般機能は、例えば、（例えば、アプリケーションプログラミングインターフェースを通して）個々のコンピュータデバイスプラットフォームの特定のセンサデバイス、入出力デバイス、または他の特徴にマップされてもよく、開発者が、プラットフォームごとのレベルで実装されるような特徴に関する特定の情報を把握することなく、これらの特徴と相互作用することを可能にする。いくつかの実施例では、抽象化層は、スピーカ要素、加速度計要素、全地球測位システム（ＧＰＳ）要素、または多くのコンピュータデバイスに共通する他の要素への一般的な呼び出しを含んでもよい。
【０１１６】
後に、いくつかの実装では、クロスプラットフォームソフトウェアアプリケーションの開発のための総合クラウド環境内のコンテンツファイルが修正されてもよい（４３０）。いくつかの実装では、開発者が、クロスプラットフォームソフトウェアアプリケーションプロジェクトに修正を行ってもよい。開発者は、例えば、１つ以上の標的コンピュータデバイスに提供するための１つ以上のコンテンツファイルを手動で提供してもよい。別の実施例では、１つ以上のコンテンツファイルが、例えば、プロジェクトファイルを保存すると、取り出すために記憶場所に自動的に配置されてもよい。
【０１１７】
いくつかの実装では、自動更新が標的コンピュータデバイス上で利用可能であり得る。例えば、１つ以上のコンテンツファイルが追加または変更されてもよい。いくつかの実装では、コンパニオンアプリケーションは、修正されたコンテンツファイルの記憶場所を監視するための機能性を含んでもよい。例えば、コンパニオンアプリケーションは、１つ以上のコンテンツファイルが、現在の実行開発アプリケーション用のダウンロードされたコンテンツファイルとは異なることを判定してもよい。自動更新が利用可能である場合（４３２）、修正されたコンテンツファイルが自動的に受信されてもよい（４３６）。
【０１１８】
代わりに、自動更新オプションがない場合、または自動更新が標的コンピュータデバイス上で起動されない場合、いくつかの実装では、修正されたコンテンツファイルをダウンロードする要求を示すジェスチャが受信されてもよい（４３４）。ユーザが、いくつかの実装では、開発アプリケーション用のコンテンツファイルのダウンロードを開始するようにコンパニオンアプリケーション内で実行しながら、タッチスクリーンジェスチャを入力してもよい。例えば、ユーザが、コンテンツファイルのダウンロードを開始するように、３本の指でタップして少なくとも１秒間保持してもよい。他の実施例では、ユーザが、コンテンツファイルのダウンロードを開始するために、特定のドラッギングパターンまたはタッピングパターンを使用してもよい。いくつかの実装では、開発アプリケーションの実行中に、開発者が、コンテンツファイルのダウンロードを開始するように、コンパニオンアプリケーションのメニューモードになってもよい。例えば、開発者は、コンテンツファイルのダウンロードを開始するように、標的コンピュータデバイス上のメニューまたはオプションキーを選択してもよい。
【０１１９】
いくつかの実装では、コンテンツファイルが受信されてもよい（４３６）。例えば、開発アプリケーションコンテンツファイルの以前に取得された記憶場所を使用して、標的コンピュータデバイスは、更新コンテンツファイルをダウンロードしてもよい。いくつかの実装では、コンパニオンアプリケーションは、更新されたコンテンツファイルのダウンロードを管理してもよい。例えば、コンパニオンアプリケーションは、コンテンツファイルにアクセスするための記憶場所の指示（例えば、アドレス等）を維持してもよい。いくつかの実装では、コンパニオンアプリケーションは、コンテンツファイルの承認された受信側として標的コンピュータデバイスを認証する、認証情報を提供してもよい。いくつかの実装では、一式のコンテンツファイル全体が、標的コンピュータデバイスにダウンロードされてもよい。コンテンツファイルのサブセット（例えば、追加および／または変更されるもの）が、いくつかの実装では、標的コンピュータデバイスにダウンロードされてもよい。
【０１２０】
いくつかの実装では、実行開発アプリケーションの現在のページのリフレッシュが強制されてもよい（４３８）。いくつかの実装では、コンパニオンアプリケーションが、開発アプリケーションのユーザインターフェースをリフレッシュするためのリフレッシュ特徴を含んでもよい一方で、開発アプリケーションが、同一の点から作動し続ける。例えば、提示ファイルが、現在表示されているユーザインターフェースのページ上の制御の位置まで移動するように更新された場合、ページのリフレッシュは、ユーザインターフェース内の制御の新しい位置の即時の表示を引き起こしてもよい。このようにして、いくつかの実装では、開発アプリケーションの機能性の顕著な遅延または再起動を引き起こすことなく、開発アプリケーションの挙動への修正が行われてもよい。他の実装では、コンパニオンアプリケーションは、コンテンツファイルが更新されている間に開発アプリケーションを停止または一時停止し、次いで、更新されたコンテンツファイルを使用し始めるように、開発アプリケーションを再起動するか、または開発アプリケーションを再ロードしてもよい。
【０１２１】
図５Ａ−５Ｈは、クロスプラットフォームソフトウェアアプリケーションを開発するための例示的ユーザインターフェースの一連のスクリーンショットを図示する。スクリーンショットは、いくつかの実装では、開発クライアントアプリケーションにおいて作業する開発者に利用可能な特徴を表してもよい。いくつかの実装では、スクリーンショットは、ウェブクライアントアプリケーションを介して開発クライアントアプリケーションにおいて作業する開発者に利用可能な特徴を表してもよい。例えば、ウェブクライアントアプリケーションは、開発クライアントアプリケーションを使用する開発者にインターフェースを提供するように、ウェブブラウザプログラム内でレンダリングされてもよい。
【０１２２】
図５Ａを参照すると、第１のスクリーンショット５００は、いくつかの実装では、クロスプラットフォームソフトウェアアプリケーション用の新しいクロスプラットフォームソフトウェアアプリケーションプロジェクトを作成するためのユーザインターフェースを図示し得る。第１のスクリーンショット５００と相互作用する開発者は、いくつかの実装では、クロスプラットフォームソフトウェアアプリケーションの開発のために、総合クラウド環境で開発者アカウントにログインされてもよい。いくつかの実装では、第１のスクリーンショット５００は、インターネットブラウザ内で提示されてもよい。スクリーンショット５００は、いくつかの実装では、クライアントソフトウェアアプリケーションの一部として提示されてもよい。メニューバー５０２は、新しい制御５０４ａと、マイプロジェクト制御５０４ｂとを含む。新しい制御５０４ａの選択は、いくつかの実装では、例えば、第１のスクリーンショット５００のメインパネル５０８の中で、新しいプロジェクトダイアログボックス５０６の提示を引き起こしてもよい。いくつかの実装では、開発者は、テキスト入力ボックス５１０内にプロジェクトワークスペース名を追加してもよい。例えば、プロジェクトワークスペース名は、クロスプラットフォームソフトウェアアプリケーションのタイプまたはタイトルを示してもよい。
【０１２３】
いくつかの実装では、開発者は、新しいプロジェクトに関係する簡潔な説明を入力するように、説明制御５１２を選択してもよい。いくつかの実装では、プロジェクト名および／またはプロジェクト説明は、新しいコンピュータデバイスアプリケーションの開発のためにコンピュータデバイスプラットフォームから許可を取得するように、総合クラウド環境に提供されてもよい。例えば、あるコンピュータデバイスプラットフォームは、コンピュータデバイスプラットフォーム上にインストールするための承認されたアプリケーションを開発する承認を受信するように、開発者の生物学的情報およびプロジェクト情報等のメタデータを使用した登録を伴ってもよい。いくつかの実装では、総合クラウド環境は、例えば、要求情報を事前構成することによって、開発者がそのような承認を取得することを可能にしてもよい。
【０１２４】
新しいプロジェクトを作成することなくダイアログボックス５０６を閉鎖するために、いくつかの実装では、開発者は、キャンセル制御５１６を選択してもよい。新しいプロジェクトダイアログボックス５０６内に含有される情報を容認するために、いくつかの実装では、開発者は、ＯＫ制御５１４を選択してもよい。ＯＫ制御５１４の選択時に、いくつかの実装では、総合クラウド環境は、いくつかの実施例では、プロジェクトメタデータ、ローカルメモリおよび／またはネットワーク接続ファイルリポジトリの中のプロジェクトディレクトリ構造、およびクロスプラットフォームソフトウェアアプリケーションを開発するための基本提示ファイル等の１つ以上のプロジェクトファイル等のプロジェクトコンテンツを開発者の代わりに生成してもよい。
【０１２５】
ＯＫ制御５１４の選択を介した新しいプロジェクトの作成時に、いくつかの実装では、プロジェクトは、メニューバー５０２の中のマイプロジェクト制御５１４ｂの選択を介してアクセス可能であり得る。
【０１２６】
図５Ｂを参照すると、第２のスクリーンショット５２０は、いくつかの実装では、クロスプラットフォームソフトウェアアプリケーションを開発するために既存のクロスプラットフォームソフトウェアアプリケーションプロジェクトを開くためのユーザインターフェースを図示し得る。スクリーンショット５２０で図示されるように、メニューバー５０２の中のマイプロジェクト制御５０４ｂが選択されてもよい。開くダイアログボックス５２２は、第１のプロジェクト名５２４「Ｈｅｌｌｏ  Ｗｏｒｌｄ」を提示してもよい。いくつかの実装では、任意の数のプロジェクト名が、開くダイアログボックス５２２内で可視的であり得る。例えば、開発者は、利用可能なプロジェクト名のリストから第１のプロジェクト名５２４を選択してもよい（例えば、マウスオーバー、シングルクリック等）。いくつかの実装では、プロジェクトは、図５Ａに関連して説明されるように、新しいダイアログボックス５０６を使用して作成されていてもよい。いくつかの実装では、ワークスペース名「Ｈｅｌｌｏ  Ｗｏｒｌｄ」が、図５Ａのテキスト入力ボックス５１０に入力されていてもよい。
【０１２７】
開くダイアログボックス５２２は、説明制御５２６を含む。いくつかの実装では、説明制御５２６は、（例えば、説明制御５１２の選択時に図５Ａに関連して説明されるような）新しいダイアログボックス５０６を通して入力された情報を提示してもよい。例えば、説明制御５２６は、選択されたプロジェクト（例えば、プロジェクト名５２４「Ｈｅｌｌｏ  Ｗｏｒｌｄ」）に関係する簡潔な説明を閲覧するように選択されてもよい。簡潔な説明は、いくつかの実装では、いくつかの実施例では、開発者名または識別子、作成日、プロジェクトに行われた最後の修正のタイムスタンプ等の選択されたプロジェクトに関するメタデータをさらに含んでもよい。
【０１２８】
いくつかの実装では、クロスプラットフォームソフトウェアアプリケーションプロジェクトが、２人以上の開発者によってアクセスされ、修正されてもよい。例えば、開発チームが、選択されたプロジェクト名５２４内に含有されるファイルへのアクセスを共有してもよい。この場合、例えば、クロスプラットフォームソフトウェアアプリケーションプロジェクトと関連付けられるメタデータは、クロスプラットフォームソフトウェアアプリケーションプロジェクトに貢献する権限がある開発者のリストを含んでもよい。いくつかの実装では、種々の開発者が、種々の許可を有してもよい。例えば、一部の開発者が、読取専用アクセスを有してもよい一方で、他の開発者は、選択されたクロスプラットフォームソフトウェアアプリケーションプロジェクトのファイルへの読み書きアクセスを有してもよい。
【０１２９】
クロスプラットフォームソフトウェアアプリケーションプロジェクトを選択することなくダイアログボックス５２２を閉じるために、いくつかの実装では、開発者は、キャンセル制御５２９を選択してもよい。開くダイアログボックス５２２内で選択されるクロスプラットフォームソフトウェアアプリケーションプロジェクトを開くために、いくつかの実装では、開発者は、ＯＫ制御５２８を選択してもよい。ＯＫ制御５２８の選択時に、いくつかの実装では、総合クラウド環境は、「Ｈｅｌｌｏ  Ｗｏｒｌｄ」と名付けられたクロスプラットフォームソフトウェアアプリケーションに関係するプロジェクトファイルと連動するためのインターフェースを開発者に提示してもよい。
【０１３０】
図５Ｃを参照すると、第３のスクリーンショット５３０は、いくつかの実装では、開発者がクロスプラットフォームソフトウェアアプリケーションを作成、編集、およびシミュレートするための開発環境を図示し得る。図示されるように、第３のスクリーンショット５３０は、いくつかの実装では、ファイルを追加すること、プロジェクトコンテンツを保存すること、およびアプリケーションを作動すること等の特定のアクションを選択するためのメニューバー５３２と、クロスプラットフォームソフトウェアアプリケーションプロジェクトに関係するコンテンツを編集するための編集ペイン５３４と、クロスプラットフォームソフトウェアアプリケーションプロジェクトと関連付けられるコンテンツを組織化して選択するためのファイルナビゲーションペイン５３６と、開発アプリケーションを試験するための標的コンピュータデバイスを追加または選択するためのデバイスペイン５３８とを含んでもよい。異なるクロスプラットフォームソフトウェアアプリケーションプロジェクトを開くため、または新しいクロスプラットフォームソフトウェアアプリケーションプロジェクトを作成するために、いくつかの実装では、ユーザは、例えば、図５Ａおよび５Ｂによって表されるようなメインユーザインターフェースに戻るように、メニューバー５３２の中のホーム制御５４６ａを選択してもよい。
【０１３１】
プロジェクトナビゲーションペイン５３６から始めると、プロジェクトディレクトリ「Ｈｅｌｌｏ  Ｗｏｒｌｄ」５４０は、いくつかの実装では、提示ファイルディレクトリ５４２ａと、画像ファイルディレクトリ５４２ｂと、音声ファイルディレクトリ５４２ｃと、ビデオファイルディレクトリ５４２ｄとを含んでもよい。いくつかの実装では、ファイルディレクトリ５４２は、クロスプラットフォームソフトウェアアプリケーションを開発するためのプラットフォーム非依存型ファイルを含有してもよい。ファイルディレクトリ５４２内に含有されるファイルは、いくつかの実装では、特定のコンピュータデバイスプラットフォームにダウンロードするためのインストール実行可能ファイルを作成するように、プラットフォーム特有のファイルと組み合わせられてもよい。いくつかの実装では、プラットフォーム特有のファイルは、クロスプラットフォームソフトウェアアプリケーションを開発するための総合クラウド環境のクラウドネットワークに記憶されてもよい。クロスプラットフォームソフトウェアアプリケーションは、いくつかの実施例では、「ウィンドウレス」、「ボーダレス」、または別様に「不可視的な」ブラウザアプリケーション内等で、ブラウザエンジン特徴を通してアプリケーション特徴を提示することによって、機能してもよい。例えば、提示ファイル５４２ａは、ブラウザエンジン特徴を通して情報を提示するように実行時に解釈されてもよい。いくつかの実装では、ブラウザエンジン特徴は、「コンパニオン」ソフトウェアアプリケーション内に提供されてもよい。例えば、開発者が、コンパニオンアプリケーションをダウンロードして標的コンピュータデバイス上にインストールし、クロスプラットフォームソフトウェアアプリケーションを試験するための開発デバイスとして標的コンピュータデバイスを有効にしてもよい。次いで、プロジェクトファイルが、クロスプラットフォームソフトウェアアプリケーションを試験するためにコンパニオンアプリケーションの中にダウンロードされてもよい。いくつかの実装では、ブラウザエンジン特徴は、開発アプリケーション実行ファイルを作成するように、提示ファイル５４２、プラットフォーム特有のファイル、および他のファイルと組み合わせられ（例えば、それらを用いてコンパイルされ）てもよい。
【０１３２】
提示ファイル５４２ａは、例えば、画像ファイルディレクトリ５４２ｂ、音声ファイルディレクトリ５４２ｃ、および／またはビデオファイルディレクトリ５４２に記憶される、画像、音声、および／またはビデオ等のメディアアイテムにリンクしてもよい。いくつかの実装では、提示ファイル５４２ａは、いくつかの実施例では、ＨＴＭＬ、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔ、およびＣＳＳ等のいくつかの提示ファイル形式で開発されてもよい。いくつかの実装では、２つ以上の提示ファイル形式で書かれたファイルは、クロスプラットフォームソフトウェアアプリケーションインターフェースおよび機能性を作成するように、ともにリンクされてもよい。例えば、第３のスクリーンショット５３０で図示されるように、提示ファイルディレクトリ５４２ａは、ＣＳＳ、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔ、およびＨＴＭＬで書かれたファイル５４４を含む。
【０１３３】
開発者は、いくつかの実装では、編集ペイン５３４の中で情報を閲覧して編集するように、いくつかの実装では、ファイルナビゲーションペイン５３６の中で利用可能なファイル５４４のうちの１つを選択してもよい。例えば、ｓｔｙｌｅ．ｃｓｓファイル５４４ｄが、ファイルナビゲーションペイン５３６の中で選択されてもよく、編集ペイン５３４内でｓｔｙｌｅ．ｃｓｓファイル５４４ｄのコンテンツを提示する。いくつかの実装では、複数のファイル５４４が、編集ペイン５３４内で開かれてもよい。例えば、ｓｔｙｌｅ．ｃｓｓファイル５４４ｄは、編集ペイン５３４内でタブとして出現してもよい。
【０１３４】
既存のファイル５４４を選択するよりもむしろ、いくつかの実装では、開発者が、新しいファイルをクロスプラットフォームソフトウェアアプリケーションプロジェクトに追加してもよい。メニューバー５３２を参照すると、追加制御５４６ｂが、いくつかの実装では、新しいファイルをクロスプラットフォームソフトウェアアプリケーションプロジェクトに追加するように選択されてもよい。いくつかの実装では、追加制御５４６ｂの選択は、いくつかの実施例では、ＨＴＭＬファイル、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔファイル、またはＣＳＳファイル等の２つ以上のタイプのファイルのオプションを提供し得る、ダイアログインターフェースの提示をもたらしてもよい。いくつかの実装では、追加制御５４６ｂの選択は、別のクロスプラットフォームソフトウェアアプリケーションプロジェクト（例えば、開発者によって作成される、または開発者に可視的であるプロジェクト）、ローカルハードドライブ、または開発コンピュータデバイスにアクセス可能な別の記憶場所から１つ以上のファイルをインポートするように、ファイルナビゲーションペインの提示をもたらしてもよい。例えば、開発者は、画像、音声ファイル、またはビデオファイル等の１つ以上のメディアファイルをＨｅｌｌｏ  Ｗｏｒｌｄプロジェクトに追加するように、追加制御５４６ｂを選択してもよい。
【０１３５】
編集ペイン５３４の下のデバイスペイン５３８を参照すると、「Ｍｙ  ｉＰａｄ」デバイス５４９等の記載される１つ以上のデバイスは、いくつかの実装では、開発者によって開発クライアントアプリケーションに登録される、いくつかの標的コンピュータデバイスを示してもよい。いくつかの実装では、開発クライアントアプリケーションは、開発コンピュータデバイスに（例えば、有線または無線）接続される１つ以上の標的コンピュータデバイスを認識してもよい。例えば、（例えば、開発クライアントアプリケーションがプラットフォーム特有のコンピュータデバイスアプリケーションを生成し得るプラットフォーム上で作動する）開発クライアントアプリケーションと互換性がある標的コンピュータデバイスが、開発コンピュータデバイスに接続されると識別されてもよい。例えば、開発コンピュータデバイスのＵＳＢポートを通して標的コンピュータデバイスを開発コンピュータデバイスに接続すると、開発クライアントアプリケーションは、標的コンピュータデバイスを認識し、標的コンピュータデバイスに関する情報をインポートしてもよい。いくつかの実装では、開発クライアントアプリケーションは、識別された標的コンピュータデバイスに関する情報の一部分を特定するための方法を開発者に提供するように、ダイアログボックスを開いてもよい。例えば、開発クライアントアプリケーションは、ｉＰａｄ  １．１という標的コンピュータデバイスモデル５４９ａ、一意のデバイス識別子コード５４９ｃ、５．０．１というプラットフォームオペレーティングシステムバージョン５４９ｄ、およびＡｐｐｌｅ（登録商標）というプラットフォームベンダ５４９ｅ、および名前５４９ｂ（例えば、「Ｍｙ  ｉＰａｄ」）を認識してもよい。いくつかの実装では、自動検出よりもむしろ、開発クライアントアプリケーションは、接続された標的コンピュータデバイスの場所を特定することを対象としてもよい。例えば、「接続されたデバイスを見出す」よう開発クライアントアプリケーションに命令するように、ユーザインターフェース（図示せず）における制御がアクセスされてもよい。
【０１３６】
デバイスペイン５３８で図示されているが、いくつかの実装では、クロスプラットフォームソフトウェアアプリケーションの開発中に、デバイスペイン５３８を含有する第３のスクリーンショット５３０の部分は、任意の構文およびリンクエラーの場所を特定して修正する際に開発者を補助し得る、ツールバーと置換されてもよい。例えば、開発者が、編集ペイン５３４において作業してもよい一方で、下方のメッセージペインは、エラーの指示、ならびにいくつかの実装では、開発されているコードに関する潜在的な問題の場所を特定することにおけるナビゲーション補助を提供する。いくつかの実装では、プロジェクトファイル内の構文および潜在的リンクエラーを検証するように、制御が開発者に提供されてもよい。いくつかの実装では、プロジェクトファイルは、例えば、保存制御５４６ｃの選択時に自動的に検証されてもよい。
【０１３７】
保存制御５４６ｃの選択は、いくつかの実装では、開発クライアントアプリケーションと通信しているクラウドネットワーク等のネットワークドライブへの保存されたファイルの複製をもたらし、スクリーンショット５３０によって図示されるユーザインターフェースの提示を引き起こしてもよい。例えば、ファイルナビゲーションペイン５３６内で表示されるファイル５４４は、クラウドネットワークリポジトリの中で遠隔に位置してもよい。いくつかの実装では、プロジェクトファイル５４４は、プロジェクトファイル５４４の開発中に、例えば、開発コンピュータデバイスのハードドライブ領域内でローカルに記憶されてもよい。いくつかの実装では、ファイル５４４は、実行制御５４６ｄの選択時にクラウドネットワークにアップロードされてもよい。例えば、クロスプラットフォームソフトウェアアプリケーションファイル５４４は、クロスプラットフォームソフトウェアアプリケーションファイル５４４が、特定の標的コンピュータデバイスプラットフォーム上に展開するための開発アプリケーションを生成するようにプラットフォーム特有のファイルと組み合わせられ得る、総合クラウド環境にアップロードされてもよい。
【０１３８】
ある時点で、開発者は、プロジェクトが、例えば、標的コンピュータデバイス上で、またはシミュレーションにおいてのいずれかで試験するための条件にあることを判定してもよい。いくつかの実装では、開発者は、オンデバイスオプション５４８ａおよびインシミュレータオプション５４８ｂを含む、一式のドロップダウンメニューオプション５４８を提示されるように、実行制御５４６ｄを選択してもよい。オンデバイスオプション５４８ａは、選択されたとき、いくつかの実装では、デバイスペイン５３８内に記載されるｉＰａｄＴＭデバイス５４９に展開するためのアプリケーションを含有する、実行可能ファイルを準備するオプションを提示してもよい。いくつかの実装では、オンデバイスオプション５４８ａは、選択されたとき、ｉＰａｄＴＭデバイス５４９等の標的コンピュータデバイス上にインストールされるコンパニオンアプリケーションにコンテンツファイルをダウンロードするための記憶場所を提供するオプションを提示してもよい。図示されるように、インシミュレータオプション５４８ｂは、強調表示されてもよい。インシミュレータオプション５４８ｂの選択時に、いくつかの実装では、デバイスシミュレータが、いくつかの実施例については、編集ペイン５３４、スクリーンショット５３０に隣接する表示、スクリーンショット５３０に取って代わる表示、またはスクリーンショット５３０に部分的に重なる表示等の表示領域中で提示されてもよい。
【０１３９】
例えば、図５Ｄを参照すると、スクリーンショット５５１は、シミュレーション制御パネル５５０、デバイス配向メニュー５５２、およびスマートフォンスタイルデバイスシミュレーション５５４を含む、シミュレータと重ねられてもよい。スマートフォンスタイルデバイスシミュレーション５５４は、いくつかの実装では、例えば、ファイルナビゲーションペイン５３６に記載されるコンテンツファイル５４４内に含有される情報に基づいて、スマートフォンスタイルデバイスシミュレーション５５４の表示領域５５５中に「Ｈｅｌｌｏ  Ｗｏｒｌｄ」クロスプラットフォームソフトウェアアプリケーションプロジェクトのシミュレーションを提示していてもよい。図示されるように、ディスプレイ５５５は、第１のメッセージ５５７ａ「私を見つけて下さい！」、第２のメッセージ５５７ｂ「挨拶しよう！」、および第３のメッセージ５５７ｃ「名前を入力して下さい」を特色とする。いくつかの実装では、開発者は、例えば、制御５５８のうちの１つの選択（例えば、クリック、マウスオーバ等）を通して、スマートフォンデバイスシミュレーション５５４と直接相互作用してもよい。一実施例では、開発者は、テキストボックス制御５５８ｄを選択し、例えば、開発コンピュータデバイスに接続されたキーボードを使用して情報をタイプしてもよい。
【０１４０】
いくつかの実装では、シミュレータは、標的コンピュータデバイス上で作動するクロスプラットフォームソフトウェアアプリケーションの機能性と同様に、開発コンピュータデバイスの表示領域上でインターフェースをレンダリングするためのウィンドウレスウェブブラウザフレームワーク等のブラウザエンジン特徴を使用して、作成されてもよい。
【０１４１】
いくつかの実装では、シミュレータは、提示ファイルコマンドをプラットフォーム特有のコンピュータデバイスコマンドに変換するために抽象化層に向かって指向されるＡＰＩコマンドを妨害するための機能を含んでもよい。いくつかの実施例では、センサ、入出力デバイス、および他のデバイス特有の特徴に向かって指向されるＡＰＩコマンドは、シミュレータによって妨害されてもよい。逆に、いくつかの実装では、シミュレータは、デバイス特有の特徴によって生成されるであろう入力を提供するように、１つ以上の特徴を含んでもよい。いくつかの実装では、シミュレーション制御パネル５５０は、配向、地理位置、カメラ、加速度計、光センサ、バイオメトリック、および／または他のコンピュータデバイスプラットフォーム特徴をシミュレートする機構へのアクセスを含んでもよい。
【０１４２】
いくつかの実装では、シミュレータを立ち上げると、シミュレーション特徴は、例えば、開発クライアントアプリケーションを通して開発者によって設定されるユーザオプションに基づいて、特定のタイプのコンピュータデバイスプラットフォームをデフォルトで設定してもよい。シミュレータによって図示されるコンピュータデバイスプラットフォームのタイプは、いくつかの実装では、部分的に、デバイスペイン５３８内に記載されるデバイスに基づいてもよい。例えば、記載される第１のデバイスが、スマートフォンのスタイルである場合、またはデバイスペイン５３８の中の強調表示されたデバイスがスマートフォンである場合、シミュレータは、スマートフォンタイプデバイスプラットフォームを表示することをデフォルトで設定してもよい。他の実装では、デフォルトタイプのコンピュータデバイスプラットフォームにおいてクロスプラットフォームソフトウェアアプリケーションのシミュレーションを表示するよりもむしろ、ユーザインターフェースは、シミュレーションに利用可能なコンピュータデバイスプラットフォームのタイプの２つ以上のオプションを表示する、（図５Ｃに表示されるような）インシミュレータメニューオプション５４８ｂのサブメニューを含んでもよい。
【０１４３】
いくつかの実装では、開発者は、デバイス配向メニュー５５２を通してスマートフォンデバイスシミュレーション５５４と相互作用してもよい。いくつかの実装では、開発者は、スマートフォンデバイスシミュレーション５５４の配向を反時計回りに９０度回転させる第１の制御５６０ａ、スマートフォンデバイスシミュレーション５５４の配向を上下逆に反転させる第２の制御５６０ｂ、またはスマートフォンデバイスシミュレーション５５４を時計回りに９０度に回転させる第３の制御５６０ｃを選択してもよい。
【０１４４】
いくつかの実装では、開発者は、シミュレーション制御パネル５５０を通して異なる相互作用機構にアクセスしてもよい。図示されるように、例えば、配向制御５６２ａが選択されてもよい。配向制御５６２ａの下で、地理位置制御５６２ｂは、選択されたとき、（図５Ｅに関連してさらに説明されるように）デバイス配向メニュー５５２を地理位置メニューと置換してもよい。シミュレーション制御パネル５５０の底部で、デバイス選択制御５６２ｃは、選択されたとき、スマートフォンデバイスシミュレーション５５４から、いくつかの実施例では、タブレットコンピュータデバイスシミュレーション、ＰＤＡデバイスシミュレーション、またはマルチメディアプレーヤシミュレーション等の異なるコンピュータデバイスタイプまたはコンピュータデバイスプラットフォームシミュレーションに切り替える機会を開発者に提供してもよい。
【０１４５】
図５Ｅを参照すると、スクリーンショット５５１は、いくつかの実装では、シミュレーション制御パネル５５０と、デバイス地理位置メニュー５６４と、ＰＤＡスタイルデバイスシミュレーション５６６とを含む、シミュレータによって重ねられてもよい。いくつかの実装では、ＰＤＡスタイルデバイスシミュレーション５６６は、デバイス選択制御５６２ｃを使用して選択されてもよい。例えば、デバイス選択制御５６２ｃの選択時に、開発者は、シミュレータによって提示するためにデバイスプラットフォームのタイプを選択するためのダイアログボックスを提示されてもよい。いくつかの実装では、ＰＤＡスタイルデバイスシミュレーション５６６は、新しいデバイスの追加に基づいて提示されてもよい（例えば、デバイスペイン５３８で図示されるような「Ｍｙ  Ｂｂｅｒｒｙ」デバイス５６８）。
【０１４６】
ＰＤＡスタイルデバイスシミュレーション５６６の表示領域５７０は、図５Ｄのスマートフォンスタイルデバイスシミュレーション５５４上に表示されるシミュレーションと類似する情報を含有してもよい。例えば、制御５５８は、図５Ｄのスマートフォンスタイルデバイスシミュレーション５５４上で図示されるように、表示領域５７０中で類似組織に配列されてもよい。しかしながら、いくつかの実施例では、画面サイズ、相対画面寸法、画面解像度、色深度、利用可能なシステムフォント、またはスマートフォンスタイルデバイスとＰＤＡスタイルデバイスとの間の固有の他のシステム差異に基づいて、修正が存在してもよい。例えば、ＰＤＡスタイルデバイスシミュレーション５６６は、（例えば、図５Ｄに示されるように）スマートフォンスタイルデバイスシミュレーション５５４よりはるかに小さい画面領域を有すると考えられる。いくつかの実装では、開発者は、レンダリングがデバイスごとに適切であると考えられることを検証するように、種々のコンピュータデバイスタイプのシミュレーション上の機能性を精査してもよい（例えば、重複がない、読み取り難い、または部分的に画面外の情報等）。
【０１４７】
ＰＤＡスタイルデバイスシミュレーション５６６の表示領域５７０は、第１のメッセージ５５７ａ（「私を見つけて下さい！」）の隣に起動制御５５８ｃを含有してもよい。いくつかの実装では、起動制御５５８ｃの選択は、シミュレートされたコンピュータデバイスの地理位置特徴を起動し、シミュレートされたコンピュータデバイスの現在の位置を導出してもよい。地理位置ダイアログボックス５６４を使用して、いくつかの実装では、開発者が、シミュレートされたコンピュータデバイスの１つ以上の地理位置センサへの入力を模倣してもよい。例えば、地理位置ダイアログボックス５６４は、緯度入力ボックス５７２ａ、経度入力ボックス５７２ｂ、高度入力ボックス５７２ｃ、精度入力ボックス５７２ｄ、および高度精度入力ボックス５７２ｅ等の位置付け入力ボックス５７２を含んでもよい。加えて、地理位置ボックスダイアログ５６４は、速度入力ボックス５７４ａおよび方位入力ボックス５７４ｂ等の移動入力ボックス５７４を含んでもよい。いくつかの実装では、地理位置ダイアログボックス５６４は、特定の位置を選択するように地図５７６を含んでもよい。方位情報または地図ナビゲーションが、いくつかの実装では、コンパス制御５７８を使用して提供されてもよい。
【０１４８】
図５Ｆを参照すると、スクリーンショット５５１は、シミュレーション制御パネル５５０と、スマートフォンスタイルデバイスシミュレーション５５４とを含む、シミュレータと重ねられてもよい。スマートフォンスタイルデバイスシミュレーション５５４の表示領域５５５で図示されるように、（例えば、図５Ｄおよび５Ｅで表示されるように）以前に「挨拶しよう！」を表示した第２のメッセージ５５７ｂが、「ファイルが保存されたときに自動更新を変更して下さい！」とう状態に更新されてもよい。メニューバー５３２を参照すると、保存制御５４６ｃは、いくつかの実装では、ドロップダウンメニュー５８０で図示されるように、コンテンツファイル５４４のうちの１つ以上に行われる修正を保存するように選択されてもよい。いくつかの実装では、シミュレータにおいてクロスプラットフォームソフトウェアアプリケーションの性能を試験しながら、開発者は、修正を１つ以上のコンテンツファイル５４４に適用してもよい。例えば、開発者は、図５Ｆで図示されるように編集ペイン５３４の中で開いているファイルｓｔｙｌｅ．ｃｓｓ５４４ｄに１つ以上の変更を適用してもよい。ファイルｓｔｙｌｅ．ｃｓｓ５４４ｄへの変更を保存すると、いくつかの実装では、クロスプラットフォームソフトウェアアプリケーションのシミュレーションが、変更を反映するように自動的に更新されてもよい。例えば、プログラムをリセットまたは再ロードすることなく、更新された（はるかに長い）第２のメッセージ５５７ｂのための余地を提供する、制御５５８ａ、５５８ｂ、および５５８ならびに第３のメッセージ５５７ｃの再配置等のスマートフォンスタイルデバイスシミュレーション５５４の表示領域５５５内で図示される１つ以上のアイテムへの即時の修正が、表示領域５５５中で開発者に提供されてもよい。いくつかの実装では、開発クライアントアプリケーション、またはクロスプラットフォームソフトウェアアプリケーションのシミュレーション内のシミュレーション特徴が、スマートフォンスタイルデバイスシミュレーション５５４の表示領域５５５の即時の再生を引き起こすように、開発コンピュータデバイスの表示領域の画面リフレッシュを行ってもよい。
【０１４９】
いくつかの実装では、類似機構が、標的コンピュータデバイス上で試験されたときに、クロスプラットフォームソフトウェアアプリケーションのプラットフォーム特有のバージョンを更新するために利用可能であり得る。例えば、１つ以上のコンテンツファイル５４４への１つ以上の変更を保存すると、開発クライアントアプリケーションまたは開発アプリケーションは、（例えば、ウェブクライアントアプリケーションを介して）更新されたコンテンツファイルを標的コンピュータデバイスにプッシュ配信してもよく、その場合、クロスプラットフォームソフトウェアアプリケーションのプラットフォーム特有のバージョンは、新しいコンテンツファイルを認識し、標的コンピュータデバイスの表示領域をリフレッシュしてほぼリアルタイムで開発者に変更を提示するように構成される、更新エージェントまたはコンパニオンアプリケーションを含んでもよい。別の実施例では、総合クラウド環境は、標的コンピュータデバイスにダウンロードするために、新しい、および／または更新されたコンテンツファイルを提供してもよい。
【０１５０】
図５Ｇを参照すると、クロスプラットフォームソフトウェアアプリケーションのそのような試験を行うために、いくつかの実装では、スクリーンショット５９０で図示されるような実行制御５４６ｄが選択されてもよく、オンデバイスドロップダウンメニューオプション５４８ａが起動されてもよい。いくつかの実装では、オンデバイスドロップダウンメニューオプション５４８ａの選択は、１つ以上の標的コンピュータデバイスにダウンロードするために、１つ以上のプラットフォーム特有のアプリケーション実行可能ファイル（例えば、実行可能アプリケーションファイル、インストールファイル等）を生成させてもよい。いくつかの実装では、例えば、デバイスペイン５３８の中に記載される「Ｍｙ  ｉＰａｄ」デバイス５４９および「Ｍｙ  Ｂｂｅｒｒｙ」デバイス５６８等の各標的コンピュータデバイスが、各関連コンピュータデバイスプラットフォームによって、開発デバイスとして認定され、支給され、または別様に承認されてもよい。いくつかの実装では、オンデバイスドロップダウンメニューオプション５４８ａの選択時に、アプリケーション実行可能ファイルが、デバイスペイン５３８内に記載される全ての標的コンピュータデバイスのために生成されてもよい。他の実装では、オンデバイスドロップダウンメニューオプション５４８ａの選択時に、アプリケーション実行可能ファイルが、デバイスペイン５３８内に選択される任意の標的コンピュータデバイス（例えば、図５Ｇのデバイスペイン５３８で図示されるように、「Ｍｙ  ｉＰａｄ」デバイス５４９および「Ｍｙ  Ｂｂｅｒｒｙ」デバイス５６８の両方）のために生成されてもよい。
【０１５１】
いくつかの実装では、アプリケーション実行可能ファイルの生成は、総合クラウド環境で起こってもよい。例えば、Ｈｅｌｌｏ  Ｗｏｒｌｄプロジェクトディレクトリ５４０に記憶されたコンテンツファイル５４２が、クラウドネットワークにアップロードされ、各標的コンピュータデバイスプラットフォーム用のプラットフォーム特有のファイルと組み合わせられてもよい。いくつかの実装では、アプリケーション実行可能ファイルは、１つ以上の標的コンピュータデバイスに配布するために開発コンピュータデバイス上の一時ディレクトリにダウンロードされてもよい。
【０１５２】
アプリケーション実行可能ファイルは、いくつかの実装では、有線接続を経由して標的コンピュータデバイスに配布されてもよい。いくつかの実装では、アプリケーション実行可能ファイルは、例えば、複数の繋留ＵＳＢ接続を経由して同時に各標的コンピュータデバイスにプッシュ配信されてもよい。いくつかの実装では、アプリケーション実行可能ファイルは、例えば、有線または無線接続を経由して各標的コンピュータデバイスに連続的に配布されてもよい。
【０１５３】
いくつかの実装では、コンパニオンアプリケーションは、１つ以上の標的コンピュータデバイス上にインストールされてもよい。コンパニオンアプリケーションがインストールされた標的コンピュータデバイス用の実行可能ファイルを構築するよりもむしろ、いくつかの実装では、総合クラウド環境が、標的コンピュータデバイスにダウンロードするための一式のコンテンツファイルを提供してもよい。例えば、コンパニオンアプリケーションは、コンテンツファイルを受信し、開発者がコンパニオンアプリケーションシェル内で開発アプリケーション機能性を実行することを可能にしてもよい。
【０１５４】
図５Ｈを参照すると、オンデバイスドロップダウンメニューオプション５４８ａの選択後、ポップアップウィンドウ５９２がスクリーンショット５９０に重なってもよい。ポップアップウィンドウ５９２内で、いくつかの実装では、ＱＲコード（登録商標）５９４が、「以下のＱＲコード（登録商標）をスキャンしてあなたのデバイスにモバイルパッケージをインストールして下さい」とユーザに命令するメッセージ５９５とともに提示されてもよい。いくつかの実装では、標的コンピュータデバイスのスキャナ機能が、ＱＲコード（登録商標）５９４をスキャンし、内側に符号化された記憶場所を判定するために使用されてもよい。ＱＲコード（登録商標）５９４を提示するよりもむしろ、他の実装では、テキスト、ハイパーリンク、ＵＲＬ、または記憶場所を開発コンピュータデバイスの表示領域に提示する他の形態が使用されてもよい。いくつかの実施例では、記憶場所は、ネットワークアドレスまたはＵＲＬを含んでもよい。
【０１５５】
いくつかの実装では、ＱＲコード（登録商標）５９４は、いくつかの実施例では、開発者と関連付けられる１つ以上のクロスプラットフォームソフトウェアアプリケーションプロジェクトを識別するアプリケーション識別子（例えば、コンテンツファイルを含有するプロジェクトを含む）、承認標的コンピュータデバイス情報（例えば、開発者によって開発のために支給される一式の標的コンピュータデバイスを一意的に識別する情報）、およびコンテンツファイルを取り出すための認証情報等の付加的な情報を含んでもよい。いくつかの実装では、コンパニオンアプリケーションは、記憶場所からコンテンツファイルを取り出す際に付加的な情報の一部分を使用するように構成されてもよい。
【０１５６】
ＱＲコード（登録商標）５９４の上方で、ポップアップウィンドウ５９２内で図示されるように、ドロップダウンメニュー５９６が、いくつかの実装では、開発アプリケーション用の標的コンピュータデバイスプラットフォームを選択する機会をユーザに提供してもよい。いくつかの実装では、１つ以上のプラットフォーム特有のファイルが提供されてもよい。ドロップダウンメニュー５９６を介して標的コンピュータデバイスプラットフォームを提供することによって、開発者は、任意のプラットフォーム特有のファイルがＱＲコード（登録商標）５９４に符号化された記憶場所で利用可能であることを確実にしてもよい。いくつかの実装では、開発者は、例えば、チェックボックス５９７を選択することによって、ドロップダウンメニュー５９６内の選択された標的コンピュータデバイスプラットフォームをデフォルトビルドプラットフォームとして設定してもよい。
【０１５７】
ＱＲコード（登録商標）５９４の下で、ポップアップウィンドウ５９２内で図示されるように、一式のハイパーリンク５９８、５９９が、いくつかの実装では、開発アプリケーション用の試験デバイスとして標的コンピュータデバイスを構成するための付加的なオプションをユーザに提供してもよい。いくつかの実装では、「プロビジョンを使用したい」と標識された第１のハイパーリンク５９８が、選択されたとき、以前に説明されたように、１つ以上の標的コンピュータデバイスに提供するための開発アプリケーション実行ファイルを構築する機会をユーザに提示してもよい。
【０１５８】
いくつかの実装では、「コンパニオンアプリケーションをインストールしていない」と標識された第２のハイパーリンク５９９が、選択されたとき、コンパニオンアプリケーションにアクセスしてインストールする方法についての指示をユーザに提示してもよい。いくつかの実装では、ユーザは、コンパニオンアプリケーションの記憶場所を含有するＱＲコード（登録商標）（図示せず）を提示されてもよい。ユーザは、他の実装では、コンパニオンアプリケーションインストール実行ファイルのコピーを取り出すように、１つ以上のハイパーリンク、ＵＲＬ、または他の記憶場所情報を提示されてもよい。
【０１５９】
図５Ｇに戻ると、開発アプリケーションが標的コンピュータデバイスのそれぞれの上で作動している間に、いくつかの実装では、開発者は、提示ファイル５４４のうちの１つ以上を更新してもよい。いくつかの実装では、開発者は、新しいコンテンツファイルを追加し、それを既存の提示ファイル５４４のうちの１つにリンクしてもよい。
【０１６０】
コンテンツファイルの更新および／またはコンテンツファイルへの追加は、いくつかの実装では、更新エージェントを含む、開発アプリケーションを実行する各標的コンピュータデバイスにプッシュ配信されてもよい。いくつかの実装では、１つ以上のコンテンツファイルへの更新および／または１つ以上のコンテンツファイルの追加は、例えば、保存制御５４６ｃを使用してコンテンツファイルを保存すると、自動的に標的コンピュータデバイスにプッシュ配信されてもよい。いくつかの実装では、デバイスペイン５３８内で選択される、これらの標的コンピュータデバイスのみが、保存制御５４６ｃの選択を通してそれらに自動的にプッシュ配信されたコンテンツファイルを有してもよい。いくつかの実装では、コンテンツファイルのうちの１つ以上への更新が、（例えば、選択された標的コンピュータデバイスを右クリックし、更新されたコンテンツファイルを送信するためのメニューオプションを選択することによって）開発者による手動努力を通して、選択された標的コンピュータデバイス５４９、５６８にプッシュ配信されてもよい。特定の実施例では、ファイルｓｔｙｌｅ．ｃｓｓ５４４ｄへの修正が、有線または無線接続を経由して、「Ｍｙ  ｉＰａｄ」デバイス５４９および「Ｍｙ  Ｂｂｅｒｒｙ」デバイス５６８の両方に同時にプッシュ配信されてもよい。いくつかの実装では、標的コンピュータデバイスのうちの１つが開発コンピュータデバイスに物理的に接続されていない場合、標的コンピュータデバイスは、プラットフォーム特有の開発アプリケーションに内蔵された一意の識別子により、開発クライアントアプリケーションによって無線ネットワーク上で認識されてもよい。
【０１６１】
コンテンツファイルの更新および／またはコンテンツファイルへの追加は、いくつかの実装では、例えば、総合クラウド環境を介して、コンパニオンアプリケーションを実行する標的コンピュータデバイスのそれぞれにダウンロードされてもよい。いくつかの実装では、コンテンツファイルのうちの１つ以上は、標的コンピュータデバイスにダウンロードするために記憶場所に転送されてもよい。例えば、更新および／または追加されたコンテンツファイルは、コンテンツファイルを標的コンピュータデバイスに供給するために最初に使用される、記憶場所に転送されてもよい。いくつかの実装では、記憶場所は、開発者、または標的コンピュータデバイス上で実行されるコンパニオンアプリケーションに伝達されてもよい。例えば、記憶場所を含むＱＲコード（登録商標）が、図５Ｈに関連して以前に説明されたように、開発コンピュータデバイスの表示領域に供給されてもよい。
【０１６２】
いくつかの実装では、ユーザが、コンテンツファイルのダウンロードを手動で要求してもよい。例えば、手動要求が、標的コンピュータデバイスのユーザインターフェースを介して提出されてもよい。例えば、ユーザが、標的コンピュータデバイスへの更新されたコンテンツファイルのダウンロードを開始するように、特定のタッチパターンまたはスイープパターン等のジェスチャを入力してもよい。別の実施例では、ユーザは、選択されたときにコンテンツファイルのダウンロードを開始し得る、メニューオプションを取得するように、標的コンピュータデバイス上の制御を選択してもよい。
【０１６３】
いくつかの実装では、コンテンツファイルが、標的コンピュータデバイスにプッシュ配信されてもよい。例えば、コンパニオンアプリケーションは、更新されたコンテンツファイルのための記憶場所を監視するための特徴を含んでもよい。更新されたコンテンツファイルの認識時に、例えば、コンパニオンアプリケーションは、コンテンツファイルを自動的に取り出してもよい。
【０１６４】
図６に示されるように、クロスプラットフォームソフトウェアアプリケーションの開発のための例示的なクラウドコンピューティング環境６００の実装が示され、説明されている。クラウドコンピューティング環境６００は、１つ以上のリソースプロバイダ６０２ａ、６０２ｂ、６０２ｃ（集合的に６０２）を含んでもよい。各リソースプロバイダ６０２は、コンピューティングリソースを含んでもよい。いくつかの実装では、コンピューティングリソースは、データを処理するために使用される任意のハードウェアおよび／またはソフトウェアを含んでもよい。例えば、コンピューティングリソースは、アルゴリズム、コンピュータプログラム、および／またはコンピュータアプリケーションを実行することが可能なハードウェアおよび／またはソフトウェアを含んでもよい。いくつかの実装では、例示的なコンピューティングリソースは、記憶および検索能力を伴うアプリケーションサーバおよび／またはデータベースを含んでもよい。各リソースプロバイダ６０２は、クラウドコンピューティング環境６００内の任意の他のリソースプロバイダ６０２に接続されてもよい。いくつかの実装では、リソースプロバイダ６０２は、コンピュータネットワーク６０８を経由して接続されてもよい。各リソースプロバイダ６０２は、コンピュータネットワーク６０８を経由して１つ以上のコンピュータデバイス６０４ａ、６０４ｂ、６０４ｃ（集合的に６０４）に接続されてもよい。
【０１６５】
クラウドコンピューティング環境６００は、リソースマネージャ６０６を含んでもよい。リソースマネージャ６０６は、コンピュータネットワーク６０８を経由してリソースプロバイダ６０２およびコンピュータデバイス６０４に接続されてもよい。いくつかの実装では、リソースマネージャ６０６は、１つ以上のリソースプロバイダ６０２による１つ以上のコンピュータデバイス６０４へのコンピューティングリソースの提供を促進してもよい。リソースマネージャ６０６は、特定のコンピュータデバイス６０４からコンピュータリソースの要求を受信してもよい。リソースマネージャ６０６は、コンピュータデバイス６０４によって要求されるコンピューティングリソースを提供することが可能な１つ以上のリソースプロバイダ６０２を識別してもよい。リソースマネージャ６０６は、コンピューティングリソースを提供するリソースプロバイダ６０２を選択してもよい。リソースマネージャ６０６は、リソースプロバイダ６０２と特定のコンピュータデバイス６０４との間の接続を促進してもよい。いくつかの実装では、リソースマネージャ６０６は、特定のリソースプロバイダ６０２と特定のコンピュータデバイス６０４との間の接続を確立してもよい。いくつかの実装では、リソースマネージャ６０６は、要求されたコンピューティングリソースを伴う特定のリソースプロバイダ６０２に特定のコンピュータデバイス６０４をリダイレクトしてもよい。
【０１６６】
図７は、本開示で説明される技法を実装するために使用することができる、コンピュータデバイス７００およびモバイルコンピュータデバイス７５０の実施例を示す。コンピュータデバイス７００は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータ等の種々の形態のデジタルコンピュータを表すことを目的としている。モバイルコンピュータデバイス７５０は、携帯情報端末、携帯電話、スマートフォン、および他の類似コンピュータデバイス等の種々の形態のモバイルデバイスを表すことを目的としている。ここで示される構成要素、それらの接続および関係、およびそれらの機能は、実施例であるように意図されているにすぎず、限定的となるように意図されていない。
【０１６７】
コンピュータデバイス７００は、プロセッサ７０２と、メモリ７０４と、記憶デバイス７０６と、メモリ７０４および複数の高速拡張ポート７１０に接続する高速インターフェース７０８と、低速拡張ポート７１４および記憶デバイス７０６に接続する低速インターフェース７１２とを含む。プロセッサ７０２、メモリ７０４、記憶デバイス７０６、高速インターフェース７０８、高速拡張ポート７１０、および低速インターフェース７１２のそれぞれは、種々のバスを使用して相互接続されてもよく、共通マザーボード上に、または適宜に他の様式で搭載されてもよい。プロセッサ７０２は、高速インターフェース７０８に連結されたディスプレイ７１６等の外部入出力デバイス上のＧＵＩのためにグラフィカル情報を表示するように、メモリ７０４の中に、または記憶デバイス７０６上に記憶された命令を含む、コンピュータデバイス７００内で実行するための命令を処理することができる。他の実装では、複数のメモリおよびタイプのメモリとともに、複数のプロセッサおよび／または複数のバスが適宜に使用されてもよい。また、複数のコンピュータデバイスが接続されてもよく、各デバイスは、（例えば、サーババンク、ブレードサーバ群、またはマルチプロセッサシステムとして）必要な動作の部分を提供する。
【０１６８】
メモリ７０４は、コンピュータデバイス７００内に情報を記憶する。いくつかの実装では、メモリ７０４は、１つまたは複数の揮発性メモリユニットである。いくつかの実装では、メモリ７０４は、１つまたは複数の不揮発性メモリユニットである。メモリ７０４はまた、磁気または光ディスク等の別の形態のコンピュータ可読媒体であってもよい。
【０１６９】
記憶デバイス７０６は、コンピュータデバイス７００用の大容量記憶装置を提供することが可能である。いくつかの実装では、記憶デバイス７０６は、フロッピー（登録商標）ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリまたは他の類似ソリッドステートメモリデバイス、または記憶領域ネットワークあるいは他の構成にデバイスを含むデバイスのアレイ等のコンピュータ可読媒体であってもよいか、またはそれを含有してもよい。命令を情報キャリアに記憶することができる。命令は、１つ以上の処理デバイス（例えば、プロセッサ７０２）によって実行されたとき、上記で説明されるもの等の１つ以上の方法を行ってもよい。命令はまた、コンピュータまたは機械可読媒体（例えば、メモリ７０４、記憶デバイス７０６、またはプロセッサ７０２上のメモリ）等の１つ以上の記憶デバイスによって記憶することもできる。
【０１７０】
高速インターフェース７０８が、コンピュータデバイス７００の帯域幅集中動作を管理する一方で、低速インターフェース７１２は、より低帯域幅集中動作を管理する。そのような機能の割付は、実施例にすぎない。いくつかの実装では、高速インターフェース７０８は、メモリ７０４、（例えば、グラフィックスプロセッサまたはアクセラレータを通して）ディスプレイ７１６、および種々の拡張カード（図示せず）を受け入れ得る高速拡張ポート７１０に連結される。本実装では、低速インターフェース７１２は、記憶デバイス７０６および低速拡張ポート７１４に連結される。種々の通信ポート（例えば、ＵＳＢ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｅｔｈｅｒｎｅｔ（登録商標）、無線Ｅｔｈｅｒｎｅｔ（登録商標））を含み得る、低速拡張ポート７１４は、キーボード、ポインティングデバイス、スキャナ、または、例えば、ネットワークアダプタを通したスイッチまたはルータ等のネットワーキングデバイス等の１つ以上の入出力デバイスに連結されてもよい。
【０１７１】
コンピュータデバイス７００は、図に示されるように、いくつかの異なる形態で実装されてもよい。例えば、標準サーバ７２０として、またはそのようなサーバ群の中で複数回実装されてもよい。加えて、それは、ラップトップコンピュータ７２２等のパーソナルコンピュータで実装されてもよい。それはまた、ラックサーバシステム７２４の一部として実装されてもよい。代替として、コンピュータデバイス７００からの構成要素は、モバイルコンピュータデバイス７５０等のモバイルデバイス（図示せず）の中の他の構成要素と組み合わせられてもよい。そのようなデバイスのそれぞれは、コンピュータデバイス７００およびモバイルコンピュータデバイス７５０のうちの１つ以上を含有してもよく、システム全体が、相互と通信する複数のコンピュータデバイスで構成されてもよい。
【０１７２】
モバイルコンピュータデバイス７５０は、いくつかある構成要素の中でも特に、プロセッサ７５２と、メモリ７６４と、ディスプレイ７５４等の入出力デバイスと、通信インターフェース７６６と、送受信機７６８とを含む。モバイルコンピュータデバイス７５０はまた、付加的な記憶装置を提供するように、マイクロドライブまたは他のデバイス等の記憶デバイスを提供されてもよい。プロセッサ７５２、メモリ７６４、ディスプレイ７５４、通信インターフェース７６６、および送受信機７６８のそれぞれは、種々のバスを使用して相互接続され、構成要素のうちのいくつかは、共通マザーボード上に、または適宜の他の様式で搭載されてもよい。
【０１７３】
プロセッサ７５２は、メモリ７６４に記憶された命令を含む、命令をモバイルコンピュータデバイス７５０内で実行することができる。プロセッサ７５２は、別個かつ複数のアナログおよびデジタルプロセッサを含む、チップのチップセットとして実装されてもよい。プロセッサ７５２は、例えば、ユーザインターフェースの制御、モバイルコンピュータデバイス７５０によって実行されるアプリケーション、およびモバイルコンピュータデバイス７５０による無線通信等のモバイルコンピュータデバイス７５０の他の構成要素の協調を提供してもよい。
【０１７４】
プロセッサ７５２は、制御インターフェース７５８およびディスプレイ７５４に連結されたディスプレイインターフェース７５６を通して、ユーザと通信してもよい。ディスプレイ７５４は、例えば、ＴＦＴ（薄膜トランジスタ液晶ディスプレイ）ディスプレイ、またはＯＬＥＤ（有機発光ダイオード）ディスプレイ、あるいは他の適切なディスプレイ技術であってもよい。ディスプレイインターフェース７５６は、グラフィカルおよび他の情報をユーザに提示するようにディスプレイ７５４を駆動するための適切な回路を備えてもよい。制御インターフェース７５８は、ユーザからコマンドを受信し、それらをプロセッサ７５２に提出するために変換してもよい。加えて、外部インターフェース７６２が、他のデバイスとのモバイルコンピュータデバイス７５０の近距離通信を可能にするよう、プロセッサ７５２との通信を提供してもよい。外部インターフェース７６２は、例えば、いくつかの実装では有線通信、または他の実装では無線通信を提供してもよく、複数のインターフェースも使用されてもよい。
【０１７５】
メモリ７６４は、モバイルコンピュータデバイス７５０内に情報を記憶する。メモリ７６４は、１つまたは複数のコンピュータ可読媒体、１つまたは複数の揮発性メモリユニット、あるいは１つまたは複数の不揮発性メモリユニットのうちの１つ以上として実装することができる。拡張メモリ７７４もまた、提供され、例えば、ＳＩＭＭ（シングルインラインメモリモジュール）カードインターフェースを含み得る、拡張インターフェース７７２を通してモバイルコンピュータデバイス７５０に接続されてもよい。拡張メモリ７７４は、モバイルコンピュータデバイス７５０用の余分な記憶空間を提供してもよく、またはモバイルコンピュータデバイス７５０用のアプリケーションまたは他の情報も記憶してもよい。具体的には、拡張メモリ７７４は、上記で説明されるプロセスを実行または補完する命令を含んでもよく、かつ安全な情報も含んでもよい。したがって、例えば、拡張メモリ７７４は、モバイルコンピュータデバイス７５０用のセキュリティモジュールとして提供されてもよく、かつモバイルコンピュータデバイス７５０の安全な使用を可能にする命令でプログラムされてもよい。加えて、ハッキング不可能な様式でＳＩＭＭカード上に識別情報を置くこと等の付加的な情報とともに、安全なアプリケーションがＳＩＭＭカードを介して提供されてもよい。
【０１７６】
メモリは、例えば、以下で議論されるようなフラッシュメモリおよび／またはＮＶＲＡＭメモリ（不揮発性ランダムアクセスメモリ）を含んでもよい。いくつかの実装では、命令は、情報キャリアに記憶され、命令は、１つ以上の処理デバイス（例えば、プロセッサ７５２）によって実行されたとき、上記で説明されるもの等の１つ以上の方法を行う。命令はまた、１つ以上のコンピュータまたは機械可読媒体（例えば、メモリ７６４、拡張メモリ７７４、またはプロセッサ７５２上のメモリ）等の１つ以上の記憶デバイスによって記憶されてもよい。いくつかの実装では、命令は、例えば、送受信機７６８または外部インターフェース７６２を経由して、伝搬信号の中で受信することができる。
【０１７７】
モバイルコンピュータデバイス７５０は、必要な場合にデジタル信号処理回路を含み得る、通信インターフェース７６６を通して無線で通信してもよい。通信インターフェース７６６は、とりわけ、ＧＳＭ（登録商標）音声電話（グローバルシステムフォーモバイルコミュニケーション）、ＳＭＳ（ショートメッセージサービス）、ＥＭＳ（拡張メッセージングサービス）、またはＭＭＳメッセージング（マルチメディアメッセージングサービス）、ＣＤＭＡ（符号分割多重アクセス）、ＴＤＭＡ（時分割多重アクセス）、ＰＤＣ（パーソナルデジタルセルラー）、ＷＣＤＭＡ（登録商標）（広帯域符号分割多重アクセス）、ＣＤＭＡ２０００、またはＧＰＲＳ（汎用パケット無線サービス）等の種々のモードまたはプロトコルの下で通信を提供してもよい。そのような通信は、例えば、高周波を使用して、送受信機７６８を通して起こってもよい。加えて、短距離通信が、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−ＦｉＴＭ、または他の送受信機（図示せず）を使用する等して、起こってもよい。加えて、ＧＰＳ（全地球測位システム）受信機モジュール７７０が、モバイルコンピュータデバイス７５０上で作動するアプリケーションによって適宜に使用され得る、付加的なナビゲーションおよび場所関連無線データをモバイルコンピュータデバイス７５０に提供してもよい。
【０１７８】
モバイルコンピュータデバイス７５０はまた、ユーザから口頭の情報を受信し、それを使用可能なデジタル情報に変換し得る、音声コーデック７６０を使用して、聞こえるように通信してもよい。音声コーデック７６０は、同様に、例えば、モバイルコンピュータデバイス７５０のハンドセットの中で、スピーカ等を通してユーザのための可聴音を生成してもよい。そのような音は、音声電話からの音を含んでもよく、録音された音（例えば、音声メッセージ、音楽ファイル等）を含んでもよく、また、モバイルコンピュータデバイス７５０上で動作するアプリケーションによって生成される音を含んでもよい。
【０１７９】
モバイルコンピュータデバイス７５０は、図に示されるように、いくつかの異なる形態で実装されてもよい。例えば、それは、携帯電話７８０として実装されてもよい。それはまた、スマートフォン７８２、携帯情報端末、または他の類似モバイルデバイスの一部として実装されてもよい。
【０１８０】
本明細書で説明されるシステムおよび技法の種々の実装は、デジタル電子回路、集積回路、特別に設計されたＡＳＩＣ（特定用途向け集積回路）、コンピュータハードウェア、ファームウェア、ソフトウェア、および／またはそれらの組み合わせで実現することができる。これらの種々の実装は、専用または汎用であり、記憶システム、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスからデータおよび命令を受信し、かつそこへデータおよび命令を伝送するように連結され得る、少なくとも１つのプログラマブルプロセッサを含む、プログラマブルシステム上で実行可能および／または解釈可能である１つ以上のコンピュータプログラムでの実装を含むことができる。
【０１８１】
これらのコンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られている）は、プログラマブルプロセッサ用の機械命令を含み、高次プロシージャおよび／またはオブジェクト指向プログラミング言語で、および／またはアセンブリ／機械言語で実装することができる。本明細書で使用されるように、機械可読媒体およびコンピュータ可読媒体という用語は、機械可読信号として機械命令を受信する機械可読媒体を含む、機械命令および／またはデータをプログラマブルプロセッサに提供するために使用される、任意のコンピュータプログラム製品、装置、および／またはデバイス（例えば、磁気ディスク、光ディスク、メモリ、プログラマブル論理デバイス（ＰＬＤ））を指す。機械可読信号という用語は、機械命令および／またはデータをプログラマブルプロセッサに提供するために使用される、任意の信号を指す。
【０１８２】
ユーザとの相互作用を提供するために、本明細書で説明されるシステムおよび技法は、ユーザに情報を表示するための表示デバイス（例えば、ＣＲＴ（陰極線管）またはＬＣＤ（液晶ディスプレイ）モニタ）と、それによってユーザが入力をコンピュータに提供することができるキーボードおよびポインティングデバイス（例えば、マウスまたはトラックボール）とを有する、コンピュータ上で実装することができる。他の種類のデバイスも、ユーザとの相互作用を提供するために使用することができ、例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック（例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック）であり得、ユーザからの入力は、音響、発話、または触覚入力を含む、任意の形態で受信することができる。
【０１８３】
本明細書で説明されるシステムおよび技法は、（例えば、データサーバとしての）バックエンド構成要素を含む、またはミドルウェア構成要素（例えば、アプリケーションサーバ）を含む、またはフロントエンド構成要素（例えば、グラフィカルユーザインターフェースを有するクライアントコンピュータ、またはそれを通してユーザが本明細書で説明されるシステムおよび技法の実施形態と相互作用することができるウェブブラウザ）を含む、あるいはそのようなバックエンド、ミドルウェア、またはフロントエンド構成要素の任意の組み合わせを含む、コンピュータシステムで実装することができる。本システムの構成要素は、任意の形態または媒体のデジタルデータ通信（例えば、通信ネットワーク）によって相互接続することができる。通信ネットワークの実施例は、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、およびインターネットを含む。
【０１８４】
コンピュータシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、概して、相互から遠隔にあり、典型的には、通信ネットワークを通して相互作用する。クライアントおよびサーバの関係は、それぞれのコンピュータ上で作動し、相互にクライアント・サーバ関係を有する、コンピュータプログラムによって生じる。
【０１８５】
本明細書で説明されるシステムおよび方法の構造、機能、および装置を考慮して、いくつかの実装では、クロスプラットフォームソフトウェアアプリケーションを開発するための環境および方法が提供される。無線コンピュータデバイス用のソフトウェアアプリケーションの開発および試験を支援するための方法および装置のある実装を説明しているため、本開示の概念を組み込む他の実装が使用されてもよいことが、当業者に明白となるであろう。したがって、本開示は、ある実装に限定されるべきではないが、むしろ以下の請求項の精神および範囲のみによって限定されるべきである。
【図５Ａ】
2015510635.tif 000003
【図５Ｂ】
2015510635.tif 000004
【図５Ｃ】
2015510635.tif 000005
【図５Ｄ】
2015510635.tif 000006
【図５Ｅ】
2015510635.tif 000007
【図５Ｆ】
2015510635.tif 000008
【図５Ｇ】
2015510635.tif 000009
【図５Ｈ】
2015510635.tif 000010
【図７】
2015510635.tif 000011
【図１Ａ】
2015510635.tif 000012
【図１Ｂ】
2015510635.tif 000013
【図１Ｃ】
2015510635.tif 000014
【図１Ｄ】
2015510635.tif 000015
【図１Ｅ】
2015510635.tif 000016
【図１Ｆ】
2015510635.tif 000017
【図２Ａ】
2015510635.tif 000018
【図２Ｂ】
2015510635.tif 000019
【図２Ｃ】
2015510635.tif 000020
【図３Ａ】
2015510635.tif 000021
【図３Ｂ】
2015510635.tif 000022
【図４Ａ】
2015510635.tif 000023
【図４Ｂ】
2015510635.tif 000024
【図６】
2015510635.tif 000025
【国際調査報告】
2015510635.tif 000026