ひさしぶりにブログを書きます.
アプリを新しくするというリリースを出しましたが,その内情について少し話したいと思います.
今回新しくするのはアプリだけではありません.サーバも新しくします.実はそっちの方が重要なのです.
今のサーバは普通のWebサーバと簡単なphpのスクリプトで作られてます.仕掛けとしては,機能が全然ないWeb掲示板のようなものだと思ってください.アカウントもないので,自分の作品を管理することもできません.何か凝ったことをやろうと思っても,サーバの負荷がぐっと上がってなかなか難しいです.よく,ビスケットは保存した作品がすぐにわからなくなってしまう,ということが言われてましたが,アカウントの概念がないのですから,そもそも無理なのです.
ビスケットの保存データは小さいので,サーバを立ち上げて12年ですが,保存された作品を一度も消さずにここまできました.とはいえ,ファイル数もじわじわと増え,2019年9月にはサーバのファイルが溢れてサーバが止まってしまいました.すぐにディスク容量を2倍にしましたが,小学校のプログラミング教育が本格的に始動したことで,また溢れるのは時間の問題です.
ということで2019年4月ごろから新しいサーバをどうするか検討をし初めました.そこで,Googleのfirebaseというサービスを利用することにしました.このサービスの素晴らしさはアクセスが増えると自動的にサーバが増えるというところで,突然の変化にも安心してまかせられます.サーバ上のプログラムも実に簡単で,セキュリティ的に強いシステムを作りやすいという特徴があります.作品の保存周りのいやな問題はこれで一気に解決します.それだけじゃなく,作品を投稿したり交流したりするようなサービスも簡単につくれそうです.
今回,ビスケットが作品数に課金するという発表をしましたが,それもこのサーバを使用していることが理由です.ビスケットがいろんな使い方をされるなかで,できるだけわかりやすく公平にと考えてこうしました.
で,アプリの更新です.
旧アプリは2015年に開発をスタートしました.Flash BuilderというAdobeの開発環境を採用しまして,同じコードでFlash(Web), Android, iOS, Windows, Mac で動くアプリを生成できるというものでした.今でこそ一つのコードでいろんなプラットフォームで動作させることができる開発環境は増えてきましたが,当時はこれが唯一の解だったんじゃないかな.
ご承知の通り,2020年12月にFlashが廃止になりますが,すでに数年前からAdobeはこの開発環境には興味を失っており,開発環境自体を動かすことがなかなか難しくなってきました.バージョンアップのたびに,へんなパッチをあてないと動かないというなさけなさです.有料なのに.その一方でiOS, AndroidはOSのバージョンアップが激しく,開発環境も常に最新の状態でなければアプリをリリースさせてもらえないということになります.いま使われているビスケットも半年くらい更新されていませんが,この更新がまたなかなか大変なのです.
新バージョンをどのツールで開発するかはとても難しい問題でしたが,Flutter+Dartという言語・ツールに落ち着きました.かなり意欲的なツールであり,一つのコードでいろいろなプラットフォーム向けに高性能で動作するアプリを作れるようになっています.それにサーバ側のfirebaseとの相性がよい(どちらもGoogleがやっている)というのも採用の理由です.
新アプリの開発を始めたのが2020年1月ごろでした.ここから今のリリースできる状態になるまでには,かなりいろんな出来事・事件がありました.これについてはまた別の機会に話したいと思います.
本当は新アプリと新サーバへの切り替えを同時にできればよかったのですが.そこにFlash廃止というのが絡んできて,なかなかそうも行きません.新アプリに関しても,いままで無料で提供したものをほんのちょっとでも有料にすることへの抵抗感というのもあって.それで,新アプリなのに旧サーバに接続するというところを今作ってます.作ってて悲しくなりますが,でもそれができないと,アプリの置き換えができないようなので.旧サーバに接続する分には,いままでどおり無料で提供してもいいんで.
そんなことよりも,新アプリはソースコードも一新したので,これからいろんな機能がどんどん追加されることとなります.そういう面白い話を今度書きたいと思います.