オーマイガー東京

オーマイガー東京というブログを24歳東京暮らし新卒2年目のエンジニアが書いています。

【swift】iOSのアプリ開発でオススメのOSSライブラリ25選

用途に合わせて使用するライブラリは先に決めておくと、無駄に自分で独自開発することなく済むので効率的です。(自分で開発すると勉強にはなりますが、品質の面でも劣ることが多いです。OSSはすごい) 

以下のサイトが鬼のようにまとめてくれているので、こちらから探すといいと思います。

github.com

 

 

 

www.ohmg.tokyo

 

 

今回使用するライブラリ一覧

コードの品質管理系

Lint系のライブラリは入れておくと最低限のコード品質は保てるので導入しておくといいと思います。今回は、iOSのlint系ライブラリの中で一番star数を獲得しているSwiftLintにしました。

github.com

 

 

データベース系

いろんな人の記事を読むとやっパリ、realmが圧倒的に使いやすいみたいです。
CoreDataを直接触ってももちろんいいのですが、ios開発のスタンダードはrealmみたい。

github.com

realmを使う際のtipsについてまとめてくれている人がいるので参考にしようと思います。

qiita.com

 

 

時間管理系

時間周りの処理は、何の開発でも結構面倒くさい印象があるので、ライブラリ使ってしまうのが吉だと思います。

今回は公式がめっちゃしっかりしてたSwiftDateを使うことにしました。

SwiftDate - The best way to handle date, time and timezones in Swift

 

 

ログ系

ログ系も個人的にはライブラリ入れてやった方が楽に管理できていいかと思っています。今回調査したところ、以下のLogはかなり簡単な仕様になっており導入コストも低そうなのでオススメです。

github.com

 

 

API通信系

今回は、APIも叩く必要があるのでAPI系のライブラリも入れておきます。
API系のOSSライブラリは、豊富にあるのですが、Alamofire便利そう。

github.com

わかりやすそうな記事です。
こちらみたらとても簡単に導入できそうでした。

www.webprofessional.jp

 

 

JSON Parse系

通信を扱う場合、JSONのparse問題も結構発生しますので、ライブラリ導入しておくと開発が楽だと思います。

こちらが結構有名なライブラリらしいです。

github.com

試してみた系の記事はこちら

picolica.com

 

 

Push通知系

調査したところによると最近では、標準PushとVoIP Pushというのがあるらしい

詳しくは以下にまとまっています。

qiita.com

簡単にまとめると

  • 省エネルギーでデバイスが起動される
  • 高優先度かつ、遅延がない
  • 標準より多くの情報をモテる

とかです。詳しくは記事をみてください。

で、そのVoIPを簡単に発行することができるライブラリがこちらです。

github.com

NWPusherの簡単な使い方の記事はこちら

qiita.com

 

 

UI系

UI系のライブラリは見るのが本当に楽しいです。
暇な時間とかみてたらいい癒しになるかもしれません。

ローディング系 

可愛いローディング画面

GitHub - ninjaprox/NVActivityIndicatorView: A collection of awesome loading animations

https://raw.githubusercontent.com/ninjaprox/NVActivityIndicatorView/master/Demo.gif

 

コンテンツをローディングするとき可愛い

GitHub - Juanpe/SkeletonView: An elegant way to show users that something is happening and also prepare them to which contents he is waiting

https://raw.githubusercontent.com/Juanpe/SkeletonView/master/Assets/sliding_left_to_right.gif

 

 

モーダル系

確認モーダルを出すときに可愛いやつ

GitHub - Codeido/PMAlertController: PMAlertController is a great and customizable substitute to UIAlertController

f:id:maru_33:20180224215308p:plain

 

 

アクションコントローラー系

下からにゅっと出てくるアクションコントローラーで可愛いやつ

https://github.com/xmartlabs/XLActionController/raw/master/Media/demo_periscope.gif

GitHub - xmartlabs/XLActionController: Fully customizable and extensible action sheet controller written in Swift 4

 

ボタン系

オンオフボタン可愛いやつです。

https://camo.githubusercontent.com/12238fb7daad2379149633dc9e6fd0d16274046d/687474703a2f2f7331322e706f7374696d672e6f72672f766e32697261686a782f42454d436865636b5f426f782e676966

GitHub - Boris-Em/BEMCheckBox: Tasteful Checkbox for iOS. (Check box)

 

 ソーシャルボタン勝手に作ってくれるやつです。(横着)

https://github.com/Minitour/EasySocialButton/raw/master/Screenshots/demo.gif

GitHub - Minitour/EasySocialButton: An easy way to create beautiful social authentication buttons

 

Form系

Form系はバリデーションがあるかとか、簡単に使えるかとかが大事な気がします。
objective-cの場合はXLFormを、swiftの場合はXLFormをswift版に再設計したEurekaを使うと良さそうです。

github.com

github.com

 

ナビゲーション系

ナビゲーションをスクロールしたら隠せるやつ
画面を広く見せるために必要ですね

https://github.com/andreamazz/AMScrollingNavbar/raw/master/assets/screenshot.gif

GitHub - andreamazz/AMScrollingNavbar: Scrollable UINavigationBar that follows the scrolling of a UIScrollView

 

リフレッシュ系

pullしてコンテンツをリフレッシュするやつ

https://github.com/CRAnimation/CRRefresh/raw/master/CRRefresh4.gif

GitHub - CRAnimation/CRRefresh: An easy way to use pull-to-refresh

 

スクロールビュー

カード型になっていてとても可愛い

https://camo.githubusercontent.com/bb984a34320d944ccf561857995c90629f5037a0/68747470733a2f2f662e666c6f636b75736572636f6e74656e74322e636f6d2f646334323539613135303438303136333139393038353836

GitHub - ApplikeySolutions/VegaScroll: ↕️ VegaScroll is a lightweight animation flowlayout for UICollectionView completely written in Swift 4, compatible with iOS 11 and Xcode 9.

 

セグメントコントロール系

アニメーションがとても素敵なやつ

https://raw.githubusercontent.com/sasojadrovski/SJFluidSegmentedControl/master/Screenshots/sample.gif

GitHub - sasojadrovski/SJFluidSegmentedControl: A segmented control with custom appearance and interactive animations. Written in Swift 3.0.

 

ステッパー系

いい感じのステッパー

https://raw.githubusercontent.com/gmertk/GMStepper/master/Screenshots/screenshot_1.gif

GitHub - gmertk/GMStepper: A stepper with a sliding label in the middle.

 

スウィッチ系

https://raw.githubusercontent.com/andreamazz/ViralSwitch/master/assets/screenshot.gif

GitHub - andreamazz/ViralSwitch: A UISwitch that infects its superview with its tint color.

 

テーブル系

データがからの時にそれらしいのを出してくれるやつ

https://raw.githubusercontent.com/dzenbot/DZNEmptyDataSet/v2-swift/Examples/Applications/Screenshots/Screenshots_row1.png

GitHub - dzenbot/DZNEmptyDataSet: A drop-in UITableView/UICollectionView superclass category for showing empty datasets whenever the view has no content to display

 

_______________________

今回は使わなかったけど、便利そうなライブラリ達

カラー系

以下のライブラリは、以下のグラデーションとかを簡単に作成できるツールのようです。便利そう。。。

https://raw.githubusercontent.com/hyperoslo/Hue/master/Images/gradients-screenshot.gif

github.com

 

ネットワークデバック系

通信内容を確認して、デバックできるライブラリです。
こちらは、iOSの通信内容をPCで確認できるみたいです。便利。

github.com

 

UI系

ボタン系

https://camo.githubusercontent.com/b18993cbfe91de8abdc0019dc9a6cd44707eec21/68747470733a2f2f6431337961637572716a676172612e636c6f756466726f6e742e6e65742f75736572732f3338313133332f73637265656e73686f74732f313639363538302f766266706f70666c6174627574746f6e332e676966

GitHub - victorBaro/VBFPopFlatButton: Flat button with 9 different states using POP

 

以上です。

OSS開発してくださっている先人の方々に感謝

 

おまけですが、こちらでiOSアプリを開発する際に決めておいたほうがいいことをまとめました。

www.ohmg.tokyo