iOS
Howto
Swift
CocoaControls

CocoaControlsへの投稿まとめ

More than 3 years have passed since last update.


CocoaControlsとは?

iOSやOSXのカスタムビューを公開する場所です。

https://www.cocoacontrols.com

このエントリでは、cocoapods/carthage/Appetize.ioの設定をしたのちcocoaControlsに投稿する方法をまとめています。


プロジェクトの作成

ここでは例として、「SQProgressView」というカスタムビューを作ってみることにします。

UIProgressViewは角に微妙な丸みがあるため、それを無くしたプログレスビューです。

スクリーンショット 2015-12-28 18.21.10.png

OSSを作るときはあくまで他人が使う事を十分に考慮して作ると良いです。

命名規則やメソッドの使い方等も書き込むと良いでしょう。(そういう意味では上の例は優しく無いです)


ライセンスを決めよう

配布する側も使う側もライセンスがあると安心できます。

iOSではMITが多いようですが、必要に応じてライセンスを決めましょう。


cocoapodsの設定

cocoaPodsでプロジェクトを導入出来るようにしておくと使う側も使いやすいです。


雛形の生成


terminal

$ 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週間くらい)待つと審査を通過していれば一覧に並びます。

スクリーンショット 2015-12-29 12.28.36.png

皆さんも是非CocoaControlsに公開してみましょう。

プルリクエストやスターが活発になりますよ…!