Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Xamarinで作るAndroid Wearアプリ

thinkAmi
March 14, 2015

Xamarinで作るAndroid Wearアプリ

thinkAmi

March 14, 2015
Tweet

More Decks by thinkAmi

Other Decks in Programming

Transcript

  1. Xamarinで作る
    Android Wearアプリ
    @thinkAmi
    GDG信州 AndroidWear Event #3
    2015/3/14
    (で発表する予定だったもの)

    View Slide

  2. 自己紹介
    • Android歴
    – Java
    • 経験なし
    – JRuby (Ruboto)
    • 2ヶ月
    – C# (Xamarin)
    • 1ヶ月

    View Slide

  3. Xamarinとは
    • モバイル向けクロスプラットフォーム
    開発環境
    – Android, iOS
    • 開発言語
    – C#, F#
    • 開発環境(IDE)
    – Visual Studio (Windows)
    – Xamarin Studio (Windows, Mac)

    View Slide

  4. Xamarinとは
    • エディション
    – 無償: Starter
    • アプリサイズが128KBなど、制限あり
    – 有償: Indie, Business, Enterprise
    • 個人で使うには結構お高い...
    » https://store.xamarin.com/

    View Slide

  5. Xamarinとは
    • Microsoftとパートナーシップ
    – 2014/11/12付
    • http://blog.xamarin.com/microsoft-and-
    xamarin-expand-global-partnership/
    • Xamarinを使ったアプリ
    – NHK紅白とか

    View Slide

  6. XamarinでAndroid Wear
    • 2014/11/12に正式対応
    • 注意
    – Xamarin Starterではビルドできない
    • 無償では利用できない
    – 今回は30日評価版を使用
    • ビルドしたアプリは、24時間だけ動作可能

    View Slide

  7. XamarinでAndroid Wear
    • 作り方
    – 正しいのかわからないけれど、とりあえず
    作ってみたのがこちら
    • http://thinkami.hatenablog.com/entry/2015
    /03/06/060342

    View Slide

  8. XamarinでAndroid Wear
    • 自分が欲しいアプリを作ってみた
    – ある月に食べたリンゴのうち、
    1番食べてたリンゴをAndroid Wearに表示
    • UIはあまり気にしない感じで...
    – 用語について
    – Android Wear → Wear と表記
    » スマートウォッチとか
    – Android Handheld → Handheld と表記
    » スマホとかタブレットとか

    View Slide

  9. 自作アプリの流れ①
    • WearからHandheldへ対象の月を送信
    – 今回はランダムで選んだ月を送信

    View Slide

  10. 自作アプリの流れ②
    • Handheldで外部APIを叩いて
    リンゴ情報を取得
    • HandheldからWearへリンゴ情報を送信

    View Slide

  11. 自作アプリの流れ③
    • Wearの画面にリンゴ名と色を表示

    View Slide

  12. 作ってみた感想
    • ラムダ式が使える
    – イベントの登録とか etc
    var send = FindViewById(Resource.Id.send);
    send.Click += (sender, e) =>
    {
    var month = new System.Random().Next(0, 11);
    SendMessageAsync(month);
    };

    View Slide

  13. 作ってみた感想
    • async/awaitが使える
    – 非同期処理の記述が楽
    public async void SendMessageAsync(int month)
    {
    // Handheldと通信するためのNodeIDは
    // WearのUIスレッドでは取得できない
    var nodeIds = await Task.Run(() => NodeIds);
    }

    View Slide

  14. 作ってみた感想
    • LINQが使える
    – コレクションの扱いが楽
    • こんな感じのJSONから、quantities[0]が最大値
    となるオブジェクトを持ってくる
    [{"name":"トキ","quantities":
    [0,0,0,0,0,0,0,0,4,7,0,0],"color":"Yellow"},
    {"name":"フジ","quantities":
    [18,7,9,0,0,0,0,0,0,0,2,5],"color":"Red"},
    {"name":"あかぎ","quantities":
    [0,0,0,0,0,0,0,0,2,0,0,0],"color":"AntiqueWhite"}]

    View Slide

  15. 作ってみた感想
    • LINQが使える
    – コレクションの扱いが楽
    • こんな感じのJSONから、quantities[0]が最大値
    となるオブジェクトを持ってくる
    var topRingo = results
    .OrderByDescending(r => r.quantities[0])
    .First();

    View Slide

  16. 作ってみた感想
    • .NET/Monoのクラスを使える
    – 自分が慣れていることもあり
    // 文字列をバイト配列化
    var bytes = System.Text.Encoding.UTF8.GetBytes(str)
    // 色名からRGB値を持つColor構造体へと変換
    var color = System.Drawing.Color.FromName(name);

    View Slide

  17. 作ってみた感想
    • NuGetでライブラリを導入できる
    – NuGet: .NETのパッケージ管理システム
    – 今回はAPIを叩くときにRestSharpを使用
    • 実際は、NuGetのモノではエラーが出たので
    Xamarin Componentsのものを使用...

    View Slide

  18. 作ってみた感想
    • API 100%移植とのことなので、
    悩んだらAndroid公式資料を見れば良い
    – ツライ

    View Slide

  19. まとめ
    • Xamarinでも
    Android Wearアプリは作成可能
    • Xamarin Starterでも開発できると...

    View Slide

  20. 参考
    • Xamarin公式 Android Wearサンプル
    – http://developer.xamarin.com/samples/a
    ndroid/Android%20Wear/
    • 自作アプリのソースコード
    – https://github.com/thinkAmi-
    sandbox/XamarinRestsharp-sample

    View Slide