Upload
asakahara
View
8.797
Download
3
Embed Size (px)
Citation preview
iOS開発で使えるオープンソースの ライブラリやサービスの紹介
【名古屋】第31回iPhoneアプリ開発者勉強会
2015/1/17 @asakahara
自己紹介•京都からやってきました •去年は岐阜で開催されたiPhone勉強会に参加
•昨年の2月から株式会社はてなに入社し京都に移住 •それ以前は広島のECサイト運営会社とフリーランスで
4年ほどiOSアプリ開発に従事
•個人でもiOSアプリを6本ほどリリース
•はてなのアプリケーションエンジニア •はてなブックマークiOS、Androidアプリ、Pressoなどを担当
•現在はSwiftで新規アプリの開発中
•はてなブログ:http://sakahara.hatenablog.jp/
•個人サイト:http://www.mocology.com/ja/
• Twitter:@asakahara
• qiita:http://qiita.com/asakahara
•今やってること
•ブログ、SNSなど
iOSアプリ開発をよりスマートに 行えるオープンソースの
ライブラリやサービスを紹介
今日のお題
•紹介するライブラリはSwiftでも使用可能
•定番とUI系のライブラリを主に紹介
パッケージ管理•CocoaPods
•定番のライブラリ管理ツール •全てのライブラリに適用可能 •現状はベータ版なら Swiftにも対応
•Carthage
• Swiftに対応しているのがメリット
•現状はdynamic frameworkのみをサポート
•そのため全てライブラリに対応するのは現状では無理 • iOS8以降で動作する
•全てSwiftで実装されている
•こちらもHTTPネットワーク通信用ライブラリでMattt Thompsonさんが開発
•インターフェイスはAFNetworkingとは異なる
•ライブラリのソースコードはSwiftで実装する際に参考なるので読んでみるとよい
通信周りとそのサポートをするライブラリ#1•AFNetworking
•定番中の定番のHTTPネットワーク通信用ライブラリ
• iOS開発で著名なMattt Thompsonさんが開発
• APIサーバからJSONのレスポンスを取得してパースする処理なら数行で書ける
•Alamofire
通信周りとそのサポートをするライブラリ#2
•SDWebImage
•こちらも定番の画像を非同期でダウンロード •デフォルトでキャッシュをうまくコントロールしてくれる •アニメーションGIFにも対応
•Mantle• JSONをObjective-Cのオブジェクトに変換する
•オブジェクトをJSONにして出力することもできる
• NSManagedObjectへの変換にも対応しており、Core Dataを使う際も便利
•どちらもUITableViewCellにスワイプメニューを表示する
•意外にこの手の機能を自前で実装するのは面倒
UI系ライブラリ#1
•ローディング中のステータスを表示してくれるライブラリ •細かい調整をしたいならMBProgressHUD
•単純にローディング中を表示したいだけならSVProgressHUD
•MCSwipeTableViewCell、MGSwipeTableCell
•MBProgressHUD、SVProgressHUD
• UISegmentedControlをタブボタン風にしたUIControl
•アニメーションや画像、フォントの設定、マージンの調整など細かい部分まで対応
UI系ライブラリ#2•AAMFeedback、CTFeedback
•ユーザーからのフィードバックをメールで送信する際にアプリ名やバージョンなど付加情報を自動的に設定できる
•簡易的にメールでユーザーからフィードバックを受けたい場合によい •どちらも同じ機能を提供するが更新頻度の高いCTFeedbackがオススメ
•HMSegmentedControl
• UIBarButtonItemにバッジを表示する
•バッジのフォント、カラー、位置など細かい設定も可能
UI系ライブラリ#3•AMScrollingNavbar
• SafariようにスクロールするとUINavigationBarを非表示する
• UITableViewやUIScrollViewに数行追加するだけ
•BBBadgeBarButtonItem
UI系ライブラリ#4•RMUniversalAlert
• UIAlertView、UIActionSheet、UIAlertControllerをBlocksで記述
• UIAlertView、UIActionSheetとiOS8以降で使える
UIAlertControllerの切り替えは自動で実施
テスト系ライブラリ•OHHTTPStubs
• HTTP通信を内部でフックしてスタブ用のレスポンスを返してくれる
•通信周りのテストで使用
サービス系•Crashlytics
•クラッシュレポートの解析サービス • Twitterに買収された
•自動でdSYMを送ってくれるので別途アップロードする必要がない
•TestFlight
•アプリリリース前のベータテスト用などにユーザーにアプリを配布できる • Appleが買収したことでAppleのデベロッパーツールの一部となったが、本
家もサービスは継続中 • Apple TestFlightなら本番同様のバイナリをDLできるのでAdHocなどでは発
生しない問題もリリース前に確認できる
最後に
•ライブラリを使うことで不要な開発コストを減らす •ライブラリは使うだけでなくそのソースコードを読むことで知見がたまるし、不具合対応時には必要になってくる
•クラッシュの解析などはサービスを併用しないと難しいので積極的に使うべき
•読むだけでなく自分でライブラリを作って公開することで世の中に貢献しよう
ご清聴ありがとう ございました!