WinPhone DevHub-すべてのWP7開発者が利用できるモバイルアプリケーション

ほぼすべてのWP7開発者は、サードパーティのコントロールライブラリを使用しています。 開発者として、特定のライブラリのサンプルをダウンロードし、それをコンパイルして携帯電話にインストールしましたか? ApplicationBarに適したアイコンを探していた瞬間はありましたか? 彼女を見つけるのにどれくらいかかりましたか? そして、おそらく、新しいアイコンが表示されるタイミングを知りたいですか? これと他の何かをWindows Phone用の1つの無料アプリケーションにアセンブルしますか? はいの場合は、猫へようこそ。WinPhoneDevHubアプリケーションの説明とその作成に関する技術的な詳細が記載されています。



私自身はWindows Phone用に開発しており、多くの場合、さまざまなライブラリのコントロールの例を電話に配置する必要があります。 ライブラリをダウンロードしてコンパイルし、電話で実行する必要があるため、これは長くなるだけでなく、開発アプリケーションで使用可能なスロットの数も減ります(現在、この数は10です)。 たとえば、Telerikには、RadControlsの使用例が含まれた優れたデモアプリケーションがマーケットプレイスにあります。 私は、 Silverlight PhoneツールキットCoding4Funツール キットamChartsなどのライブラリの開発者に頼り 、ライブラリのサンプルを含むアプリケーションをリリースする予定があるかどうかを尋ねました。 すべての開発者は、ポイントがわからないと答えました。 それから、人気のあるライブラリの例をまとめてアプリケーションとしてリリースするというアイデアを思いつきました。



開発者にとって他に役立つものをアプリケーションに追加できることを考えて、ApplicationBarのアイコンは非常に人気があるという結論に達しました。 ほとんどすべてのプログラムで使用されます。



したがって、アプリケーションの最初のバージョンでは、いくつかのサードパーティライブラリのコントロールのサポートを実装し、いくつかの一般的なアイコンセットを追加することにしました。



次の制御ライブラリを選択しました。







ライブラリを選択すると、対応するデモがロードされます。







おそらく、コントロールの他のライブラリを追加することは理にかなっていますが、提示されたセットの最初のバージョンでは十分です。



アイコンセットの中から、次の3つを選択しました。







開発はデスクトップマシンで実行され、サンプルは電話で公開されているため、アプリケーションに実装されている非常に重要な機能は、プログラムに表示されているお気に入りのツールセットに関する詳細情報(ダウンロードリンクを含む)を取得する機能です。 これを行うには、アプリケーションのメインページで適切なセットのコンテキストメニューを呼び出し、詳細情報を記載したメールを自分宛に送信します。







このアプリケーションを使用すると、ユーザーはUservoiceサービスを使用してアプリケーションを改善するための提案を送信できます([バージョン情報]タブまたはセクション[ 最後のバージョン情報] ダイアログを参照)。



いくつかの技術的なポイント


すべてのデモアプリケーションは、それぞれのライブラリからプロジェクトとして取得され、アプリケーションソリューションに含まれています。 このソリューションには、コントロールアプリケーションの対応するライブラリに移動するためのリンクを表示するメインアプリケーションがあります。



当初、アプリケーションはMVVMパターンを観察せずに作成されました。主な目標は、デモアプリケーションを取得し、これらのプロジェクトをソリューションに含め、各デモアプリケーションのメインページへのリンクを表示することです。 実践が示しているように、このアプローチにより、1回限りのアプリケーションを作成できます。 拡張はほとんど不可能です。コードは古典的なスパゲッティコードのように見えます。多かれ少なかれ複雑な自動化の実装は非常に困難です。 現在、アプリケーションはMVVMを使用して書き換えられています。



当然、最初はメイン画面に、ハードコーディングされたデモアプリケーションへのハードコーディングされたパスを持つボタンを配置しました。 私はすべてを手で処方しなければならず、それは退屈で便利ではありませんでした。 最終的に、怠wonが勝ち、xmlファイルを作成し、アプリケーション名、アイコンへのパス、メインアプリケーションファイルへのパスなど、各ライブラリに関連するすべてのパラメーターを作成しました。これにより、xmlファイルを読み取り、ソースを形成するアルゴリズムを実装できましたListBoxのデータ。 私の場合(そして間違いなく私に!)、新しいデモプロジェクトを追加するというアイデアが思い浮かぶので、xmlファイルを更新し、このプロジェクトをソリューションに追加するだけです!



<ControlToolkits> <ControlToolkit> <Id>1</Id> <Name>Coding4Fun Phone Toolkit</Name> <Version></Version> <MainPageUri>/Coding4Fun;component/MainPage.xaml</MainPageUri> <About></About> <Author>Coding4Fun</Author> <ImageLogo>Images/Coding4FunLogo.png</ImageLogo> <Background>#FFF09609</Background> <ToolkitUrl>http://coding4fun.codeplex.com/</ToolkitUrl> </ControlToolkit> <ControlToolkit> <Id>2</Id> <Name>Silverlight Phone Toolkit</Name> <Version></Version> <MainPageUri>/SilverlightToolkit;component/MainPage.xaml</MainPageUri> <About></About> <Author>Microsoft</Author> <ImageLogo>Images/SilverlightToolkitLogo.png</ImageLogo> <Background>#FF1BA1E2</Background> <ToolkitUrl>http://silverlight.codeplex.com/</ToolkitUrl> </ControlToolkit> .... </ControlToolkits>
      
      





ストーリーはアイコンの場合と似ていますが、アイコンの数がはるかに多いため(現時点では700を超えているため)、怠け者は私をはるかに早く倒しました。そして、作業の次のレベルの自動化に到達しようとしました。対応するプロジェクトフォルダー、VisualStudioで表示される新しいファイルを確認し、プロジェクトに追加します。 画面に新しいアイコンを表示するには、アプリケーションのコンパイル、起動、および対応するアイコンのセットを開くだけです。 したがって、ライブラリ、作成者、説明などのアイコンが保存されているフォルダーへのパスを指定する同様のxmlファイルを作成しました。xmlファイルからのデータの読み取りは、Linq-To-Xmlテクノロジーを使用して実行されます。



 <IconSets> <IconSet> <Id>3</Id> <Name>Templarian Pack</Name> <Version>1</Version> <Path>/Icons/Templarian/</Path> <About>This is a project started a few months ago to supply creative commons licensed icons to Windows Phone developers. If you found these useful feel free to buy me a beer with the donate button in the footer.</About> <Author>Austin Andrews</Author> <Background>#FF00ABA9</Background> <PanoramaBackgroundPath>Images/PanoramaBackground4.jpg</PanoramaBackgroundPath> <Url>http://templarian.com/project_windows_phone_icons/</Url> </IconSet> .... </IconSets>
      
      





ここで私は非常に楽しい驚きを期待していませんでした、なぜなら 指定したパスのプロジェクトに保存されているリソースのリストを取得できません。 唯一のオプションは、そのようなリソースをEmbedded Resource



としてマークし、必要なアイコンをフィルターすることです。 一方、 Embedded Resource



としてマークされたアイコンはデータバインディングに参加できないため、追加のコードを書く必要があります。 ソリューションが突然現れました-VisualStudioに組み込まれているT4のようなツールを使用して、現在のプロジェクトのメタデータ(ファイル、フォルダー、それらの場所など)に基づいて任意のファイルを生成できます。 数行のコードと、表示するすべてのアイコンのパスを含む別のxmlファイルがあります。 アイコンの属性をEmbedded Resource



からContent



に変更することにより、バインディングプロセスでそれらを使用できます。これにより、パフォーマンスが向上し、コードが簡素化されます。 コード生成を伴うソリューションは、アプリケーションの次のリリースで使用されます。



ユーザーインターフェイスで要素を構築するためのデータソースとしてxmlファイルを使用するアプローチは、ライブラリYour Last About Dialogでも使用されることに注意してください。 初期データ(名前、説明、住所など)を設定するだけで、システム自体がMetroアプリケーションのすべてのルールに従ってユーザーインターフェイスを構築します。



このアプリケーションでは、分析とエラー追跡のための既成のソリューションを試すことにしました。



Flurryサービスを通じて分析情報を取得することにしました。 このサービスはWindows Phoneのライブラリを提供します。接続は非常に簡単ですApp.xaml.cs



ファイル内の1行は特定のイベントを送信し、もう1行です。 主なことは、どのイベントが受信に役立つか、どのイベントパラメーターを示す必要があるかを考えることです。 WPDevHubでは、ユーザーがアクセスするコントロールとアイコンのライブラリーと、ユーザーがメールで自分自身に送信するライブラリーの説明を追跡します。



エラーを追跡するには、 バグセンスサービスを使用します(Kinopoiskアプリケーションの作成に関する記事のハブで既に説明しました)。 このサービスは、 App.xaml.cs



ファイルに1行追加することでも接続されます。 無料版のアカウントに固有の制限にもかかわらず、このサービスは非常に便利で非常に便利です。 無料のアカウントを使用すると、サーバーにエラーを7日間保存でき(新しいエラーのメールによる通知が定期的に届きます)、1か月に500件を超えるエラーを受信できません。 このサービスは、スタックトレース、電話の詳細、OSバージョン、国、ネットワーク接続のタイプ、エラーの頻度など、エラー自体に関する詳細情報を提供します。彼女に関するメール通知を送信します。 ただし、システムによってレポートを作成する場合、エラー自体のすべてのケースがもちろん考慮されます。







エラーの大半はデモプロジェクトで特定されたことに注意してください。 これらのプロジェクトは、Marketplaceでの認証段階を通過するときに必要な徹底性でテストされていないため、これは理解できます。 Bugsenseは非常にうまく機能し、デモアプリケーションには多数のバグがありましたが、次のリリースで修正する必要があります。



Bugsenseは、オープンソースプロジェクトのプレミアムプランを活用する機会を提供します(通常のプロジェクトの場合、このようなプランのコストは1か月あたり300米ドルです)。 私はそのような申し出を利用することに失敗することはありませんし、近い将来、オープンライセンスの下でプロジェクトを公開します。



収益化のメカニズムとして、広告を表示することにしました。 私はMicrosoft PubCenterを広告プロバイダーとして使用していますが、広告プロバイダーはいくつかの最高の広告料金を持っています。 残念ながら(残念ながらP)、ユーザーがこれらの広告プロバイダーがサポートされていない国に対応する地域設定を持っている場合、 AdControl



は広告を非表示にして表示しません。 たとえば、ベラルーシとロシアはサポートされていません。 次のバージョンの1 つではWindows Phone 7 Ad Rotatorに切り替えて、複数の広告プロバイダーを一度に使用して収益を最大化できるようにする予定です。



次のリリースでは、メインページのデザインをやり直して、新しいエンティティと新しい機能を追加できるようにする予定です。 たとえば、開発者に役立つチートシート(デザインのガイドライン、認証、アプリケーションの公開時のチェックリストなど)を追加したり、コントロールやアイコンの新しいライブラリなどを追加したりします。



WinPhone DevHubがWindows Phoneのすべての開発者向けのデスクトップ(ハンドヘルド?)アプリケーションになることを望み、アプリケーションを改善するためのすべての要望を満たすことができます。 アプリケーションに追加できる他のアイデアがある場合は、何らかの方法で日付を知る必要があります。



アプリケーションをダウンロードする場合は、マーケットプレイスで([About]タブまたは[Last About]ダイアログから)評価するために怠notにならないでください。



Marketplaceのアプリケーションにリンクします。

カスタムのヒントやアイデアのリンク

フィードバックのメール

名刺サイト






All Articles