くうと徒然なるままに

モバイルアプリを作りながらバックエンドも作っています。

JXUGのリンク集へMS戸倉さんのXamarin,Azureハンズオンを追加しました。

日本Microsoft の戸倉さん のGithub リポジトリにある Xamarin, Azure ハンズオンがすごすぎるのでみんなに見てもらいたい!ということで、 JXUG.org のウェブサイトに追加しました。

JXUG のウェブサイトでは、 Xamarin に関するURLをまとめたサイトがあります。その中に、Xamarin のハンズオンをまとめた部分もあります。

JXUG : 関連ページ一覧

また、JXUG (Japan Xamarin User Group) のウェブサイトである JXUG,org は Github にウェブサイトのソースコードを置いて管理しています。

ということで、 JXUG の Github リポジトリに PR を出してみました。

github.com

すると

さすが、田淵さん!!!

ということで

是非見てください!

JXUG : 関連ページ一覧

https://lh3.googleusercontent.com/-AXdplZet_Rk/WWSIOqMXIpI/AAAAAAAAK3I/jq2oT_2SoXEPlPxgYRuz7N0IKLX9qs5twCHMYCw/s0/chrome_2017-07-11_17-11-36.png

ツイキャス の OAuth 認証をヘルプするライブラリの V0.1 を Github に公開しました

TwitCasting の API を使うために必要な OAuth 認証を手助けするライブラリを作成しました。

Xamarin, NETFX, ASP.net などから 利用できるように作りました。

動作環境

  • .Net Standard 1.0

機能

現在は、以下の機能が実装されています。個人的に必要最小限が実装されてる感じです。

  • OAuth URL 認証用の URL を生成
  • 認証でリダイレクトされたURLから Access Key を抜き出す

新機能

こんな機能欲しい、とかは、 PR, Issue 送ってください。

github.com

使用例

Auth するためのURLを取得

AuthClient authClient = new AuthClient();
AuthURL.Value = authClient.GetAuthURL(ClientID.Value);

Auth した後のURLから Access Key を取得

AuthClient authClient = new AuthClient();
var AccessKey = authClient.GetAccessTokenFromCallbackURL(AuthURL.Value);

Xamarin 勉強会を Xamarin 公式サイトに掲載してほしいって投稿した

こんにちは、くぅです。

Xamarin 勉強会を 08/19 に名古屋で主催します。ということで、 Xamarin 公式サイトに乗せてもらいたくて、 Post してみました。

イベントページ

jxug.connpass.com

きっかけ

www.xamarin.com

に乗せてもらいたいなと思って、 Xamarin の公式Twitter アカウントにリプを飛ばしてみました。

すると、 Xamarin の中のひとから返信がありました。

ということで、フォーラムに投稿しました。

実際に掲載してもらえるかは微妙ですが、掲載されたらうれしい!

Xamarin から Bing Image Search を使うサンプルを公開しました。

MSP と CenterCLR が 6/24 に開催したイベント 「AI を使いこなせ! Cognitive Services 勉強会!」 にて、私達が登壇した、ハッカソンに出てみたお話」の登壇でデモとして使用した 「Xamarin から Bing Image Search を使うサンプル」 を公開しました。

サンプル自体は、 Xamarin 製ですが、 Bing Image Search を叩く部分は、PCL として切り離してあるため、 WPFASP.NET で、使用するときでも参考になるかと思います。

ソースコードのポイント

 public static async Task<List<ImageData>> GetBingImageSeatchAsync(string MemberName, string BingSubscriotionKey)
        {
            var client = new HttpClient();

            // Request headers
            client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", BingSubscriotionKey);

            var uri = $"https://api.cognitive.microsoft.com/bing/v5.0/images/search?q={MemberName}";

            var response = await client.GetAsync(uri);

            var responseText = await response.Content.ReadAsStringAsync();

            var BingImageURLList = JsonConvert.DeserializeObject<BingImageSearchObject>(responseText);
            var BingMemberList = BingImageURLList.value
                .Select(value => new ImageData() { ImageURL = value.contentUrl })
                .ToList();
            return BingMemberList;

        }

Github

github.com

AI を使いこなせ! Cognitive Services 勉強会!

mspjp.connpass.com

Live Unit Testing がサポートされてないプロジェクトで動かないようにする方法

Live Unit Testing とは

ちょまど さんの ブログ を引用します。

Live Unit Testingでは、コードの編集中にバックグラウンドで影響範囲のユニットテストが実行され、 その結果やテスト範囲がリアルタイムでエディターにわかりやすく表示されます。

短いスパンでユニットテストを回して、バグを早期に見つけることをサポートしてくれる機能です。

Live Unit Testing がサポートしていないプロジェクトは?

結論から先に書くと

.NET Core, UWP Project では動きませんでした。

MSDN Blog によると、現在はサポートしていませんが、将来的にはサポートしたいと書いてありました。

Q: Does Live Unit Testing work with .NET Core? A: Live Unit Testing currently does not work with .NET Core. We are working to add this support in future. blogs.msdn.microsoft.com

Live Unit Testing がサポートしていなプロジェクトがソリューションに含まれている状態で Live Unit Testing が動くとどうなる?

Live Unit Testing のウィンドウに以下のようなエラーメッセージが出ます。うざいので消していきます。

[20:32:18.981 Info] Live Unit Testing は、プロジェクト '{UWP Peoject Path}' で必要な Windows ユニバーサル アプリ コンテナーをまだサポートしていません。このメッセージを非表示にするには、'<BuildForLiveUnitTesting>false</BuildForLiveUnitTesting>' をプロジェクトに追加します。

[20:32:19.118 Info] Live Unit Testing は、プロジェクト '{NET CORE Project Path}' で必要な .NET Core をまだサポートしていません。このメッセージを非表示にするには、'<BuildForLiveUnitTesting>false</BuildForLiveUnitTesting>' をプロジェクトに追加します。

サポートしていないプロジェクトを早速設定していく

Project Folder に入っている .csprj を VSCode で開いて編集していきます。 Project Folder は Visual Studio で編集したいプロジェクトのコンテキストメニューから開けます。

<BuildForLiveUnitTesting>false</BuildForLiveUnitTesting> という文字列を <PropertyGroup></PropertyGroup> のところに追記します。

Visual Studio 15.2 で Can not resolve reference: C:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/ja/mscorlib.resources.dll {iOS Project Name} というエラーが出る

環境

  • Visual Studio 2017 15.2

解決策

1. Visual Studio 2017 のインストールフォルダを開く

パスは、 C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Xamarin

2. Xamarin.Apple.Sdk.targets ファイルを管理権限付きで編集画面を開く(VSCode とかで開けばOK

3. 編集をする

100 行目にある以下の箇所に一文挿入する

$(TargetFrameworkRootPath)$(TargetFrameworkIdentifier)\$(TargetFrameworkVersion)

Before

After

情報源

forums.xamarin.com

Xamarin.Android で作成した アプリの Amazon Android アプリストア へアップデート用バイナリを上げるときに、「バイナリのアップロードに失敗しました。アプリでアップロードされたすべてのバイナリのバージョンコードは一意である必要があります。バージョンコード"1"でアップロードされたバイナリは、旧バージョンのいずれかの既存のバイナリのバージョンコードと競合しています。」と出たから解決してみた

Xamarin.Android で作成した アプリの Amazon Android アプリストア へアップデート用バイナリを上げるときに、「バイナリのアップロードに失敗しました。アプリでアップロードされたすべてのバイナリのバージョンコードは一意である必要があります。バージョンコード"1"でアップロードされたバイナリは、旧バージョンのいずれかの既存のバイナリのバージョンコードと競合しています。」と出たから解決してみた

エラー内容画像

環境

  • Amazon Android アプリストア ですでにアプリを公開している
  • Xamarin.Android 製アプリの .apk 出力
  • すでに公開しているアプリに対しアップデートのために .apk ファイルをアップロード時に発生

解決策

Xamarin.Android のプロパティの中にある Android マニフェスト のところから、バージョン番号とバージョン名を変更したらおkでした。

Xamarin.iOS で System.NotSupportedException. ってエラーが出たから解決してみた

エラーメッセージ

System.NotSupportedException: Encoding 932 data could not be found. Make sure you have correct international codeset assembly installed and enabled. 

環境

  • Visual Studio 2017 Enterprise
  • Windows 10 Pro Creators Update
  • mac os 10.12.4
  • iOS 10.3

解決方法

iOS ビルドの詳細設定の 国際化の設定のところの、 CJK をオンにする

参考サイト

stackoverflow.com

Xamarin 勉強会 in 名古屋 を開催しました。

色々あって投稿が遅れましたが(^◇^;)… JXUG と MSP (Microsoft Student Partners) が共同で勉強会を開催しました。
場所は、 日本Microsoft 中部支社を借りて行いました。
なんと、 38 名もの方にご応募いただき、さらに補欠枠がいくつかできるなど、ありがたい限りです。
内容は、 登壇 4本 + LT でした。

jxug.connpass.com

入門的内容から、基礎的な内容までバランスよく混ぜれたかなと思いました。

私は、 「Xamarin を VSTS で便利に使う」という内容で登壇させていただきました。

参加者の声

f:id:kuxumarin:20170419124136p:plain

感想紹介

たくさんのコメントありがとうございます。紹介しきれないので、いくつかピックアップしてご紹介します。

@amay077 さんのセッション

Xamarin.Android で始めるクロスプラットモバイルアプリ開発

  • xamarinで実際に共通化できる部分を具体的に知れてよかった
  • 初心者ながら、何をしたらいいかが掴めました。それから、専門的な事柄多く、なかなか聞けない内容だったので楽しかったです。

@chomado さんのセッション

Visual Studio Mobile Center とXamarin と Azure で作るiOS/Android アプリ

  • “内容は非常に分かりやすかったし、3/14の東京でのセミナーになかった内容もあり、いろいろ新しい事も知ることが出来ました。 ただ、ちょっと時間が長かったように感じました。(あと10分くらい短いとちょうど良いかな、と感じました。)”
  • 概要を知りたかったので基本から応用まで網羅でき良かった。

@kazuki_kachi さんのセッション

今更だけどReactive

  • 難しかったですがRxを勉強しようと思いました。
  • Rxを丁度勉強したいと思っていたのでやくにたつと思いました

@fumiya_kume さんのセッション

VSTS で Xamarin を便利にする!

  • “(学生向けサービスの紹介のため)知らなかったことだったので、「こういうのもあるんだ」と言う事を知ることが出来ました。 時間の関係で多少端折らざるを得なかったと思うので、次回はじっくり話を聞けたら、と思います。”
  • VSTSについてもっと詳しく知りたいと思いました

より良いコミュニティ/勉強会の運営でご希望やコメントがあればお知らせください。

  • 定期的なもくもく会や勉強会ができればいいと思います。
  • 超超超初心者向きの勉強会も、もしよかったら開催してください。
  • JAVAをやっていたが、アプリ開発も視野に入れたく、xamarinの基本的な勉強会があって良かったです。

写真

https://scontent-nrt1-1.xx.fbcdn.net/v/t31.0-8/17834834_1475247772548580_7212286940498090492_o.jpg?oh=aa63a3b936ee0215565ac1526ffae703&oe=598C0C64

https://scontent-nrt1-1.xx.fbcdn.net/v/t31.0-8/17854771_1475247719215252_5552700728008388482_o.jpg?oh=ff21cbe3e5d982210b7012f71955b2a8&oe=59814B72

https://scontent-nrt1-1.xx.fbcdn.net/v/t31.0-8/17807451_1475247509215273_1396018021337513351_o.jpg?oh=8014ae57a971c0d52e30f5a6980b5910&oe=59997B3E

https://scontent-nrt1-1.xx.fbcdn.net/v/t31.0-8/17854858_1475247342548623_3954597159149668244_o.jpg?oh=1695dcc7c1dff9c8926f2bd8b5c63445&oe=59882E95

https://scontent-nrt1-1.xx.fbcdn.net/v/t31.0-8/17879920_1475247242548633_1456003615563702401_o.jpg?oh=457e8c57357b432d584e99f7630c4389&oe=598315D7

https://scontent-nrt1-1.xx.fbcdn.net/v/t1.0-0/p296x100/17796825_1473534649386559_838954676787632599_n.jpg?oh=b9c1d1df08d381a89051ca747db32d1c&oe=594DDB27

https://scontent-nrt1-1.xx.fbcdn.net/v/t31.0-8/17854754_1475247895881901_4672113518321911407_o.jpg?oh=c1c99157f4e1b50afd99abb221045147&oe=598807A6

https://scontent-nrt1-1.xx.fbcdn.net/v/t31.0-8/17855471_1475247989215225_8943432429250987293_o.jpg?oh=29438cfb733997285685d76f399d88fb&oe=59902787

https://scontent-nrt1-1.xx.fbcdn.net/v/t31.0-8/17834099_1475248085881882_6049245659893178580_o.jpg?oh=0283a03fe7d06b2aefcf6fc407f3cf85&oe=598B4EB6

https://scontent-nrt1-1.xx.fbcdn.net/v/t31.0-8/17834840_1475248735881817_392619415528262172_o.jpg?oh=4da99411c2a9a598e7609b29f06b6e17&oe=5992444C

https://scontent-nrt1-1.xx.fbcdn.net/v/t1.0-9/17800254_1475248942548463_4921846407256770102_n.jpg?oh=ed23fa6093b007292d48108569be2e32&oe=597C1C27

https://scontent-nrt1-1.xx.fbcdn.net/v/t31.0-8/17807225_1475249725881718_116702526923608415_o.jpg?oh=9a5556a5d30e7bd73aef18c9c85731c0&oe=59517596

.NET STAMDERD LIBRARY をが含まれている Xamarin.iOS プロジェクト で "ConvertPdbToMdb" タスクが予期せずに失敗しました。 って出るから解決してみた

エラー

重大度レベル コード 説明 プロジェクト ファイル 抑制状態
エラー "ConvertPdbToMdb" タスクが予期せずに失敗しました。Pdb2Mdb.PortablePdbNotSupportedException: Portable PDB 'C:\Users\User Name\Source\Repos...\obj\Release\netstandard1.0\Project Name.pdb' can't be converted to mdb. Consider setting the project 'DebugType' property to 'Full'. 場所 Pdb2Mdb.Converter.Convert(String filename) 場所 C:\d\lanes\4471\3f99c5a7\source\xamarinvs\src\MSBuild\Xamarin.iOS.Tasks\Pdb2mdb\Driver.cs:行 43 場所 Xamarin.iOS.Tasks.ConvertPdbToMdb.Execute() 場所 C:\d\lanes\4471\3f99c5a7\source\xamarinvs\src\MSBuild\Xamarin.iOS.Tasks\Tasks\ConvertPdbToMdb.cs:行 26 場所 Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() 場所 Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext() Project Name.iOS

解決方法

NET STANDARD Project の プロパティの詳細設定を開く

デバッグ情報を Full にする

参考サイト

bugzilla.xamarin.com