おかげさまで昨年12月にリリースしたハイレゾ再生ソフトのHYSOLIDは雑誌や有名Webサイトなどで紹介して頂くなど、予想以上の好評を頂いています。問い合わせフォームやTwitterから「音が良い」「気に入って常用している」等の嬉しいメッセージも多数頂きました。
最近はオーディオが分かる方とお話しすると、必ずと言って良いほど「なぜハイレゾの再生ソフトを開発したのか」と質問を頂きます。これは単にたまたまハイレゾオーディオの分野を調べていったら、必要な技術分野が自分たちの得意分野と一致していたからです。つまり自分たちならハイレゾ再生ソフトのスタンダードを目指せると気づいたのです。
「スタンダードを目指せる」と言っても「スタンダードになる」にはまだまだ改善が必要で、今は道半ばといったこところです。HYSOLIDは今後も改善を続けていく予定です。
参考までにHYSOLIDで使ったテクノロジをご紹介します。
【Windowsのネイティブプログラミング】
Windows上で.Net Framework等を使わずに動作するプログラムを開発する技術です。プログラミング言語はC++を使います。(余談ですが、C++は私の最も好きな開発言語です。)
【iOSアプリ開発】
iPhone/iPadアプリを開発する技術です。言語はObjective-CかSwiftです。iOSアプリ開発は私たちの主力ビジネスで、自社プロダクトのKURERUやCardfeelをはじめ、お客様向けの業務システムも多数開発しています。
【Androidアプリ開発】
Androidのアプリ開発技術。言語はJavaです。Cardfeelやお客様向けのアプリ開発の実績があります。いつもどおりではあるのですが、安定動作や動きの良さには特に気を配っています。
【COMプログラミング】
マイクロソフト社の定義したCOMと呼ばれるソフトウェアのモデルに則したプログラム開発技術です。COMはコンポーネントオブジェクトモデルの略です。ブラウザコントロール(ActiveXコントロール)やBHO(ブラウザヘルパーオブジェクト)のプログラム開発では必須になります。尚、オーディオ再生のインターフェイスWASAPIもCOMで実装されています。
【マルチスレッドプログラミング】
1本のプログラムが複数に枝分かれして平行動作するプログラムを開発するプログラミング技術です。今回はWindows、iPhoneアプリもAndroidアプリの3点ともこの技術を使っています。
【サービスプログラミング】
WindowsのOS起動とともに動作するプログラムのことをサービスと呼びます。Windowsサーバー上で、普通のWebサーバーの仕掛けでは対処しきれない高度な要件があるときに、この技術が必要になってくることがあります。UIを持たないのでデバッグなどで余分な手間がかかります。
【ソケットプログラミング】
TCP/IPのためのプログラミング技術で、HTTPやFTP等のベースとなる技術です。WebサーバーやFTPソフトなどは全てこの技術を使って構成されています。一昔前はネットワークプログラミングといえばソケットプログラミングを指していました。今は上位のライブラリが充実しているため使う機会はほとんどなく、専門書もなかなか見つかりません。
【Webシステム開発・運用】
サーバー上でWebサーバーとデータベースを組み合わせてシステムを構築する技術です。今回の選択は最も一般的な組み合わせであるLAMPを採用しました。LAMPは、Linux, Apache, MySQL, PHPの頭文字を並べたものです。この技術には、ドメインを取得してDNSを設定したり、送信メールがスパム扱いにならないような設定を入れたり、複数世代のバックアップアップを自動取得する仕掛けを入れたりと小技のオンパレードも含まれています。
【AWSの利用】
Amazon社のクラウドサーバーを利用する技術です。現在は大部分(80%以上)の受託開発でAWSを利用しています。具体的にはコンピューティングのEC2、ストレージのS3、データベースのRDS等です。