iOS SDK開発でOSSライブラリを使う際の基礎知識:生産性ガチアゲなオープンソースiOSライブラリ(1)(1/2 ページ)
ゼロからiOS SDK開発を始める新規開発者でも超高速・高品質な開発を可能にするオープンソースのライブラリを目的別に紹介していく連載です。実際にライブラリを組み込みながら技術的な側面も合わせて詳細に説明していきます。初回は、OSSライブラリ活用の基本とUI系を中心にライブラリを16個紹介します。
OSSライブラリを活用した超高速・高品質な開発方法
オープンソース(以下、OSS)のライブラリを活用して開発を行うと、ライブラリ未使用の場合に比べて生産性、品質ともに圧倒的な違いが出ます。本連載では、ライブラリの種類、使い方、メリットなどを、実際に動くコードと一緒に解説していきます。
近年、iOS(iPhone、iPad)アプリ市場が急速に発展し、アプリ開発者は変化する状況に対し、さまざまなスキルを必要とされる時代となっています。例えば、一般コンシューマ向けアプリの多くではTwitterやFacebookといったソーシャルネットワーク/SNSや外部サービスとの連携を行うものが増えており、クラウド環境を利用するアプリの作成ではサーバ構築やWebアプリケーションのスキルも必要となってきます。
そういった背景の中で、OSや開発環境であるXcodeのバージョンアップは年1回のペースで行われており、開発者はOSごとに異なる挙動や、Xcodeのバージョンごとの変化への対応も迫られています。
このように、日々変化する開発事情への対応は避けられませんが、決してiOS開発はハードルが高く、生産性の上げにくい分野というわけではありません。なぜなら2008年にSDKが登場して以来、無数の開発者が開発を行い、その成果をライブラリ化してOSSとして公開しているからです。これらのライブラリを使えば、ゼロから開発を始める新規開発者であっても高度で高品質な機能を簡単に自分のアプリに実装できます。
iOSライブラリの現状
OSSで公開されているライブラリといえば、JavaScriptやRubyなどのWeb技術が多いイメージがありますが、GitHubで検索キーワードに「iOS」と入れて検索すると、1万7000以上のリポジトリがヒットします。この数字は歴史が4年弱しかなく、利用範囲がiPhoneやiPad向け(一部はMac)アプリと限られていることを考えると、十分過ぎる数字だと思います。
メジャーなアプリで実装されている処理のほとんどはライブラリで簡単に実現可能で、世界中の開発者はこれらのライブラリを駆使して開発を行い、必要な改修を加えてブラッシュアップされたライブラリが日々生まれています。
近年では、Webや書籍など、いろいろなルートでOSSの情報を得ることができますので、常に「どんなライブラリが新しく生まれたか」という情報にアンテナを向けておくことが重要です。
筆者の所属するソニックスの米国拠点では「tRoveWare」というサイトを運営しており、世界中のライブラリを言語ごとにまとめて、随時更新しています。ご興味ある方は、ご活用ください。
ライブラリ活用で得られるメリット
ライブラリを活用して得られるメリットは、その時の状況や、利用するライブラリによって異なりますが、最も大きく、目に見えて変わることは「生産性の向上」だと思います。例えば何もない状態からスクラッチで作り込むと数カ月かかってしまうような機能がライブラリを利用することで半日で実現できてしまうこともあります。しかも、それが無償で利用できてしまうのです。
当然、その分コードも少なくなるので可読性の向上や長期的なメンテナンスや改修を行う場合の保守性を高めるという利点もあります。
ライセンス制限の緩いライブラリであれば、改変したうえで独自ライブラリとして公開できることもあるので、すでに作られた機能に対して独自の拡張を加えて、そのライブラリを単体で販売して収益を上げる、といったことも可能になります。
ライブラリ活用で実現できるアプリ4例
以降で実際にライブラリを利用して実現できるアプリの例を、いくつか紹介します。
【1】「Clear」「Flipboard」のUIを実現できる「MPFoldTransition」
UI操作感が絶賛され、公開後9日間で35万以上のダウンロードを記録したToDo管理アプリ「Clear」のような折り畳むようなUIも、「Flipboard」の画面をめくるUIもライブラリ「MPFoldTransition」を使えば簡単に実現できます。
【2】LINEのようなチャットアプリのための「UIBubbleTableView」
LINEのようなチャットアプリのためのUIライブラリもあります。
【3】画面を下へ引っ張ってリフレッシュする「EGOTableViewPullRefresh」
TwitterやFacebookのような画面を下へ引っ張ってリフレッシュするUIライブラリです。
【4】Facebookっぽい画面端で折り畳むメニュー表示「JASidePanels」
Facebookなどでも使われている画面端で折り畳むメニュー表示もライブラリで作れます。
Copyright © ITmedia, Inc. All Rights Reserved.