読者です 読者をやめる 読者になる 読者になる

Xamarin 日本語情報

Xamarin(ザマリン) の代理店だったエクセルソフト田淵のブログです。主に Xamarin に関するエントリーをアップしていきます。(なるべく正しい有益な情報を掲載していきたいと考えていますが、このブログのエントリーは所属組織の公式見解ではありませんのでご注意ください)

目次

Xamarin

はじめに

Xamarin (ザマリンと読みます) とは、Gnome, Mono の開発者である Migel de Icaza (ミゲル・デ・イカザ) 氏が立ち上げた企業名であり、C#Android, iOS, Mac のネイティブアプリを作成できる開発ツール郡 (Xamarin.Android*1、Xamarin.iOS*2、Xamarin.Mac*3、Xamarin Studio*4 など) のブランド名です。

2016/4/1 をもって、Visual Studio に付いてくるようになりました。

本ブログは、エクセルソフトの田淵義人が Xamarin に関する様々な情報を記載しています。Xamarin って何だろ?という方、Xamarin についてもっと知りたい。というような開発者の皆様の手助けになれば幸いです。

まだ Xamarin に関する日本語の情報は少ないのが現状ですので、まず手始めにどのような情報を追えばよいのかを纏めておきます。

 

Xamarin とは?

紹介スライドなどをご覧ください。

 

書籍

 

コミュニティ

公式コミュニティサイト Japan Xamarin User Group (JXUG) 

facebook User Group

 

各種情報へのリンク

本ブログの主なエントリー

全般
Xamarin.Forms
Xamarin.Forms TIPS/逆引き
Xamarin Test Cloud
BAD KNOW HOW

全記事一覧 - Xamarin 日本語情報

Xamarin.Forms エントリー纏め

 

事例

事例

 

エクセルソフト Xamarin ページ

Qiita

ブログ、連載記事など

 

Xamarin 本家の開発者向けの情報(英語)

Xamarin 学習用リソースまとめ でも公式情報を纏めていますので、ご参照ください。

 

Xamarin 気になった方は

是非 ダウンロード(直接) / ダウンロード(弊社経由) して触ってみてください。
学習用リソースJXUG リンクページ に参考資料を纏めてますので併せてどうぞ。

Xamarin の情報が欲しい方はこのブログも購読いただいたりすると嬉しいです。

以上です。

*1:旧 MonoDroid, Mono for Android

*2:旧 MonoTouch

*3:OSS版はMonoMac

*4:OSS 版は MonoDevelop

Xamarin.Forms で Amazon Product Advertising API を使うには - コードでの URL 生成〜署名

Xamarin Xamarin.Forms

こんにちは。エクセルソフトの田淵です。

前回のエントリーでは Amazon API を試しに使ってみるところまでを行いました。

ytabuchi.hatenablog.com

2016/7/21 時点での API 仕様です。変わる場合がありますのでご注意ください。

署名について

Scratchpad で[Run Request]ボタンからリクエストを生成した際に、[Request URL]セクションに生成された URL が表示されたはずです。[Unsigned URL]と[Signed URL]があり、例えば次のようになっています。

f:id:ytabuchi:20160721152757p:plain:w450

[Signed URL]が署名済みの URL なのですが、通常の URL にタイムスタンプと、URL をシークレットキーを使用して HMAC-SHA256 でハッシュ化した署名を追加する必要があります。署名については以下をご参照ください。

EULA に基本的には 1秒に 1回のアクセスが認められる。とあるように、沢山アクセスされては困るのでこのような処理をしているんだと思いますが、面倒ではありますね。ここからは実際にコードで URL を生成したいと思います。幸い Amazon にサンプルコードがありましたのでそれを使いましょう。

サンプルコードを見てみよう

Product Advertising API Signed Requests Sample Code - C# REST/QUERY

こちらをダウンロードして展開します。

コンソールアプリで動作を確認

AmazonProductAdvtApiSample.sln を開きます。

f:id:ytabuchi:20160721151411p:plain:w450

Mac の場合は、プロジェクトの .NET のバージョンを 4.5.1 にします。(Windows は恐らくそのまま使える?未調査です。すみません。)

f:id:ytabuchi:20160721152856p:plain:w450

変更時に警告が出る場合は OK で進みます。

f:id:ytabuchi:20160721153224p:plain:w450

ItemLookupSample.csSignedRequestHelper.cs がサンプルなのですが、そのままでは動きません。Product Advertising API の仕様が変わる前のサンプルコードのようです。正しく動くように変更していきます。

現行の仕様に合わせる

まずは現在の API の仕様に合わせて問い合わせの URL を作成する部分を変更します。

ItemLookupSample.csItemLookupSample クラスは主に以下を。

  • クラス変数を追加、変更。
    • MY_AWS_ASSOCIATE_TAGID_TYPE を追加。
    • DESTINATIONNAMESPACE を変更。
  • 上記の必要な定数を SignedRequestHelper の引数に追加。

SignedRequestHelper.csSignedRequestHelper クラスは主に以下を。

  • ItemLookupSample で引数に追加した変数を受け取れるように。
  • sortedMap Dictionary に必要事項を追加。

この時点での変更点は以下です。

github.com

これで実行してみましょう。以下の出力が得られれば成功です。

Method 1: ItemLookup Dictionary form. Title is ".NET開発テクノロジ入門2016年版Visual Studio 2015対応版"

Xamarin.Forms で動くように、PCL 対応する

では、これをそのまま Xamarin.Forms に持って行って動くか?というと動かないわけです。

うろ覚えですが、PCL の Profile 7 には System.Xml.XPath, System.Net.WebRequest, System.Security.Cryptography などの名前空間がなかったと思います。そのため、これらを別の方法で実装しなくてはいけません。

まずは以下を変更しました。

  • AmazonXml.cs を用意して、XML の受け口を用意
  • HttpClientXML を取得し、XmlSerializer でドカンとデシリアライズする

この時点での変更点は以下です。

github.com

次は PCLCrypto を使用した署名の処理に置き換えます。

  • ハッシュ化するアルゴリズムAmazonの場合はHMAC-SHA256)を決めて SecretKey を用いてhasherインスタンス
  • PCLCryptoを使用して、リクエストURLをhasherでハッシュ化して署名

この時点での変更点は以下です。

github.com

これで実行して、以下の出力が得られれば成功です。

Method 1: ItemLookup Dictionary form. Title is ".NET開発テクノロジ入門2016年版Visual Studio 2015対応版"

Xamarin.Forms で使ってみよう

ということで無事 PCL で動くようになりましたので、Xamarin.Forms アプリに組み込めば完成です(^^)

今回は Azure の Easy Table に接続するサンプルで使った関係でコードビハインドでゴリゴリですが、以下、サンプルです。

github.com

Azure の Table クラスを Task で返すように public async Task<TodoItem> Lookup(string isbn) にして、ISBN が 10桁の場合を考慮して IsbnConverter.ConvertToISBN13(isbn); だけ追加していますが、後はそのまま使っています。

こんな感じでタイトルを取得して、ListView には Title と画像と商品ページへのリンク(必要みたいだし)を入れています。

f:id:ytabuchi:20160721192536g:plain:w300

これで Amazon API も怖くないですね。AWS への問い合わせはわかりませんが、EC サイトはすべてこのように署名を追加する必要があるようです。

なお、10桁>13桁の変換は @ch3cooh 先生の PCL で動作する ISBN 10桁13桁入れ替えのコードをそのまま使わせてもらいました。ありがとうございます。

blog.ch3cooh.jp

Xamarin 気になった方は

是非 ダウンロード して触ってみてください。Visual Studio 2015 をご利用の方は Update 3 にアップデートする際にカスタムインストールで Xamarin を追加しましょう。 学習用リソースJXUG リンクページ に参考資料を纏めてますので併せてどうぞ。

Xamarin の導入支援サービスを始めました。ベースは基本的なアプリを一緒に作ることで Xamarin を使えるようになって頂く内容ですが、ご要望に応じて講習内容のカスタマイズも可能です。詳しくは田淵までお問い合わせください(^^)

ytabuchi.hatenablog.com

Xamarin の情報が欲しい方はこのブログも購読いただいたり、私のTwitterアカウントをフォローいただいたりすると嬉しいです。

私が所属している エクセルソフト の宣伝を少しさせてください。弊社は開発者向けの様々なソフトウェアを扱っています。おなじみの ReSharper (JetBrains)、 や Atlassian の JIRA, Confluence、Office/PDF ファイルを .NET/Java で操作するライブラリ Aspose(アスポーズ)Windows アプリ、Web ページ、iOS/Android アプリの UI テストができる TestComplete などお勧めです(^^) また、Visual Studio Professional/Enterprise with MSDN も販売してますし、日本で売っていない海外のソフトウェア、開発ツールなどを弊社経由で日本円で購入頂くことも可能です。ご興味あれば 弊社ページ を覗いてみてください。

以上です。

Xamarin.Forms で Amazon Product Advertising API を使うには - アクセスキー生成〜接続確認

Xamarin Xamarin.Forms

こんにちは。エクセルソフトの田淵です。

ytabuchi.hatenablog.com

でね、私も Tシャツ欲しいなと思いまして。Tシャツを貰える基準が分からなかったので、それならばと ISBN を打ち込んで(または Scan して)、取り込んだ ISBN から本の名前とかを引っ張って Azure に登録するアプリ作ってみようかなと思いました。AmazonProduct Advertising API を使用すると実現できますので、その利用方法を紹介します。

2016/7/21 時点での情報と画面写真です。変わる可能性もありますのでご注意ください。

Amazon Product Advertising API について

Amazonウェブサイトにトラフィックをドライブし、Amazonウェブサイト上の商品およびサービスの販売を誘導することを主な目的としている場合、ならびに以下のライセンス契約に記載されている要件を満たしている場合に限りのみご利用可能なサービスです。

とのことです。以下をご参照ください。

Amazon.co.jp Product Advertising API ライセンス契約

事前準備

API を使用するのに必要なものは

です。Amazon アソシエイトと AWS のアカウントは別々にアクティベートしないといけなさそうです。

まずは Amazon アソシエイトプログラムを使用していない方は Product Advertising API にアクセスして、アカウントを作成しましょう。

アカウントの作成方法は公式ヘルプ Amazon アソシエイト(アフィリエイト) - ヘルプ をご参照ください。出来たかどうか?は コチラ で確認できます。

次に Product Advertising API のページ

f:id:ytabuchi:20160721112329p:plain:w450

にアクセスし、[こちらのリンク]をクリックします。

f:id:ytabuchi:20160721112629p:plain:w450

こんな画面が出てきたら[セキュリティ認証に進む]をクリックします。(IAM ユーザー認証というのを使用すると AWS 本体自体はよりセキュアに管理できるようですが、Product Advertising API はまだサポートしていないそうです)

この画面にいけずに、AWS のアカウントが必要だよと言われる場合は、次のリンクを参考にアカウントを作成してください。

AWS アカウント作成の流れとポイント | AWS

[アクセスキー]セクション内の[新しいアクセスキーの作成]ボタンで[アクセスキー ID]を作りましょう。

f:id:ytabuchi:20160721120402p:plain:w450

作成すると次の画面がでますので、[アクセスキーを表示]するか[キーファイルのダウンロード]ボタンをクリックして アクセスキーID (AWSAccessKeyId)シークレットアクセスキー (AWSSecretKey) を入手してメモしておきます。

f:id:ytabuchi:20160721125950p:plain:w450

シークレットキーはこの段階で保存しておかないと後でアクセス出来ないので、必ず保存してください

3つの情報が揃いました。

動作確認

Amazon では ScratchPad を用意してくれているので、正しく問い合わせできるか?を確認してみましょう。

.NET開発テクノロジ入門2016年版Visual Studio 2015対応版

.NET開発テクノロジ入門2016年版Visual Studio 2015対応版

この書籍の管理番号 ISBN-13 は 9784822298616 です。今回はこの ISBN で書籍の情報が取れるかを確認してみます。

Product Advertising API Scratchpad (beta) にアクセスし、[ItemLookup]をクリックします。

API の仕様は Product Advertising API 開発者ガイド (API Version 2010-09-01) - ItemLookup をご参照ください。他の API の仕様も確認できます。

[Common Parameter]セクションで[Marketplace]から 日本 を選びます。

f:id:ytabuchi:20160721131736p:plain:w450

先ほど保存したアソシエイトタグ、アクセスキー、シークレットキーを入力します。

f:id:ytabuchi:20160721133007p:plain:w450

次に[ItemLookup]の[Request parameters]セクションで、[ItemId]に 9784822298616 を入力し、[IdType]から「ISBN」を選択します。[ResourceGourp]はそのままでも大丈夫です。ISBN で問い合わせる場合は、[SearchIndex]に「Books」を指定しないといけないので、[Add a new parameter]から「SearchIndex」を追加して、「Books」を選択します。

f:id:ytabuchi:20160721134611p:plain:w450

[Run Request]ボタンをクリックしてみましょう。

f:id:ytabuchi:20160721140700p:plain:w450

レスポンスが正しく得られれば成功です。

この後は

リクエスト URL は署名する必要があります。次のエントリーではこの署名の方法について紹介します。以下ご参照ください。

ytabuchi.hatenablog.com

Xamarin 気になった方は

是非 ダウンロード して触ってみてください。Visual Studio 2015 をご利用の方は Update 3 にアップデートする際にカスタムインストールで Xamarin を追加しましょう。 学習用リソースJXUG リンクページ に参考資料を纏めてますので併せてどうぞ。

Xamarin の導入支援サービスを始めました。ベースは基本的なアプリを一緒に作ることで Xamarin を使えるようになって頂く内容ですが、ご要望に応じて講習内容のカスタマイズも可能です。詳しくは田淵までお問い合わせください(^^)

ytabuchi.hatenablog.com

Xamarin の情報が欲しい方はこのブログも購読いただいたり、私のTwitterアカウントをフォローいただいたりすると嬉しいです。

私が所属している エクセルソフト の宣伝を少しさせてください。弊社は開発者向けの様々なソフトウェアを扱っています。おなじみの ReSharper (JetBrains)、 や Atlassian の JIRA, Confluence、Office/PDF ファイルを .NET/Java で操作するライブラリ Aspose(アスポーズ)Windows アプリ、Web ページ、iOS/Android アプリの UI テストができる TestComplete などお勧めです(^^) また、Visual Studio Professional/Enterprise with MSDN も販売してますし、日本で売っていない海外のソフトウェア、開発ツールなどを弊社経由で日本円で購入頂くことも可能です。ご興味あれば 弊社ページ を覗いてみてください。

以上です。

【リリース情報】iOS 10、tvOS 10、watchOS 3、macOS Sierra プレビュー

お知らせ Xamarin iOS

こんにちは。エクセルソフトの田淵です。

blog.xamarin.com

iOS 10、tvOS 10、watchOS 3、macOS Sierra 対応のプレビューがリリースされましたね。

iOS 10 では SiriKit の他、時間やジオフェンスによる通知、その他新機能など使えるようです。

developer.xamarin.com

watchOS は 2 が未だに Preview なのでは?という疑問もあったりしますが、3 対応版がプレビューでも出るのは嬉しいですね。

iOS 以外の詳細はブログからリンクされているドキュメントをご参照ください。

Xamarin 気になった方は

是非 ダウンロード して触ってみてください。Visual Studio 2015 をご利用の方は Update 3 にアップデートする際にカスタムインストールで Xamarin を追加しましょう。 学習用リソースJXUG リンクページ に参考資料を纏めてますので併せてどうぞ。

Xamarin の導入支援サービスを始めました。ベースは基本的なアプリを一緒に作ることで Xamarin を使えるようになって頂く内容ですが、ご要望に応じて講習内容のカスタマイズも可能です。詳しくは田淵までお問い合わせください(^^)

ytabuchi.hatenablog.com

Xamarin の情報が欲しい方はこのブログも購読いただいたり、私のTwitterアカウントをフォローいただいたりすると嬉しいです。

私が所属している エクセルソフト の宣伝を少しさせてください。弊社は開発者向けの様々なソフトウェアを扱っています。おなじみの ReSharper (JetBrains)、 や Atlassian の JIRA, Confluence、Office/PDF ファイルを .NET/Java で操作するライブラリ Aspose(アスポーズ)Windows アプリ、Web ページ、iOS/Android アプリの UI テストができる TestComplete などお勧めです(^^) また、Visual Studio Professional/Enterprise with MSDN も販売してますし、日本で売っていない海外のソフトウェア、開発ツールなどを弊社経由で日本円で購入頂くことも可能です。ご興味あれば 弊社ページ を覗いてみてください。

以上です。

Azure Mobile Apps ことはじめ

Azure Xamarin

こんにちは。エクセルソフトの田淵です。

Tシャツアプリのエントリーでも書きましたが、「Mobile Apps Quickstart」とやらを使ってみました。

本当に5分で Easy Table を使った Mobile Apps とそれに接続する Xamarin.Forms や Xamarin ネイティブのアプリが出来ましたので、ことはじめとしてエントリーに残します。

はじめに

Azure のアカウントを用意しましょう。アカウントが無い方は、以下からアカウントを作成しましょう。

azure.microsoft.com

クレジットカードの登録が必要ですが、30日?60日?の評価期間が終わっても無条件に課金されることはありませんし、各サービスもいくつか無料のプランがありますので、それを使っていればそのまま継続して利用できます。

Mobile Apps Quickstart で Mobile Apps を作成

では進めていきます。

azure.microsoft.com

上記リンクにアクセスし、緑の[Creaate Web App]ボタンをクリックします。

f:id:ytabuchi:20160716125125p:plain:w450

Azure の Portal で新規作成画面に移行しますので、[アプリ名]と[リソースグループ]を入力します。リソースグループは新規に作った方が管理しやすいです。

f:id:ytabuchi:20160716131312p:plain:w450

[App Service プラン]をクリックして、プラン選択画面で[新規作成]をクリックし、[App Service プラン]に任意の名前を入力し、[場所]で Japan EastJapan West を選択します。

f:id:ytabuchi:20160716131328p:plain:w450

[価格レベル]をクリックして、[すべて表示](みたいなやつ)をクリックして、任意のプランを選びます。ここでは Free を選択します。

f:id:ytabuchi:20160716131433p:plain:w450

これで Mobile App ができましたw 早い!

サンプルのアプリをダウンロード

ダッシュボードで作成された Mobile App を選択します。(ここでは「QRYonda」です)

f:id:ytabuchi:20160716131453p:plain:w450

[設定]画面が表示されるので、[全般]から[クイックスタート]をクリックします。Xamarin のサンプルが表示されるので、今回は Xamarin.Forms を選びました。

f:id:ytabuchi:20160716131525p:plain:w450

3の[CREATE A NEW APP]を選択して、[Download]ボタンをクリックします。

f:id:ytabuchi:20160716131602p:plain:w450

ダウンロードしたプロジェクトをビルドしてみました。

f:id:ytabuchi:20160716131631p:plain:w300

できてる!!!!!笑

データが更新されているか確認

もう一度プロジェクト画面に戻り、[設定]画面の[全般]の少し下の[モバイル]の[Easy Table]を選択し、todoitem をクリックします。

f:id:ytabuchi:20160716131657p:plain:w450

Easy Table にデータが追加されてる!!!!

f:id:ytabuchi:20160716131707p:plain:w450

簡単ですね

雛形は出来たので、後はプロジェクトの Model の「TodoItemManager.cs」やコードビハインドの「TodoList.xaml.cs」を見てみてみましょう♪

これを元に T シャツをゲットしましょう!!!

Xamarin 気になった方は

是非 ダウンロード して触ってみてください。Visual Studio 2015 をご利用の方は Update 2 にアップデートする際にカスタムインストールで Xamarin を追加しましょう。 学習用リソースJXUG リンクページ に参考資料を纏めてますので併せてどうぞ。

Xamarin の情報が欲しい方はこのブログも購読いただいたり、私のTwitterアカウントをフォローいただいたりすると嬉しいです。

私が所属している エクセルソフト の宣伝を少しさせてください。弊社は開発者向けの様々なソフトウェアを扱っています。おなじみの ReSharper (JetBrains)、 や Atlassian の JIRA, Confluence、Office/PDF ファイルを .NET/Java で操作するライブラリ Aspose(アスポーズ)Windows アプリ、Web ページ、iOS/Android アプリの UI テストができる TestComplete などお勧めです(^^) また、Visual Studio Professional/Enterprise with MSDN も販売してますし、日本で売っていない海外のソフトウェア、開発ツールなどを弊社経由で日本円で購入頂くことも可能です。ご興味あれば 弊社ページ を覗いてみてください。

以上です。