読者です 読者をやめる 読者になる 読者になる

初OSS公開しました!

OSS Carthage CocoaPods

現在、自社サービスの開発でiOSMacアプリを開発しているのですが、 Cocoa FrameworkがUIPageControlに相当するコンポーネントを提供していなかったため、 NSPageControlという名前で自作してみました。
今回は、それで勉強になったことなどを。

経緯

PageControlを使うことになった際にGithubを漁り、BFPageControlなどを CocoaPods経由でインストールしてみましたが、

  • ビルドエラーが発生したこと
  • インタラクションが期待していたものと違ったこと
  • Objective-Cで書かれていたこと
  • コンポーネント自体の機能が小さかったこと

などからライブラリを書くいい機会だと考え、自作することにしました。

良かったこと

  • CocoaPods、Carthageへの理解が深まる
  • 設計がキレイになる
  • 資産が貯まる
  • Travis CIの勉強になる
  • ビルド時間の短縮に繋がる

CocoaPods、Carthageへの理解が深まる

OSSの公開までに、podspecの作成やCocoaPods/Specsへの登録などを一通りなぞることになるため、 単に利用している場合よりも、全体像に関してより理解が深まります。

設計がキレイになる

OSS化すると、public修飾子のプロパティ・メソッドを通じてのみ、モジュールを連携させることになるため、 OSS化しない場合と比較してモジュール同士が疎結合になりやすく、設計がキレイになります。

資産が貯まる

今回作成したコンポーネントもそうですが、汎用的な機能を提供するコード群をプロジェクトから切り出すことにより、 コードをより広範に再利用できるようになり、過去に書いたコードの資産をより効率的に使いまわせるようになります。

Travis CIの勉強になる

Travis CIは、OSSについては完全無料で使うことができます。
そのため、OSSのCIにTravis CIを利用することでTravis CIの使い方を学ぶことができます。

ビルド時間の短縮に繋がる

SwiftOSSを記述し、Carthageでプロジェクトに取り込むことにより、ビルド時間の短縮に繋がります。

感想

OSSを書くのは初めての経験でしたが、CocoaPods、Carthageが裏側でどのように動いているか詳しくしることができ、 また全体像の把握に役立つOSSの作成は個人的には楽しかったです。
OSS作成はオススメです。

参考