ネタがないので自分で自社システムを作った時の話でも。 全て1人で作っているのでかなり拙いところはたくさんあります。 まぁ、現在進行形で作ってるんだけど。
用意したもの
VPS
大昔、docomoが頑なにiPhoneを発売しなかった頃、VPSを使ってiPhoneでドコモメールを受信する、という力技をしていたことがあった。 その時VPSを借りてそれをメールサーバーにして受信してた名残で今も借りたままになってる。 それでこのブログを運用してるので赤字を垂れ流しております。 とはいえ、そのままにしておくと勿体無いので、VPSにPostgreSQLをインストールし、データベースサーバーとして使ってる。 OSはCentOS7なんだけど、ubuntuに変えたい。 けどもうシステムが稼働しているのでアプデを当てつつ誤魔化して使ってます。
FileMaker
元々はFileMakerでシステムを開発していたんだけど、当時オンプレミス(自社サーバー)じゃないと運用不可、いちいちVPNに接続してサーバーにアクセスするのは煩わしくなり、根幹データベースはPostgreSQLに移行。 とはいえ、クライアントとしてUIを作ったり、プリンタ周りの設定を保存して置ける、開発スピードが速い、ラーニングコストが安いなどもあり、いまだに金を払って使ってます。 いずれ変えようかなと思いつつ、ブラウザで作ったとしてもメンテナンスのこと考えたらFileMakerの方がはるかに楽なので。 DBへのやりとりは、 PostgreSQL→PHP(PDO)→JSON→FileMaker 逆の時はFileMaker→JSON→cURLで送信→PHP(PDO)→PostgreSQLという感じでセッションを取ってる。 これでネットに接続されている限り、根幹データベースサーバーにアクセスできている。
Xcode(Mac)
スマホアプリを作る記事を大昔書いて、その時に四則演算計算機をObjective-Cで書いたんだけど、これが思いのほか勉強になり、JSONで書いたテキストをVPSサーバー上に置き、それをみんなで共有する、という簡易な情報共有システムを作った。 情報の共有化がものすごく便利で、FileMakerで作っていたシステムを徐々にiPhoneアプリに移管していき、基幹部分をPostgreSQLに移管した。 請求書作成と勤怠管理がまだFileMakerのDBで稼働しているが、それも移管するシステムが完成し、あとは仕事が落ち着いたら移管する。 これができたから、まぁブログを書く暇できるだろうと甘い考えを持っていたのだが、それは砂糖に蜂蜜をかけたくらい甘い考えであった。
FireBase(FireStore)
カレンダーデータをリアルタイム更新できないもんかと探していたら見つけたFireBase。 Googleが買収した会社のシステムで、例えばAユーザーが共有カレンダーの情報をAユーザーの端末で更新すると、他のユーザーが使っている端末でも情報の更新をすることなくリアルタイムで変更される超便利謎テクノロジーなサービスを提供している。 多少お金はかかるけど、安いもんだわ。 自分のアプリでスケジュールデータを共有するのに使ってる。 超絶便利。 FireBaseのNoSQLだけで自社の全情報を管理したかったのだが、FileMakerとのリンクが不可能だったためPostgreSQLとVPSに落ち着いた。
iPhone
従業員全てにiPhone手当を出し、iPhoneに機種変更してもらった。 月5000円。 したくない人は貸出するよ?って言ったけど、ここぞとばかりに全員機種変しおった。 その代わり自社アプリをインストールする契約で。 どんなアプリを作っているのかスクショを載せたいところだけど、個人情報が死ぬほど詰まっているので無理やな。 見た目は一切拘ってないのでしょぼい。
過程
プログラミングのテキストを読んだ(失敗)
32歳の時に仕事が暇だったから、その時間を使ってプログラミングを学習した。 転写が多く、転写ミスが多かったからそれを無くしたいと思ったのがきっかけだったと思う。 とはいえ、Excelのif文くらいしかわからないしマクロも組めないようなズブの素人だったので、もう悶絶するほどキツかった。 大量に書籍を買い込み、読んでみたものの、最後まで読み通したものは1冊もない。 無理。 退屈すぎる。
Xcodeをインストール(失敗)
とりあえず作ってみないことには話にならん!ってことでXcodeをインストールしてみたものの、当時はXcode3?4だったかな?がちっともわからん。 全部英語だし。 即挫折。
FileMaker
FileMakerはスクリプトを上から下に書いていくだけの超単純な仕様になってる。 scratchみたいな。
非常に単純で記述しやすくプリンタのプロパティも丸ごと保存できることもあり、非常に便利で自分にはよくあった。 Mac、Win両方使えるのも大変よろしい。 開発工程が簡単ということは、修正しやすく開発期間も短い。 知識の少ない自分にとっては大変ありがたい開発ツールであった。 テンプレートもさまざまあるが、自分は使ったことがない。 全部1からフルスクラッチ。 だって、謎の部分があるの嫌なんだもん。 今思えばゴミみたいな請求書作成システムを作ったり、顧客管理システムを作ったり、Suicaのカードをタイムカードにした勤怠管理システムを作ったりした。 今でも勤怠管理だけは稼働してる。 Pasoriを連動させているのだが、当時どう書いたのか全然覚えてない。 C#かなんかのソースをどこからか引っ張ってきて中をいじった気がするけど、どうやったのか全く覚えてない。 ちゃんと記録に残しておくべきだった。 自社用アプリケーションを自分で作りたいけど知識がない!って人はFileMakerが割とおすすめ。 プリンタ周りの出来がいい、印刷するときのプレビューもしっかりしてるところが高評価であった。
続きは次回
今経理のシステムを急遽作ってるんだけどそれが死ぬほど大変なので、更新が不定期になってる。 見てる人いるのか知らんけど申し訳ないっす。 長くなってしまったので続きは次回。