- 更新日: 2017年03月23日
- 公開日: 2015年10月07日
アプリ開発を超高速化!OSSライブラリとは?
OSS(オープンソース)とは無償で公開され、利用や改良が誰に対しても許可されているソフトウェアのことを指します。
OSSを活用することで、ゼロから構築すると数か月かかるような機能でも、数時間で同じ機能を導入できる場合があります。そこで今回が、OSSの基礎知識と代表的なOSSライブラリをご紹介します。
OSSとは
前述した通り、OSSを活用することで、アプリ開発の生産性を向上させることができますが、どのアプリでも汎用的に用いられる機能については、OSS利用の効果が大きいと言われています。
例えば、メニューを表示するUI(ユーザーインターフェース)要素や、サーバーと情報をやり取りする通信機能などは、どのようなアプリでも共通して利用されるものでしょう。既に高い品質で開発がなされたOSSを導入することで、不要な開発作業を行わずに済みます。
OSSライブラリはGithub(https://github.comなどの公開データベースで検索することが可能で、iOSのキーワードで検索すると数万件のライブラリがヒットすることが分かります。
優れたライブラリは世界中のエンジニアが開発に参加し、その成果を共有しているので、バグが少なく、最新の環境や要件に対応してあります。
OSSを上手に活用することで、アプリ開発の初心者であっても、高度な機能を簡単に使いこなすことができるようになるのです。
iOS向けOSSライブラリ4選
AFNetworking:ネットワーク通信
iOS向けのHTTP通信ライブラリです。アプリからインターネット上の情報を取得するには、サーバーと情報をやり取りする機能が欠かせません。
このライブラリを使うと、どのサーバーからどの情報を取得するかという簡単な指定を行うだけで、通信が行えるようになります。ネットワーク通信の“デファクトスタンダード”であり、企業内外を問わずほとんどのエンジニアが採用していると言われています。
リンク:https://github.com/AFNetworking/AFNetworking
MagicalRecord:データ管理
iOSやOS XではCoreDataと呼ばれるデータ管理手法が採用されていますが、使い勝手がよくないという声も聞かれました。
MagicalRecordを利用することで、Core Dataにアクセスする処理が簡単に記述できるようになります。複雑なプログラムを書くことなく、データの検索・追加・更新・削除を行えるのがメリットです。
リンク:https://github.com/magicalpanda/MagicalRecord
Cocoa Lumberjack:ログ出力
ログ出力はアプリ開発には欠かせませんが、ログ自体はアプリの機能に影響するものではありません。そのため、自分で時間をかけて開発するよりも、既に構築されたOSSを利用するメリットが大きいと言えるでしょう。
Cocoa Lumberjackは高速・軽量・柔軟なiOS向けライブラリとして人気を集めています。ログの重要度に合わせてverbose, info, warning, errorの4段階で出力することが可能であり、テスト環境や本番環境など、必要に応じてログ出力のレベルを変えることができます。
開発中のアプリを導入したモバイル端末を開発用Macに接続すると、開発環境であるXcode上で実行時のログを確認することが可能になります。
リンク:https://github.com/CocoaLumberjack/CocoaLumberjack
SDWebImage:画像ダウンロード
アプリの中では画像をサーバーから取得するケースが多々あります。SDWebImageは画像を非同期で取得する機能を提供します。
”非同期”という点がポイントであり、もし”同期”で画像ダウンロードを行ってしまうと、サーバーからのダウンロードに時間がかかっている場合に、アプリの処理全体が止まってしまい、アプリが動かなくなってしまうケースが考えられます。”非同期”にすることで、想定外に処理が止められることがなくなり、また、それを回避するための複雑なプログラムを自分で開発することもなくなります。
さらに、一度ダウンロードした画像を一定期間保管しておくキャッシュの機能も搭載しており、その使い勝手の良さが人気につながっています。
\Webサイト担当者としてのスキルが身に付く!!/
まとめ
「広く受け入れられ確立されている技術や解決法を知らずに、同様のものを再び一から作ること」は「車輪の再発明」と揶揄され、エンジニアが避けるべきものとされています。
OSSライブラリを活用することで、既に開発されたものを作り直すことなく、自分が作成するべきアプリのアイデアに注力することが可能になります。本記事では4つのiOS向けOSSライブラリを紹介しましたが、Android向けを含めてOSSライブラリは無数に存在します。
何でも自力で作ろうとせず、OSSライブラリを検索してみると、思った以上にアプリ開発が効率化していくことでしょう。
- この記事を書いた人
- 佐藤隆之