ITエンジニア/デザイナ向けにオープンソースを毎日紹介

スマートフォン & GitHubの登場!

2007年01月は誰もが知るiPhoneの発表された時です。それまでのスマートフォンと言えば上半分が画面、下半分がクエリーキーボードのスタイルとなっており非常にビジネス臭のするデバイスでした。それがiPhone以後はスマートフォンと言えばインターネットと大画面、そしてタッチ操作に置き換わってしまったと言われるほどです。この魅力的なデバイスはオープンソース・ソフトウェア界隈にも大きな影響を与えました。ちなみに筆者はコンパックのiPAQやザウルスなどのPDAが好きでした。

まず第一にiPhoneに飛びついたのがハッカーでした。幸いiPhoneには脆弱性が未だにあり、JailBreak(脱獄)がすぐに実現しました。その結果、Cydiaと言うアプリ配信プラットフォームが生み出されました。ここではハッカー精神溢れるソフトウェアが数多く存在しましたが、それらの多くがオープンソース・ソフトウェアとして公開されました。MOONGIFTでもそれらは数多く紹介し、実デバイスで試しています。

素のiPhoneを楽器にしてしまったり、Webサーバを動かす、クリップボードを使えるようにするなど今となっては当たり前なアプリや拡張がハッカー達の手で生み出されていきました。その結果をAppleがうまく(?)吸い上げてiOSに取り込んでいっているとと言えるでしょう。個人的にはここ数年JailBreakをしなければならない要件には出会わなくなっていますが、今なおホーム画面のカスタマイズなどで利用されるケースがあるようです。

そんな中、2008年に大きな変化が起こりました。それがGitHubの登場です。それまでソースコード管理と言えばSubversionが一般的で、幾つかのオープンソース・プロジェクトが使っていたGitを一気に普及させた存在として知られています。またソーシャル機能を提供し、プロジェクトに対してスターを付けたりプログラマーをフォローしたりとこれまでのオープンソース・プロジェクトの中に何となく存在していた権威的な関係が一気にフラットになったように感じられました。その結果、オープンソース・ソフトウェアが一気に花開き、とてもカジュアルにソフトウェアが公開される文化が生まれたのです。特にJavaScriptのようにWebブラウザからソースコードが見えてしまうプログラミング言語が普及したことで、jQueryプラグインをはじめスタイルシートやWebデザイン系のソフトウェアが今なお数多く公開されています。

なおGitHubの欠点としてあまりにカジュアルであるためにライセンスを明記していないソフトウェアが数多く存在します。開発したプログラマー本人にとってはライセンスを付けるのは面倒くさい、自由に使って欲しいくらいの気持ちかも知れませんが、利用する側にとってみればライセンスが明記されていないものを使ったがために後で問題になるリスクをあえてとりたいとは思いません。万一使っているライブラリのお陰もあってサービスが爆発的に伸びた場合、利用料をよこせと言われる可能性だってある訳です。プログラマーとして、自分が作ったソフトウェアを第三者に使って欲しいと思うならばライセンスは明記することをお勧めします。

Androidの登場

MOONGIFTでAndroidをはじめて取り上げたのは2009年06月02日のようです。実際にはその前からAndroidという名前は散見されますが、Androidのソフトウェアを紹介したという意味ではこれが最初です。そしてさらに言えば日本では2009年夏にdocomoから初のAndroid端末HT-03Aが発売したようです。使い勝手が良かったとは思わないが、あの頃から3年半で今ほどに進化しているというのは凄いことですね。

AndroidはOSがオープンソースであるということもあって、アプリもソースコードが公開されていることが多いです。悪く言えばオープンソースのOSというのが先に立ってしまい、有料アプリがiPhoneに比べて売れず、オープンソースとして公開することでプログラマーとしての知名度を高めるのに使っているのも多かったりします。なお今はアプリ内課金の仕組みもあるので状況は変わってきているでしょう。いずれにしてもソースコードが公開されていることで他のプログラマーが同じような仕組みを実現したいと思った時に参考にできるメリットは大きいです。

TitaniumとCordova

この頃になるとiPhoneとAndroidのシェア争いが活発化しています。その中で生み出されたのがワンソース、マルチデバイスで動作するフレームワークです。幾つかありますが、今はAppcelerator社のTitaniumとCordova(PhoneGap)が有名でしょう。どちらもJavaScriptエンジンとネイティブコードをブリッジして動作させるタイプのフレームワークです。Webプログラマーがこれまで使ってきたJavaScriptを使ってスマートフォンアプリが作れるとあって人気を集めていますが、どちらもネイティブでコードを書くのに比べて速度が遅いという点が難点になっています。

解決策は幾つかあります。一つはハードウェアの進化に任せることです。実際、AndroidやiPhoneの開発スピードはとても速く、毎年デバイスがバージョンアップし、それに伴ってメモリやCPUも高速化しています。2007年からの登場で、今やiPhoneは64bit化し、Androidもクアッドコア(最新機種ではオクタコア!)で動いています。若干の動作の遅さなど、ハードウェアで軽々解決できる可能性があるのです。

もう一つはTitanimが目指しているTi.Nextと呼ばれる仕組みです。JavaScriptからネイティブコードを生成する仕組みで、同じような仕組みはRubyMotionも行っています。速度面は大幅に解決するのは間違いないですが、これでマルチデバイスをサポートするというのは相当大変なことではないでしょうか。今後に期待したい分野です。

Flashの終焉

iPhoneがリリースされた時、Flashプラグインはサポートされないという大きな発表が行われました。これは既存サイトの何割かが動作しないことを意味するため、大きな問題になりましたが、初期はFlashプラグインをリリースしていたAndroid版も提供が終わり、事実上スマートフォンではFlashが使われなくなっています。代替技術としてHTML5がありますが、Flash並のインタラクティブさを自由自在に生み出すには至っていないように感じられます(そもそもスマートフォンなどの小さな画面でダイナミックなアニメーションが必要とは思えませんが…)。

2007年くらいまではFlash系のオープンソース・ソフトウェアも数多く取り扱ってきたのですが、最近では殆ど新しいソフトウェアを見かけなくなっています。時折Adobe AIRを使ったソフトウェアを見かける程度で、ネイティブとの速度差や専用の実行エンジンをインストールする必要があって敷居は高いようです。

HTML5

Flashが衰退していく中、注目を集めているのがHTML5です。MOONGIFTではじめてHTML5という単語が出たのが2007年8月20日、その後2009年から実際にHTML5に対応したソフトウェアの紹介が増えています。

HTML5においては仕様が固まっていなかったこともあり(正式勧告は2014年、つまり今年!)、せっかく実装された機能が正式勧告の時点では省かれてしまったものもあります。またブラウザによって実装状態もばらつきがあり、HTML5のシェアが広がっているからといって共通した機能が使える訳でもないのが現状です。さらにスマートフォンとデスクトップで使える機能が異なったり、AndroidのWebViewにおけるHTML5実装が貧弱であったりと問題は山積みであるように感じられます。

とは言いつつも2014年も引き続きブラウザは進化し続けるのは確実で、HTML5のサポートも徐々に進んでいくでしょう。MOONGIFTにおいても引き続きHTML5に対応したWebアプリケーション、ライブラリの紹介は増えていくだろうと予想されます。

結論

MOONGIFTで取り上げているキーワードは先進的であり、その数年後に実際にソフトウェアが出たりトレンドにのってきたりします。しかしそういったキーワードを早めにとらえ、トライしておくことはプログラマーとしての資質を高めたり、先駆者としてビジネストレンドを牽引していくのに役立つのではないでしょうか。

次はなぜプレミアム?そこから得られた経験教えますです。フリーミアムの利点、欠点を体験者としての立場からお教えします!


10周年記念特集!「オープンソース×10年」

 

MOONGIFTの関連記事

コメント

  • DevRel
  • Com2