snovaのブログ

プログラミングとか、日常のこととか、アウトプットしたほうがよいと聞いたので

Oculus Quest2を買いました

年末のある日

たまたまネットニュースでメタバースの話を見たことがきっかけで、VRについて調べていました。

最近はゲームだけではなくて仕事や動画視聴もできるんだなあと思っていたら、一番売れているVRゴーグルが4万円で、しかもスタンドアロンで動作するらしいという情報をゲットしました。

2日後、AmazonさんがVRゴーグルを家に届けてくれました。

Amazon, Oculus Questページ

感想

写真

f:id:snova301:20220119195245j:plain

買ってみた感想をポジティブな意見とネガティブな意見の両方で書いてみます。

ポジティブな感想

  • 言葉では「没入感がすごい」としか表現できないけど、「没入感がすごい」
  • PCと接続するケーブルが不要なのは快適
  • コントローラーがなくてもジェスチャー操作ができる
  • VRゴーグルが1つあれば、マルチディスプレイで作業できる

ネガティブな意見

  • 思っていたより大きくて重い
  • アプリ次第ですぐに酔う(特にVR Chatの一部ワールド)
  • メガネユーザーだと鼻や耳の部分が痛む
  • 2時間程度の使用で充電しなければならない
  • workroomではキーボードの位置がずれている時がある

まだまだ仕事をするには解決すべき課題が残っていますが、あと数年で仕事ができるレベルまでは技術革新が進むのではないかと思います。

入れてみたアプリ

まだ無料アプリしか試していないのですが、

  • VR Chat
  • immersed
  • Horizon workrooms
  • Epic Roller Coasters
  • Youtube
  • UNEXT

VR Chatはネットの評判通りカオスな空間で、うまく表現できないようなアバターの人が、よくわからない言葉で、話しかけてきてくれます。

また、immersedではマルチディスプレイで作業できるので、今のところ作業系アプリでは一番かなと思います。

今後してみたいこと

同時期に購入した仲間たちはBeat Saberをしていたので、ゲームを購入して遊んでみたいです。

また、Unityを使ってかんたんなVR開発にも挑戦したいと思います。

電気設備用計算アプリを作った話

はじめに

最近会社でようやくiPadが支給されたので、実務(電気設備導入業務)で役立ちそうなアプリを開発してみようと考えました。

セキュリティや情報管理の問題をクリアでき、会社でも使用できて、比較的に簡単に作れるアプリということで電気設備用の計算機を製作しました。

目次

どんなアプリか?

電気負荷の大きさに応じて、電源ケーブルサイズや電圧降下を計算します。 また、電圧と電流から各種電力値を計算します。

これまでは資料を読みながら電卓を叩いていましたが、自動的に計算することで計算ミスや時短を期待できます。

Android版はこちらで公開しています。

play.google.com

開発環境

項目 内容
ハード M1 Macbook Air (2020)
OS macOS 11.5.2
言語 Dart
フレームワーク Flutter 2.5.3
エディタ VS Code 1.62.3
Android Android Studio 2020.03

アプリ構成

アプリ自体は簡単なものを作りたかったので、数ページの画面だけで完結し、サーバーとの通信などは全くない構成となっています。

計算画面はTabBarViewを使って、2つのタブにそれぞれ別の計算画面を作成しています。

...
child: Scaffold(
  appBar: AppBar(
...
  body: TabBarView(
    children: <Widget>[
      ListView(
...

また、計算結果の項目では桁数が多いときに全ての結果が表示されるよう、横スクロール機能SingleChildScrollViewを使いました。

...
SingleChildScrollView(
  scrollDirection: Axis.horizontal,
  child: DataTable(
    columns: const <DataColumn>[
      DataColumn(
...

アプリはこんな感じです。

アプリ画面

なお、Flutterを採用した理由ですが、

  • Android, iOSなどに関係なくアプリをリリースできるため
  • Flutter Web(まだまだ発展途上ですが)を使うとwebアプリとして公開できるため

また、webからアプリケーションを使用できるようにするため、Firebase Hostingを採用しました。 Firebaseはいまのところ無料版で対応できていますが、アクセスが多くなったら(多分ありえないけど)、有料版をちょっとだけ考えます。

個人的に初めて挑戦したこと

普段は科学技術計算やパズルのようなプログラムを中心に製作することが多いのですが、このアプリを製作するときに初めて挑戦して、苦労したことがいくつかありました。

  1. M1 MacbookでFlutter開発したこと : これまではWindows PCやIntel MacbookでFlutter開発していましたが、今回初めてM1 MacbookでFlutterを使用しました。 各ソフトの導入まではスムーズに行ったのですが、iOSAndroidエミュレータの起動をさせるためだけに何時間も使いました。 M1 Macbookを買った時も感じていましたが、CPUのアーキテクチャを変えるというのは大変な労力が必要なのですね。

  2. Androidアプリをリリースまでしたこと : これまでAndroidアプリをGoogle Playでテストするまでは実施していましたが、実際にリリースまではしていませんでした。 今回初めてリリースまでしましたが、ストアの掲載情報やポリシー関係の文章を作るのは手間がかかりました。 ちなみに、私はデザインセンスないのでアイコンは妻に作ってもらいました。

  3. Flutter webとFirebaseを使用したこと : Firebase自体は数年前から気になっていましたが、縁がないものと思いこれまでは手を出していませんでした。 今回、アプリをwebで公開するために必要だったので、初めてFirebaseを使ってみました。

  4. アプリ広告を表示させたこと : Admobを使用してアプリ広告に挑戦しました。 ただ、ユニットIDをデバッグ/Android/iOSで変更しないといけないなど、導入が面倒だったので、収益性を考えないのであれば、広告は不要かな?と思いました。

  5. いろんなクラスを使ったこと : Flutter APIの公式サイトを見ながら、いろんなクラスを使いました。 残念ながら、DartやFlutterに慣れていないため、冗長的なコードになってしまいましたが。。。

今後について

会社では相変わらずセキュリティがどうとかいう理由でプログラム開発が全くできないので、個人で開発できる範囲でアプリなどを作りたいと思います。 (おそらくこのくらいのアプリならローコード開発でもできそうですが。)

また、今回はFirebase Hostingを使用しましたが、他にもAuthenticationDatabaseなどあるので、それにも挑戦したいです。

参考サイト

応用情報技術者試験に合格した話

はじめに

数か月前の話になりますが、応用情報技術者試験を受験して、無事に合格しました。 備忘録を兼ねて、そのときの勉強方法をまとめたいと思います。

受験背景

なぜ受験したかという理由ですが、大きく3点あります。

  1. 本職は電気設備エンジニアだが、情報システムの構成を考えることがある
  2. 自己研鑽
  3. 合格したら会社から祝金がもらえる

特に、1番の理由は深刻で、会社には情報システム担当者が少なく、システム構成も電気屋さんも考えろみたいな形で仕事が進められることがあります。 そのため、ほぼ独学で知識を習得する必要があり、基礎を勉強するため受験しました。

午前試験勉強法

勉強を始めたころ(試験の3カ月くらい前)はネットで調べた参考書を使用しました。 ある程度眺めたら、あとは過去問を解きました。 このとき、非常にお世話になったサイトが応用情報技術者試験ドットコムさんです。

www.ap-siken.com

重い本も持ち歩かなくても良いし、通勤中やお昼休みも勉強できるので、大変助かりました。 過去問は10年分を8割以上理解できるように何度も繰り返し演習しました。

午後試験勉強法

こちらも午前試験と同様に参考書を購入後、応用情報技術者試験ドットコムさんにお世話になりました。 ただ、午前試験がある程度理解できないと、午後試験は手も足も出ないため、試験の2カ月前から午後試験の勉強を開始しました。

午前試験の勉強で自分の得意不得意がなんとなくわかっていましたが、実際に午後試験を解いてみると、難しく感じる分野とそうでもない分野がありました。 そのため、保険をかけつつ分野を絞って勉強することにしました。

重要となる勉強する分野の選定ですが、応用情報技術者試験では必須科目1つと選択科目4つを選んで解く必要があります。 私が勉強するために選んだ科目は、以下の必須科目1つと選択科目5つ(保険込み)です。

このうち、プログラミングと組込みシステム開発はプログラムを組む人にとって比較的点数を取りやすい分野なので、注力して勉強せず、それ以外の科目に集中して過去問演習しました。

試験当日

午前試験は難なくクリアし、午後試験に挑みました。 問題をざっと眺め、最終的に選択した科目は、

一番苦戦したのはプログラミングでした。 結果的には問題なかったのですが、しっかり対策しておけばよかったと思いました。

おわりに

応用情報技術者試験は専門分野とは異なる試験ですが、勉強していて面白い試験でした。 また、普段の業務ではおそらく得ることのできなかった知識を獲得でき、視野が広がりました。 情報処理技術者試験はまだまだ他にもあるので、まずは自分の業務に関係する試験を受けたいと思います。