15
iOS開発で使えるオープンソースの ライブラリやサービスの紹介 【名古屋】第31回iPhoneアプリ開発者勉強会 2015/1/17 @asakahara

iOS開発で使えるオープンソースのライブラリやサービスの紹介

Embed Size (px)

Citation preview

Page 1: iOS開発で使えるオープンソースのライブラリやサービスの紹介

iOS開発で使えるオープンソースの ライブラリやサービスの紹介

【名古屋】第31回iPhoneアプリ開発者勉強会

2015/1/17 @asakahara

Page 2: iOS開発で使えるオープンソースのライブラリやサービスの紹介

自己紹介•京都からやってきました •去年は岐阜で開催されたiPhone勉強会に参加

•昨年の2月から株式会社はてなに入社し京都に移住 •それ以前は広島のECサイト運営会社とフリーランスで

4年ほどiOSアプリ開発に従事

•個人でもiOSアプリを6本ほどリリース

Page 3: iOS開発で使えるオープンソースのライブラリやサービスの紹介

•はてなのアプリケーションエンジニア •はてなブックマークiOS、Androidアプリ、Pressoなどを担当

•現在はSwiftで新規アプリの開発中

•はてなブログ:http://sakahara.hatenablog.jp/

•個人サイト:http://www.mocology.com/ja/

• Twitter:@asakahara

• qiita:http://qiita.com/asakahara

•今やってること

•ブログ、SNSなど

Page 4: iOS開発で使えるオープンソースのライブラリやサービスの紹介

iOSアプリ開発をよりスマートに 行えるオープンソースの

ライブラリやサービスを紹介

今日のお題

•紹介するライブラリはSwiftでも使用可能

•定番とUI系のライブラリを主に紹介

Page 5: iOS開発で使えるオープンソースのライブラリやサービスの紹介

パッケージ管理•CocoaPods

•定番のライブラリ管理ツール •全てのライブラリに適用可能 •現状はベータ版なら Swiftにも対応

•Carthage

• Swiftに対応しているのがメリット

•現状はdynamic frameworkのみをサポート

•そのため全てライブラリに対応するのは現状では無理 • iOS8以降で動作する

Page 6: iOS開発で使えるオープンソースのライブラリやサービスの紹介

•全てSwiftで実装されている

•こちらもHTTPネットワーク通信用ライブラリでMattt Thompsonさんが開発

•インターフェイスはAFNetworkingとは異なる

•ライブラリのソースコードはSwiftで実装する際に参考なるので読んでみるとよい

通信周りとそのサポートをするライブラリ#1•AFNetworking

•定番中の定番のHTTPネットワーク通信用ライブラリ

• iOS開発で著名なMattt Thompsonさんが開発

• APIサーバからJSONのレスポンスを取得してパースする処理なら数行で書ける

•Alamofire

Page 7: iOS開発で使えるオープンソースのライブラリやサービスの紹介

通信周りとそのサポートをするライブラリ#2

•SDWebImage

•こちらも定番の画像を非同期でダウンロード •デフォルトでキャッシュをうまくコントロールしてくれる •アニメーションGIFにも対応

•Mantle• JSONをObjective-Cのオブジェクトに変換する

•オブジェクトをJSONにして出力することもできる

• NSManagedObjectへの変換にも対応しており、Core Dataを使う際も便利

Page 8: iOS開発で使えるオープンソースのライブラリやサービスの紹介

•どちらもUITableViewCellにスワイプメニューを表示する

•意外にこの手の機能を自前で実装するのは面倒

UI系ライブラリ#1

•ローディング中のステータスを表示してくれるライブラリ •細かい調整をしたいならMBProgressHUD

•単純にローディング中を表示したいだけならSVProgressHUD

•MCSwipeTableViewCell、MGSwipeTableCell

•MBProgressHUD、SVProgressHUD

Page 9: iOS開発で使えるオープンソースのライブラリやサービスの紹介

• UISegmentedControlをタブボタン風にしたUIControl

•アニメーションや画像、フォントの設定、マージンの調整など細かい部分まで対応

UI系ライブラリ#2•AAMFeedback、CTFeedback

•ユーザーからのフィードバックをメールで送信する際にアプリ名やバージョンなど付加情報を自動的に設定できる

•簡易的にメールでユーザーからフィードバックを受けたい場合によい •どちらも同じ機能を提供するが更新頻度の高いCTFeedbackがオススメ

•HMSegmentedControl

Page 10: iOS開発で使えるオープンソースのライブラリやサービスの紹介

• UIBarButtonItemにバッジを表示する

•バッジのフォント、カラー、位置など細かい設定も可能

UI系ライブラリ#3•AMScrollingNavbar

• SafariようにスクロールするとUINavigationBarを非表示する

• UITableViewやUIScrollViewに数行追加するだけ

•BBBadgeBarButtonItem

Page 11: iOS開発で使えるオープンソースのライブラリやサービスの紹介

UI系ライブラリ#4•RMUniversalAlert

• UIAlertView、UIActionSheet、UIAlertControllerをBlocksで記述

• UIAlertView、UIActionSheetとiOS8以降で使える

UIAlertControllerの切り替えは自動で実施

Page 12: iOS開発で使えるオープンソースのライブラリやサービスの紹介

テスト系ライブラリ•OHHTTPStubs

• HTTP通信を内部でフックしてスタブ用のレスポンスを返してくれる

•通信周りのテストで使用

Page 13: iOS開発で使えるオープンソースのライブラリやサービスの紹介

サービス系•Crashlytics

•クラッシュレポートの解析サービス • Twitterに買収された

•自動でdSYMを送ってくれるので別途アップロードする必要がない

•TestFlight

•アプリリリース前のベータテスト用などにユーザーにアプリを配布できる • Appleが買収したことでAppleのデベロッパーツールの一部となったが、本

家もサービスは継続中 • Apple TestFlightなら本番同様のバイナリをDLできるのでAdHocなどでは発

生しない問題もリリース前に確認できる

Page 14: iOS開発で使えるオープンソースのライブラリやサービスの紹介

最後に

•ライブラリを使うことで不要な開発コストを減らす •ライブラリは使うだけでなくそのソースコードを読むことで知見がたまるし、不具合対応時には必要になってくる

•クラッシュの解析などはサービスを併用しないと難しいので積極的に使うべき

•読むだけでなく自分でライブラリを作って公開することで世の中に貢献しよう

Page 15: iOS開発で使えるオープンソースのライブラリやサービスの紹介

ご清聴ありがとう ございました!