なんとなくFirebaseを使ってみようと思い立った話

Firebase、名前だけは知っていたんですけど急に触ってみたくなったので触ってみました。
適当にやったことをメモしていきます。
ちなみに、前回の投稿から時間が空いているのは夏の暑さに負けていたからです……。

Node.jsを入れておく

Firebaseの管理にはコマンドラインツールを入れる必要があるんですけど、そのためにNode.jsが必要です。
私は偶然導入済みだったので今日は何もしていません。
昔何かしようとした痕跡を見ながら土日にしたことを書く - denimuの開発日誌

Firebaseのサイトにアクセスしてプロジェクトを作る

Firebase console

ちなみに、下記を見ながら作業。
Firebaseの始め方 - Qiita

プロジェクトを追加するを選んで名前を入力。
プロジェクトIDが自動でつけられますが、自分で編集もできます。
後から変更はできないそうなので自分でつけたほうがいいかもしれません。
Google アナリティクスは有効のまま次へ
Google アナリティクスの構成でアカウント作ってない人は作成。
私は既存のものをそのまま使いました。
プロジェクトを作成を押すとプロジェクトが作成されます。
しばらくすると準備ができましたと表示されるので次へ
プロジェクトのページが表示されます。

ホスティングを設定する

npmを使用してFirebaseのコマンドラインツールをインストール
インストールのコマンドはFirebaseに表示されます。親切。
依存関係の警告が出てきますが特に問題ないようです。
ubuntuでnpm install コマンドを実行すると npm WARN optional SKIPPING OPTIONAL DEPENDENCY npm WARN enoent SKIPP - フォーラム - N予備校

ログインしようとするとWindowsの場合、セキュリティの警告が出てきました。許可します。
初期化をする前にFirebaseのアプリ用のルートディレクトリに移動しておきます。
したみたいなのが出てくるのでHostingを選択。

? Which Firebase CLI features do you want to set up for this folder? Press Space to select features, then Enter to confi
rm your choices.
 ( ) Database: Deploy Firebase Realtime Database Rules
 ( ) Firestore: Deploy rules and create indexes for Firestore
 ( ) Functions: Configure and deploy Cloud Functions
>(*) Hosting: Configure and deploy Firebase Hosting sites
 ( ) Storage: Deploy Cloud Storage security rules             

ウェブアプリへの Firebase の追加

プロジェクトのページからウェブアプリへの Firebase の追加を選択
参考にしたページでは記載されていませんがこの時点でHostingの設定ができます。

FirebaseのSDKの追加でスクリプトが表示されるので、index.htmlに追加します。
CLIのインストールが表示されますがインストール済みなので飛ばします。
デプロイの手順が表示されます。
loginとinitは終わってるのでdeployです。
画面に表示されているURLでページが表示されます。

サンプルアプリケーションを動かす

ここまできて色々と参考にしているページとの差異に気づいて別ページを探す。
【第3回】サンプルアプリケーションを動かそう!【はじめてみよう Firebase】 | 株式会社トップゲート
(現時点ではこっちのページの第1回から順にやったほうがいい気がする。)
雰囲気はつかめたのでこの辺で終わりにしておく。

雑感

こんな簡単にWebアプリの動く環境が作れるのはいいですね。
そして、参考にするページはちゃんとメンテされているページをみないとダメというのが改めて実感しましたね……。
最終更新が2019年だけど2019年の編集は初め⇒始めの変換だけだったとか罠すぎる。

続・Windows上でのAndroid開発を視野に入れてJava開発環境を用意する(2019-06-23)

PC版のJavaアプリ作るなら何のアプリ入れるのがいいの?

最初はEclipseでいいんでしょー?って思っていたんですがネットの評判を見ているとどうしても使いたいプラグインとかなければIntelliJのほうがよいといううわさも見かけたのでこちらにしてみようかと。
Android Studioのベースになってるから両方使うならそっちのほうが操作の差異に悩むことも少なそうですし。

早速インストールする

下記からダウンロード

IntelliJ IDEA: The Java IDE for Professional Developers by JetBrains
ダウンロードしたのはVersion: 2019.1.3のCommunity Edition。
インストールパス以外特に指定せずインストール。
先日ダウンロードしたPleiadesで日本語化。

あれ、もう書くことがないな……などと思いながら新規プロジェクト作ろうと思ったらプロジェクトSDK選択欄でJDKないよ!って言われました。IDEばかり気にして忘れてましたね!!
そういえば、Javaのライセンスって面倒なことになっていた気がするんだけどどうしたらいいの……?と思いながら調べてみた。
Javaのサポートについてのまとめ - Qiita
AdoptOpenJDKというのがほぼほぼ今のJDKと同じみたいでよさそう。
ダウンロードめっちゃ遅いのでご注意ください。ちなみにバージョンは最新の12.0.1にしてみました。

Windows上でのAndroid開発を視野に入れてJava開発環境を用意する(2019-06-16)

この記事はなに?

Windows上でJavaアプリ、Androidアプリを開発するうえで何をインストールするかとかどのバージョンとか導入したプラグインとか残しておこうかと思った次第。

何をインストールするべきか?

そもそも、何をインストールするか?というところから悩んでしまった。

Windowsで動くアプリを作るならEclipseでいいんじゃないかな、という感じなんですけどのちのちAndroid版も作るならそれを視野に入れないと……というところで調べるとAndroid Studioというのが推奨らしい。

Android StudioIntelliJとかいうデフォルトで入っている機能的にはEclipseより優れているらしいIDEをベースに作られたらしいのでとりあえずそちらを入れてみることにする。

 まぁ、最悪でも両方入れたらいいでしょ、くらいの気持ちでいます。両方入れる場合はどのようにデータを共有させるかが問題になりますが……どちらかでjarを作ってどちらかはそれを参照させる形になると思う。

Android Studioをインストールする

検索したら公式ドキュメントが最初に見つかった。文章は簡素だけど動画付き。

Android Studio のインストール | Android Developers

あ!インストール時に選択した設定をメモるのを忘れた。

(20190623追記

3.4.1 for Windows 64-bitです。

まぁ、大した設定はないし困らないだろう……たぶん。

Virtual Device?みたいなのを有効化した。そのくらい。

起動してみたところどんなアプリ作るの?的に聞かれてやはりAndroid系しか選択肢に現れずAndroid開発に特化していると判断。とりあえず日本語化だけしておく。Eclipseでもよく見かけるPleiadesだ。一つのexeでAndroid StudioEclipseも日本語化できるようだ。

Android Studio日本語化 - Qiita

 

本当は最後までやるつもりだったのだけど今回はここまで。

仕様についてのメモ書き

開発作業はできなくとも仕様の案は思い浮かぶこともある。

 

複数のOSで動くならばdropboxみたいなサービスにテキストでデータを置いておいてそれを読み込んで動作できると便利だよね。

APIをラップする部分を共通で作って、UI部分を各OSに合わせて作ればよい。

とりあえずWindowsで開発するので最初はWindows版。

JavaFX?というのがあるらしい。SwingとAWTしか知らなかった。お仕事ではWebサービスの類かバッチ処理しか書かないので……。個人的にSwingの見た目は好きではないのでJavaFXを使ってみたい。

exe化しておきたいよね!今後はそっちが標準になるような話も聞いた気がしますが自分で調べてないのでよくわかってないです……。

今週と来週は某ゲームのイベントによりお休みすることにする

先日考えていたAuto Ever代替の件はよくよく考えるとJavaで作っとけばiOS以外では動作させられるなーと思っているところ。

せっかくだから、仕事では使うことのなさそうな新しい機能を試したいですね。

昔何かしようとした痕跡を見ながら土日にしたことを書く

過去の投稿を見ながらそんなことしてたっけ……っ!みたいな気持ちでした。
それらとは全く関係なくEvernote APIを少しかじってみた話。ただの日記なので悪しからず。

開発用の環境にアカウントを作成

下記のサイトから作成します。通常のアカウントとは別にしないとならないようです。
Home - Evernote Developers

とりあえずJavascriptから使えるようなので適当にコピペ改変したソースを作成する。

ほぼ下記サイトの丸コピなのでソースは割愛します。
Tumblrの投稿をEvernoteに移植して、検索機能を補完する(Node.js) - Qiita

Node.jsを入れてなかったので入れる

インストーラは下記からDL
Node.js

Windowsでもモジュールのインストールは下記とほぼ同様です。なんか警告が出ていましたが……。
EvernoteAPIをnode.jsでいじる - Qiita

動かしてみる

動いた……!

ところでなんでNode.jsでEvernote APIを?(蛇足)

iOSユーザでEvernoteを使っていた方ならしっている人も多いのではないかと思いますが、iOS10まで使えていたAutoEverという特定のルールを作成するとそれに従ってボタン一つでノートを整理することのできるアプリがあったんですよ。
そのアプリは64bit対応していなくてiOS11以降では使えないんですね。それで代わりのソフトが欲しいなと思ったんですが、僕はWindows PCしか持ってないのでなんとかWeb上(というかフロントエンド)で完結できないかを検討したんですね。
それで、Evernote APIJavascriptから使えるらしいということでとりあえず試そうと色々していたんですが、実はそれはNode.jsつまりブラウザじゃないJavascript実行環境が必要だと気付いたんですが、まぁ、APIの使い方は言語が変わってもそんなに変わらないだろうし途中までやっちゃったからこのままとりあえずテスト動作させるところまでやろうとしたというだけの話でした。
そもそも、非同期通信を別サーバに投げるのってアレですよね。そうですよね。
で、サーバを用意してWebアプリ作成して……となると今どきはセキュリティ面とか面倒だしってなってどうしようか考え中です。
方針としては3通り。

  • PCアプリにする。言語はどれでも……。
  • Javaで作成してandroid対応する。
  • 面倒だからなんだ!Webアプリを作る。

近頃、PCは毎日触るわけではないのでPCはなぁ……とか
Javaとか仕事で使っているし面白くないなぁ……とか
いやいややっぱりセキュリティ考慮したサイト作り面倒だし……とかいろいろ考えるわけです。
今のところPC用に作成するのが一番有力。

AutoEverといえば……(蛇足2)

同じ作者さんがMoveEverやMergeEverなどを作っていてそちらも使っているんですが軒並みストアから消えてしまったんですよね……似たようなアプリ何個も登録するなって。1アプリ当たりの機能を最低限にしているだけなのに……Appleの担当者無能すぎるし本件でAppleアレルギーが悪化しました。iPhoneを買ってからというものなるほど便利と思う反面Appleクソ……っ!と思う案件が多くて嫌になります。
それはともかくとしてうっかりすると再インストールできなくなったりしそうなんでこちらも代替アプリが欲しいところです。