#CocoaControlsとは?
iOSやOSXのカスタムビューを公開する場所です。
https://www.cocoacontrols.com
このエントリでは、cocoapods/carthage/Appetize.ioの設定をしたのちcocoaControlsに投稿する方法をまとめています。
#プロジェクトの作成
ここでは例として、「SQProgressView」というカスタムビューを作ってみることにします。
UIProgressViewは角に微妙な丸みがあるため、それを無くしたプログレスビューです。
OSSを作るときはあくまで他人が使う事を十分に考慮して作ると良いです。
命名規則やメソッドの使い方等も書き込むと良いでしょう。(そういう意味では上の例は優しく無いです)
#ライセンスを決めよう
配布する側も使う側もライセンスがあると安心できます。
iOSではMITが多いようですが、必要に応じてライセンスを決めましょう。
#cocoapodsの設定
cocoaPodsでプロジェクトを導入出来るようにしておくと使う側も使いやすいです。
##雛形の生成
$ pod lib create SQProgressView
What language do you want to use?? [ ObjC / Swift ]
$ Swift
Would you like to include a demo application with your library? [ Yes / No ]
$ Yes
Which testing frameworks will you use? [ Quick / None ]
$ None
Would you like to do view based testing? [ Yes / No ]
$ No
これでcocoapodsの雛形が生成されます。
##ファイルの配置
SQProgressView/Pod/Classes/
に先ほど作った.swiftファイルを配置します。
アセットがあればSQProgressView/Pod/Assetsに配置しましょう。
また、SQProgressView/Pod/Classes/ReplaceMe.swiftは不要なダミーファイルです。消してしまってOKです。
##サンプルを書く
SQProgressView/Example
でpod installすると、先ほど配置したファイルを取り込んでworkspaceが出来ます。
ワークスペースを開いて、サンプルを書きましょう。
あくまで使い方にフォーカスしてシンプルなものが良いと思います。
#github
##push
githubでリポジトリを作ってプッシュします。
##tag
$ git tag 0.1.0
githubのサイトでプッシュしたコミットに対して、タグを作ります。
#cocoapodsの設定続き
##podspecの編集
/SQProgressView.podspecを編集します。
- s.version
上記で指定したtagバージョン
- s.summary
デフォルトのままだとNG。ちゃんと書く
- s.description
<<-DESCとDESCの間にMarkdownを書く
- s.license
先ほど決めたライセンス
- s.homepage
自由 デフォルトではgithubのURL
- s.author
確認
- s.source
githubのgitURL
##チェックする
$ pod spec lint --verbose
$ pod lib lint --verbose
##cocoaPodsサーバーへアカウントの登録
$ pod trunk register 自分のメール '自分の名前' --description='hoge'
$ pod trunk me
登録出来ているか確認
##cocoaPodsサーバーへリポジトリの登録
pod trunk push SQProgressView.podspec
#Carthageの設定
cocoapodsの設定で行われているので特に無し(タグとか指定した部分がそれです)
carthage build --no-skip-current
で確認だけしておきましょう。
#README.mdを書く
使い方とpodとcartageが使える旨を記述しましょう。
vim Podfile
pod "SQProgressView"
pod install
や
vim Cartfile
github "noppefoxwolf/SQProgressView"
carthage update
でいいかと思います。
#Appetize.io
Appetize.ioはweb上でシミュレータが使えるサービスです。
CocoaControlsではAppetize.ioのpublickeyを指定するとリポジトリの詳細画面でシミュレータを使って動作を見ることができます。
##準備
一度シミュレータでビルドする
##アップロード
https://appetize.io/upload
へアクセスし、
~/Library/Developer/Xcode/DerivedData//Build/Products/Debug-iphonesimulator/.app
をアップロード
メアドを入力してpublic key取得します。
#cocoaControlsに公開する
https://www.cocoacontrols.com
へアクセスし、submit a new controlsからgithubのリポジトリのアドレスを入力します。
リポジトリの詳細入力画面になるので、
Appetize.io public keyからpublic keyを入力
必要項目を入力してCreate Controlを押します。
Upload Control Imagesから一枚スクリーンショットをアップしてHighlight imageにチェックを入れます。(この画像が一覧に出る)
#審査機関
しばらく(1〜2週間くらい)待つと審査を通過していれば一覧に並びます。
皆さんも是非CocoaControlsに公開してみましょう。
プルリクエストやスターが活発になりますよ…!