rksoftware

Visual Studio とか C# とかが好きです

Xamarin Android ハンズオンをアップデートしました

どこまで効果があるかはまだ分かりませんが、自分でやってみた範囲では結構効果がありそうです。

今週末に品川グランドセントラルタワーで JXUG Xamarin.iOS & Xamarin.Androidハンズオン! が開催になります。

■ 過去の開催

このハンズオンの Xamarin.Android のハンズオン講師をさせていただきます。このXamarin.Android ハンズオンですがリピート開催にななっています。

・過去の開催

■ 刺身タンポポ

このハンズオンは Android Java のサンプルアプリを Xamarin.Android に書き換える体験をしていただくものです。
とてもシンプルなコンセプトなのですが、大きな問題が一つありました。書き換え元の Android Java コードが何気なく大作で書き換えの作業量が多かったのです。 過去のこのハンズオンの問題点として単純作業が多すぎて内容に集中できないというフィードバックをいただくこととなりました。

Java と C# の違い

書き換えのまず第一歩として存在するのが Java ではメソッド名は小文字で始まりますが、C# では大文字始まりになります。たかがその程度、サンプルアプリのコードなら相対したことはないだろう、そう思いませんか? 私は思ってしまいました。しかし現実は...

f:id:rksoftware:20181031052405j:plain

非常に書き換えが多いです。
確かにこれでは理解に集中できませんね。

■ テキストのアップデート

今回から繰り返しの作業を軽減するため、最初の一つを残して Java → C# への書き換えを済ませたコードを用意しました。

例えばメソッド名の先頭の書き換えですが、最初の一回 codec.start(); を除いて書き換えを済ませています。

private MediaCodecWrapper(MediaCodec codec) {
    mDecoder = codec;
    codec.start();
    mInputBuffers = codec.GetInputBuffers();
    mOutputBuffers = codec.GetOutputBuffers();
    mOutputBufferInfo = new MediaCodec.BufferInfo[mOutputBuffers.length];
    mAvailableInputBuffers = new Queue<int>(mOutputBuffers.Length);
    mAvailableOutputBuffers = new Queue<int>(mInputBuffers.Length);
}

これでだいぶ理解に集中できるようになると思います。

■ チャレンジしてみてください

ハンズオンは手順をきちんとテキストで書いているので、今すぐお一人でチャレンジでします。ぜひチャレンジしてみてください。

■ イベント参加も

一人でチャレンジできることは素晴らしいですが、イベントへの参加も得るものが多くあると思います。
また、一人だとなかなか捗らないという方にもイベント参加がおすすめです。ぜひイベント参加を検討してみてください。
2018/10/03(土) 開催です。iOS に関心のある方もぜひ検討してみてください。