torum

主に開発中のアプリにまつわる技術系の事。

お試しで自分用に作ったアプリにそこそこの反響がある、という話し

Lazarus-IDE

Lazarus-IDE

アプリを開発するにはそれなりのモティベーションが必要で、「プロダクト」として完成させるにはそれなりのコミットメントが要求されます。

日本語で言うと、一言で「理由」ですね。ちゃんとした理由がなければプロダクトとして世に出る事もないし、メンテも続きません。自分がアプリを作って公開している一番の理由は「自分が使いたいから」です。逆に言うと、自分が使いたい(と思える)アプリが存在しないから作る、という事になります。

 毎日パソコンを使っている上で、こりゃダメだ、と思うアプリの使用を強制されることほどイヤな事はありません。Windows10は基本的には素晴らしいOSで、場合によってはMacLinuxよりも完成度や開発する上でも良い事が多いです(開発環境やGUIユーザビリティや安定性や自由度)。

そんなWindows10ですが、登場した当初(というかWindows8から)、Microsoftは標準のアプリをUWPのストアアプリに変えてくる、という所業をしました。UWPについては言いたい事は沢山あるのですが、あの遅い起動、気持ち悪いニョリョニョロした挙動、ボタン等の間の抜けたスペース感、と良い事が一つもありません。Windows8のメトロスタイルという黒歴史を引きずっている感。

torum.hatenablog.com

特に、画像を表示するだけのWindowsデフォルトのアプリ(昔は何だったか覚えていない)がUWPの「フォト」に代わってしまい、個人的にあのUIに拒絶反応を起こしていました。繰り返しますが、あのUWPの遅い起動、気持ち悪いニョリョニョロした挙動、間の抜けたスペース感です。単に画像のプレビューをしたいだけなのに、「編集メニュー」やら不要な機能がついていて、(それでいて)その機能は中途半端。編集するならPaint.NetとかPhotoshopとか専用のを使うし・・・と強烈な不満を感じていました。

自分は画像プレビューに特化したシンプルでサクサク動くアプリが欲しいのだ、と。

Windows10では、ファイルの関連付けをして画像を開くデフォルトのアプリを開く設定をするためには、ソフトはUWPで作ったストアアプリでないといけない、というあくどい仕様になっていました。普通のソフトが登録出来ない、という・・・。

そこで、Mirosoftのストア(これもUWPアプリ)で検索してみましたが、どれもUWPのもので、ダメダメでした。

そんななか、しばらくしてUWPとストアがあまりにも不評だったので、Microsoftはストアに公開できるアプリの種類をUWP製だけでなく、"Win32"版、つまりC++C#/WPFDelphi等で作ったアプリも登録・公開できるよう基準を緩めました。

ならば自分で使いたいシンプルなアプリを作るか・・・と。

丁度、Object PascalというDelphi系の言語でオープンソースLazarusというクロスプラットフォーム開発が出来る開発環境を試したいと思っていて、その評価の為、お試しでLazarusで画像のプレビュー・スライドショー機能のアプリを作る事にしました。実際に作ってみて、LinuxMacとWindowでちゃんと動く、という事を確認したかったのです。

クロスプラットフォーム開発が出来る、とうたう言語や開発環境はいくつかありますが、殆ど嘘だろ(Javaとか詐欺)、UIがプラットフォーム固有のと違い変とか、ネイティブじゃないので重たい、とか、色々あります。

Lazarusはネイティブに各プラットフォーム向けのバイナリがコンパイルできるということで、実際の所、どれだけのものか検証するのに丁度良い機会になる、一石二鳥だ、と。

さらに言うと、簡易的なデジタルサイネージ向けにも使えるようにしたいな、と思っていました。良く店頭とかにある電子掲示板、電子広告板というやつです。というのも、よくあれの営業や広告が多いのですが、どれも単価が(数十万円)やけに高い上に月々いくらみたな費用もかかります。自分としては、あんなの中古のディスプレイ買ってきてUSBスティックPCでも刺してスライドショーさせれば良い話しじゃん!2万円ぐらいで済むでしょ、と思っていたからです。ですから、全画面表示はもとより、コマンドラインから起動や設定ができるようにしたい、と。

見た目も機能も極力シンプルに抑える、というのは絶対に外せない条件でありました。また、全画面でなくとも、ながら作業中に子ウィンドウでスライドショーができる、というのが個人的に欲しくもありました。

画像の表示やスライドショーと言った機能自体は単純ですし、元Delphi使いのため慣れていた環境に似ていて、アプリの基本は1週間ぐらいでサクッと完成しました。

結果は、Win32のネイティブなアプリでまぁ使えるのが出来ました。

いざ自分で使う、という段階で、やはりストアに公開してからインストールする、という回りくどい手順を踏まないと、画像で開く「関連付け」が出来ない状況には変わりはありません。

という事で、自分が個人で使う、というだけの目的だけで、世の中の万人に向けてストアでアプリを公開する、という所業に至ったわけであります。

それが、これ、というわけです。

apps.microsoft.com

 

現時点で、5万1千を超えるダウンロード数があります。アクティブユーザーセッションもそれなりにあるようで、正直、自分で使うためだけに作ったものが世界中でこれだけ使われると少々ビビります

まぁ皆さん、考える事は同じで、やはりデフォルトのUWPアプリ「フォト」が相当にウザかったのでしょう。

因みに、ダウンロード数というのは新しいバージョンをリリースすれば、その新しいバージョンがダウンロードされて数に加算されるので、頻繁にバージョンアップをリリースするアプリほどダウンロード数は増え、アプリ間での比較対象としてはあまりあてになりません。ただ、Simple Image Viewerは、作ってほぼ放置していた時期が長かったので、そういうケースとはちょっと異なります。むしろ、更新しなさすぎ・・・というかシンプルさにこだわっているのでUI改善も何も、追加機能も何も・・・

なお、作ったアプリのソースも、Githubで公開しています。ここでも、チラホラと反応があるんですよねぇ。自分の為だけに作ったのに・・・ってボヤいてもしょうがないですね。

github.com

公開して直ぐの頃、Pullリクエストが来て、ロシア語の翻訳ファイルが送られてきた時は嬉しかったです。ロシアってのがアレ(*注)ですが、嬉しい事には変わりなく、早速取り入れて、英語、日本語に加え、ロシア語対応となっています。

Lazarus/ObjectPascalというのはマイナーな言語・ツールの為、ユーザー同士が仲間意識が高く、同ツールで開発したアプリとかを、Lazarus製だからというだけで高く評価してくれる傾向がある、というボーナスもありました(笑)。あと、MicrosoftDelphiの開発元はアメリカの企業ですから、アメリカ企業のVisual Studioなどの開発環境を使うより、オープンソースのLazarusが好まれる、という理由からか、ロシア圏などではユーザー数が多い気がします。また、Visual StudioDelphiと違い、(商用利用も含めて)無料ですから、南米などの国でも相当なユーザー数が居る印象です。

(注)ここでロシア人に対して変な意図はありません。ただ、インターネットを長く使っていると、ロシア語のページを見ると、はっ!マルウェア埋め込んでないか?!という反応になるのは仕方がないのです(笑)。