JXUGC #17 お前の Xamarin アプリを見せてみろ!
http://jxug.connpass.com/event/39470/
keep.grass について発表してきました。
https://github.com/wraith13/keep.grass
keep.grass は近日ストア公開予定の iOS, Android, UWP 向けのアプリで、Github 上での進捗を途切れさせることがないように最終アクティビティを確認および残時間を通知する為のアプリです。
今回、スライドなしで発表してきたんですが、その内容と周辺の情報について簡単に情報をまとめておきます。
#ちょまど賞メモ #JXUG
— ちょまど@MS入社して5ヶ月 (@chomado) 2016年10月15日
また Xamarin .Forms 製!@wraith13 さんによる「keep.grass」アプリ!
その名の通り、「GitHub の草を途切れさせないように」するためのアラートアプリ!https://t.co/iaZ4AEOSPR pic.twitter.com/OLROCFNH6F
Twitter上で日本語縛りで Xamarin ユーザー検索してフォロワー数の降順に並べると自分がどうやら三番目にくるらしく、ホント、なんか申し訳ない。。。
Xamarin&&日本語
— ちょまど@MS入社して5ヶ月 (@chomado) 2016年10月15日
指定でのフォロワー数でのソートだって!
見て〜!私が一番だよ!!
(とても嬉しかったので2回目の再掲!)
ちなみに日本語指定を外して世界中になると、私は世界5位なんだって!(1位はXamarin創業者ミゲル、2位はXamarin公式アカ)#JXUG pic.twitter.com/wq11PdeH2C
Xam.Plugins.Forms.ImageCircle
概ね問題ないんだけど、 UWP 版の Windows Mobile ではなぜかちゃんと丸くならない。同じ UWP 版でも PC では問題ないし、以前は Mobile でも問題なかったがどこかのタイミングの Xamarin 周りのアップデート以降ちゃんと機能しなくなった。
クルクル
あ、最近の再読み込みボタンの類いのアイコンって、どれもクルっとしてる矢印が一つなんやね。 Safari も Edge(旧IE含めて) も Vivaldi も Firefox も Chrome もみんなそうなってる。 keep.grass では二つにしちゃったので後で直そう。
— 道仂師@S+シャープマーカー使い (@wraith13) 2016年10月4日
GitHub for Desktop の Sync ボタンとか矢印が2本なままのデザインなんだけど、これはいまどきのデザインに追従してないってことじゃなく、reload の類いと違って、これは upload と download の双方向だから2本のままとかそういうヤツかな。
— 道仂師@S+シャープマーカー使い (@wraith13) 2016年10月5日
定刻通知
この種の UI は時刻の追加/編集・選択/削除あたりの UI を提供するのが普通だと思うんだけど、それだと開発者として実装するのもユーザーとして利用するのも面倒という誰が得するの?と言う状態になってしまうので
思い切って30分区切りで24時間分のスイッチを並べました。
OxyPlot.Xamarin.Forms
まだ unstable 版なのは承知で手を出してはみたものの以下のような問題があって、いまこのプラグインの代わりに SkiaSharp に移行してるところ。
SkiaSharp
SkiaSharp で円グラフを描画したみたんだけど、これちと癖が強いね。 AddArc だけで描くと一枚目みたいに円の中心からではなく弧の終端を結ぶラインで塗りつぶされちゃう。で、中心からの三角形部分を明示的に後付けで描くと分かり難いけど2枚目のように隙間の線ができちゃう。 pic.twitter.com/EWR55nsAlJ
— 道仂師@S+シャープマーカー使い (@wraith13) 2016年10月16日
で、これ、弧と三角形を同時に描画するようにすると綺麗に描画されるようになる。角度が180度を超える場合、勝手に都合よく指定した三角形部分を描画領域ではなく、抉る領域として描画してくれた。
— 道仂師@S+シャープマーカー使い (@wraith13) 2016年10月16日
■Xamarin.Forms で SkiaSharp を使う時の流れ
— 道仂師@S+シャープマーカー使い (@wraith13) 2016年10月16日
1. SKSurface.Create() で surface を作成
2. surface の canvas メンバーに対して SKPaint などを使い描画
(続く)
(続き)
— 道仂師@S+シャープマーカー使い (@wraith13) 2016年10月16日
3. 絵が完成したら surface から .Snapshot().Encode() で SKData を取得
4. SKData の .AsStream() を返す ImageSource を ImageSource.FromStream() で作成
(続く)
(続き)
— 道仂師@S+シャープマーカー使い (@wraith13) 2016年10月16日
5. その ImageSource を Xamarin.Forms.Image に与える
・・・と、まぁ、こんな感じ。