Mokosoft開発者ブログ

こんなブログ読んでも時間の無駄ですよ

Android開発で使って便利だったオープンソースライブラリ

http://www.flickr.com/photos/27965998@N00/2394268353

 

前回、iOSのライブラリを紹介しましたが、今回はAndroid開発で利用したライブラリを紹介します。

と、いっても、もともとJava自体にライブラリやフレームワークがたくさんあるわけで、そういったものを利用している人も多いでしょうし、iOSのように、あのアプリで使われてるあの機能がライブラリに!というのは少ないのが現状ではないでしょうか。

 

 

android-gpuimage

サイバーエージェントさんのカメラ周りオープンソースライブラリ。

iOSで紹介した「DLCImagePickerController」に近いもので、カメラの起動や、撮った写真へのフィルター機能などがモジュール化されています。

ですが、カメラ起動で面倒な、デバイス毎のカメラの存在チェックや、カメラの台数チェック、画面へのプレビュー解像度、写真撮影解像度の設定などの、部分は自分で書かないと行けないみたいで、iOSほど簡単にはカメラアプリを実現させてくれません。

しかしフィルター機能などは1から実装するよりは格段に利便性が高いと思います。

 

 

android-query

いろいろな機能が内皮されているライブラリ。

f:id:mad_ochi:20131224092108p:plain

多数の手順がかかってしまう、UIへのアクセスを単純化することがメリット、らしいのですが、この機能はあんまりつかわなくてw

Ajax的な動きをする機能が便利で使っています。

f:id:mad_ochi:20131224094425p:plain

AsynTaskとか毎回定義をするのは面倒なので、とても便利です。

 

 

Universal Image Loader for Android

こちらも、iOS版で紹介したSDWebImageと同等の、ネットからの画像表示系をカプセル化してくれるライブラリになります。

Androidは特にBitmap型データの扱いがめんどい!自前キャッシュを作ってる方も多いでしょうが、このライブラリを使うと、ある程度の面倒さが軽減されて、スッキリします。

 

 

Simple

f:id:mad_ochi:20131224095323p:plain

厳密に言うと、AndroidのライブラリではなくJavaフレームワークになります。

ちょっと前までは、サーバーとの情報のやりとりにXMLを利用していたのですが、XML構造をそのままプログラム内で利用するのは難しいため、自前でパースして、自前の変数に入れてと、無駄な手間が多く発生していました。

こちらのSimpleフレームワークを利用すると、XML構造を定義したクラスを作るだけで、パース後にXMLをそのままクラスオブジェクトとして扱うことができて、プログラムのしやすさが格段に違いました。

これ単体だと、使いにくいので、上記のAndroid-queryと併用したり、私の場合はSpringFrameworkと連携をしていました。

 

android-plist-parser

名前から推して知るべしなのですが、iOSで利用するplistファイルをAndroidでも利用できるようにパーシングをしてくれるライブラリです。

iOS先行で開発を行うと、設定ファイルとしてplistを使うことも多く、後でAndroidへの移植のときに、また作りなおさないといけないのか、という懸念を解決してくれます。

しかも、このライブラリを使うと、iOSで利用しているNSDictionaryやNSArrayオブジェクトが使えるようになるので、プログラム的な使いやすさも良いです。

 

 

DragSortListView

 

 iOSアプリでリストビュー内部の並び替えが行われているアプリを、Androidへ移植する際に、「この機能もAndroidで実現してくれないと困る!」とかいわれて泣いた人も多いでしょうw

Androidの標準機能になくてiOSにしかない動きをAndroidアプリに搭載する必要性がまったくわかりませんけどね。

そういった悩みを解決するのがこのライブラリです。

通常のListViewのかわりにこちらのコントロールを利用することで、並び替え機能およびイベントを提供してくれます。

 

 

hmzip-android

Androidでzipファイルを展開するのに利用したライブラリです。以上。

 

 

 

 

Androidのライブラリ自体はたくさんあるのですが、実際にいざ使ってみて実用的だなーと感じるのは、まだまだ少ないのではないかと思います。

というのも、仕組み上、アドオン的なライブラリになるよりは、フレームワークとしての提供というライブラリが非常に多いため、開発の根本を揺るがす話になってきてしまいます。

途中まで作っていて、ライブラリで解決したい、という時に、作り直しが発生するのはつらいですからね。

逆にいうと、数多のフレームワークを利用すれば、開発がグンと楽になることもありえますので、まず作り出す前に情報収集が必要不可欠かと思います。