放浪軍師のXamarin.Formsアプリ開発局

Xamarin.Forms+Prism+ReactivePropertyで素人がAndroidやUWPのアプリを右往左往しながら開発している様を発信していきます。性質上間違いも多いのでご注意ください。

本職でXamarinFormsで作成したAndroidアプリケーションを展示した話

放浪軍師のXamarin.Formsによるアプリ開発
母の50日祭(神道)も済んだし、多少はブログ更新頻度を上げられると思いますので、引き続きよろしくお願いします。
…さて、今回は業務でXamarinFormsで作成したAndroidアプリケーションを展示したお話です。
まず、初めて訪問された方は以下をお読みください。

www.gunshi.info

本職で展示会に出品するネタが必要になった

俺は普段、物体の重さや長さの変化量をパソコンとを接続して自動的に取り込んだり、それをグラフ化して帳票を印刷したりできるソフトウェアを作成する業務を行っています。
このご時世にVB6でな!
まぁ通常ならあり得ないのですが、特殊な試験の知識が必要な為、プログラマとしての能力が低くてもこれまでやってこれている感じです。
…が、この状況が就職して10年以上たった今更ふと恥ずかしくなったのと、今後会社が潰れたりした場合VB6しか出来ない俺を拾ってくれそうな場所が無さそう(あったらそれはそれで嫌だが)という危機感から、ここでXamarinFormsのブログ立ち上げてVB6へ反逆の機会を伺うつもりだった訳です。

そんななか、急に舞い込んできた展示会への出品の話。
…いや、展示会自体は知っていたのだが今年も参加するかどうかは未知数だったので気にしていませんでした。
だが今年は、既存のソフトウェアを展示して恥をかいた前年の反省をもとに、新しい事に取り組んで展示してみようという方針で決定したらしい。
これはVB6から脱出するチャンスかも…!?
という訳で、早速準備に取り掛かりました。ちなみに業績外ですので、通常業務もこなしつつ無報酬で残業して作成しました。
…ま、どうせ家で勉強するのと変わらんし。

展示した作品の概要

今までは試験機器とパソコンをRS-232CやUSBで物理的に接続して計測を行っていたものを、Androidアプリで無線計測してみようというコンセプトで作成してみました。
最初はRS-232C機器を市販のBluetooth変換器で無線化し、Androidと通信する方式を採用したのですが、同じく展示会向けにと会社の先輩がRaspberryPiを持ち出して計測機器そのものを作成。
折角だしそれと接続しても計測を行えるように出来ないかと頼まれ、RaspberryPiにBluetooth通信機能が付いていなかったので、ソケット通信も実装しました。
更に取得したデータはリアルタイムでグラフ化し、計測結果はCSV形式で内部保存するようにしました。出力までは手が回りませんでしたが…。
Androidアプリからカメラを起動して撮影し、画面に表示できるようにもしました。

必要になった新しい知識

大小様々な知識を、いろんなブログや英語のページまで参考にして入手して作成しました。

  • エラートラップ(try~catch)
  • ラムダ式
  • List< T >型
  • foreach
  • 複数の候補から一つを選択するコントロール(Picker)
  • ON/OFFを切り替えるコントロール(Switch)
  • 写真等の画像を表示するコントロール(Image)
  • カメラを起動するNugetパッケージ(xam.plugin.media)
  • グラフを表示するNugetパッケージ(OxyPlot.Xamarin.Forms)
  • ソケット通信専用名前空間(System.Net.Sockets)
  • Bluetooth通信専用名前空間(Android.Bluetooth)
  • プラットフォーム固有機能使用の記述方法(Bluetoothが固有だった為)

ざっと上げると、こんなところでしょうか?
見たらわかりますが、XamarinだけでなくC#の知識も大幅に不足しているので本当に大変でしたね…。
この辺で得た知識の中には、まだあまり日本語の解説が無いような物もあったので、後々記事として上げていこうと思っています。
ちなみにプラットフォーム固有機能の実装は、Bluetoothの部分だけでした。
カメラとかソケット通信あたりも固有になるかと思ったんですが結構共通でいけるんですね。驚きました。

展示会での反響

やった事自体は、今まで有線でパソコンに繋いでで処理していた事を、無線化してタブレットで動くようにしただけなのですが、

  • 省スペース化ができる
  • 持ち運んで他の事しながらでもデータを監視できる
  • タブレットを並べて一か所で複数台を監視できる
  • 若者にも人気が出そう
  • 他の場所にあるパソコンや個人のスマホ(iPhone含む)からも監視できないか?

…など、予想以上に反響がありました。
最後の奴なんかはXamarinFormsで作成するメリットが生かせそうでワクワクしますね!

まとめ

というわけで、本当に苦労はしましたが展示会は大成功となりました。
今後どうなるかはまだはっきりとしていませんが、そこそこの確率で今回作成したアプリの製品化が決定することになるんじゃないかと思っています。
そうなれば当然、今後のアプリ作成の指揮を任されるのは疑う余地もなく、
晴れてVB6開発者からXamarinForms開発者への転身が叶う事に!?
そうなればいいなぁ…なって欲しいなぁ…