アプリを開発するにはそれなりのモティベーションが必要で、「プロダクト」として完成させるにはそれなりのコミットメントが要求されます。
日本語で言うと、一言で「理由」ですね。ちゃんとした理由がなければプロダクトとして世に出る事もないし、メンテも続きません。自分がアプリを作って公開している一番の理由は「自分が使いたいから」です。逆に言うと、自分が使いたい(と思える)アプリが存在しないから作る、という事になります。
毎日パソコンを使っている上で、こりゃダメだ、と思うアプリの使用を強制されることほどイヤな事はありません。Windows10は基本的には素晴らしいOSで、場合によってはMacやLinuxよりも完成度や開発する上でも良い事が多いです(開発環境やGUIのユーザビリティや安定性や自由度)。
そんなWindows10ですが、登場した当初(というかWindows8から)、Microsoftは標準のアプリをUWPのストアアプリに変えてくる、という所業をしました。UWPについては言いたい事は沢山あるのですが、あの遅い起動、気持ち悪いニョリョニョロした挙動、ボタン等の間の抜けたスペース感、と良い事が一つもありません。Windows8のメトロスタイルという黒歴史を引きずっている感。
特に、画像を表示するだけのWindowsデフォルトのアプリ(昔は何だったか覚えていない)がUWPの「フォト」に代わってしまい、個人的にあのUIに拒絶反応を起こしていました。繰り返しますが、あのUWPの遅い起動、気持ち悪いニョリョニョロした挙動、間の抜けたスペース感です。しかも単に画像のプレビューをしたいだけなのに「編集メニュー」やら不要な機能がついていて、(それでいて)その機能は中途半端。編集するならPaint.NETとかPhotoshopとか専用のを使うし・・・と強烈な不満を感じていました。
自分は画像プレビューに特化したシンプルでサクサク動くアプリが欲しいのだ、と。
しかもWindows10では、ファイルの関連付けをして画像を開くデフォルトのアプリを開く設定をするためには、ソフトはUWPで作ったストアアプリでないといけない、というあくどい仕様になっていました。普通のソフトが登録出来ない、という・・・。
そこで、Mirosoftのストア(これ自体もUWPアプリ)で検索してみましたが、どれもUWPのもので、ダメダメでした。
そんななか、しばらくしてUWPとストアがあまりにも不評だったので、Microsoftはストアに公開できるアプリの種類をUWP製だけでなく、"Win32"版、つまりC++やC#/WPF、Delphi等で作ったアプリも登録・公開できるよう基準を緩めました。
ならば自分で使いたいシンプルなアプリを作るか・・・と。
丁度、Object PascalというDelphi系の言語でオープンソースのLazarusというクロスプラットフォーム開発が出来る開発環境を試したいと思っていて、その評価の為、お試しでLazarusで画像のプレビュー・スライドショー機能のアプリを作る事にしました。実際に作ってみて、LinuxとMacとWindowでちゃんと動く、という事を確認したかったのです。
クロスプラットフォーム開発が出来る、とうたう言語や開発環境はいくつかありますが、殆ど嘘だろ(Javaとか詐欺)というか、UIがプラットフォーム固有のと違い変とか、ネイティブじゃないので重たい、などなど、色々あります。
Lazarusはネイティブに各プラットフォーム向けのバイナリがコンパイルできるということで、実際の所、どれだけのものか検証するのに丁度良い機会になる、一石二鳥だ、と。
さらに言うと、簡易的なデジタルサイネージ向けにも使えるようにしたいな、と思っていました。良く店頭とかにある電子掲示板、電子広告板というやつです。というのも、よくあれの営業や広告が多いのですが、どれも単価が(数十万円)やけに高い上に月々いくらみたな費用もかかります。自分としては、あんなの中古のディスプレイ買ってきてUSBスティックPCでも刺してスライドショーさせれば良い話しじゃん!2万円ぐらいで済むでしょ、と思っていたからです。ですから、全画面表示はもとより、コマンドラインから起動や設定ができるようにしたい、と。
見た目も機能も極力シンプルに抑える、というのは絶対に外せない条件でありました。また、全画面でなくとも、ながら作業中に子ウィンドウでスライドショーができる、というのが個人的に欲しくもありました。
画像の表示やスライドショーと言った機能自体は単純ですし、元Delphi使いのため慣れていた環境に似ていて、アプリの基本は1週間ぐらいでサクッと完成しました。
結果は、Win32のネイティブなアプリでまぁ使えるのが出来ました。
ところがいざ自分で使う、という段階で、やはりストアに公開してからインストールする、という回りくどい手順を踏まないと画像で開く「関連付け」が出来ない状況には変わりはありません。
という事で、自分が個人で使う、というだけの目的だけで、世の中の万人に向けてストアでアプリを公開する、という所業に至ったわけであります。
それが、これ、というわけです。
現時点で、5万1千を超えるダウンロード数があります。アクティブユーザーセッションもそれなりにあるようで、正直、自分で使うためだけに作ったものが世界中でこれだけ使われると少々ビビります。
まぁ皆さん、考える事は同じで、やはりデフォルトのUWPアプリ「フォト」が相当にウザかったのでしょう。
因みに、ダウンロード数というのは新しいバージョンをリリースすれば、その新しいバージョンがダウンロードされて数に加算されるので、頻繁にバージョンアップをリリースするアプリほどダウンロード数は増え、アプリ間での比較対象としてはあまりあてになりません。ただ、Simple Image Viewerは、作ってほぼ放置していた時期が長かったので、そういうケースとはちょっと異なります。むしろ、更新しなさすぎ・・・というかシンプルさにこだわっているのでUI改善も何も、追加機能も何も・・・
なお、作ったアプリのソースも、Githubで公開しています。ここでも、チラホラと反応があるんですよねぇ。自分の為だけに作ったのに・・・ってボヤいてもしょうがないですね。
公開して直ぐの頃、Pullリクエストが来て、ロシア語の翻訳ファイルが送られてきた時は嬉しかったです。ロシアってのがアレ(*注)ですが、嬉しい事には変わりなく、早速取り入れて、英語、日本語に加え、ロシア語対応となっています。
(注)ここでロシア人に対して変な意図はありません。ただ、インターネットを長く使っていると、ロシア語のページを見ると、はっ!マルウェア埋め込んでないか?!という反応になるのは仕方がないのです(笑)。
余談ですが、Lazarus/ObjectPascalというのはマイナーなツール・言語の為、ユーザー同士の仲間意識が強く、同ツールで開発したアプリとかをLazarus製だからというだけで高く評価してくれる傾向がある、というボーナスもありました(笑)。あと、Visual StudioやDelphiの開発元はアメリカの企業ですから、アメリカ企業のプロプライエタリな開発環境を使うよりもオープンソースが好まれる、という理由からか、ロシア圏などではユーザー数が多い気がします(ウクライナとかだと学生教育で採用しているとか)。また、Visual StudioやDelphiと違い(商用利用も含めて)無料だからか、南米などの途上国でも相当な数のLazarusユーザーが居る印象です。