みなさん、CocoaPods使ってますか?便利ですよね。
僕も遅ればせながら、昨年暮れぐらいから使いはじめて、今ではこれなしではやっていけない状態です。
で、毎回お世話になったpodの一覧を表示するスペシャルサンクス用のビューを用意してるんですが、Podfileをうまく利用してこの作業を効率化できないかなぁ、と試しに作ってみました。
(Ruby用に作った、Arigatoと同じ発想です。)
最初は、CocoaPodsのソースをベースにRubyでgemとして作ろうとしていたんですが、
ソースを読んでる途中に、「pod podfile-info –md」というコマンドでMarkdownなファイルを吐けることを知り、最終的には単純にそれを読み込んで表示するだけのライブラリになりました。
tnantoka/SPThanksViewController
こんな感じで現状は普通のGroupedなTableViewで表示されるだけです。
(クリックしたらWebView内にpodspecで指定されているhomepageを表示)
まだ大した機能がないので、CocoaPodsには登録してませんが、以下のようにPodfile内でgitを指定すれば使えます。
1 2 |
# Podfile pod 'SPThanksViewController', git: 'https://github.com/tnantoka/SPThanksViewController.git' |
あとは、
1 |
$ pod podfile-info --md --all > podfile-info.md |
したファイルをプロジェクトに追加すれば、それを元にスペシャルサンクスビューを表示します。
(ここを自動化できないか考え中です。post installでうまいことやれば行ける?)
モーダルで表示する場合のコードはこんな感じです。
1 2 3 4 5 |
#import "SPThanksViewController.h" // Modal SPThanksViewController *thanksController = SPThanksViewController.new; [self presentViewController:thanksController.navController animated:YES completion:nil]; |
ライセンスファイルを抽出して表示したり、見た目をもうちょっとオシャレにしたり、などいくつか機能追加案はありますが、今後僕自身が使っていく中で「絶対いるな」と思ったものを追加していきたいと思います。
Obj-C with Travis CI初挑戦
iOSのライブラリにTravis CIを導入する – blog.ishkawa.org を参考に、Travis CIでテストするようにしました。(MarkdownをオレオレParseする部分だけですが)
Objective-Cにも対応してるとか、Travisさん便利すぎて涙が出そうです。
Travisで動かすにあたって躓いたのは以下の点。
- アプリケーションテストが動かない
「the iPhoneSimulator platform does not currently support application-hosted tests」となってテストが実行出来ませんでした。今回はロジックテストでよかったので、Build settingsから、「Bundle Loader」と「Test host」を消すことで対応しました。 - テスト用スキームが実行できない
「Scheme “SPThanksViewControllerLogicTests” is not configured for running.」となる場合、Edit SchemeのBuildから「Run」にチェックを入れたら解消しました。 - スキームがないと言われる
「xcodebuild: error: The workspace ‘SPThanksViewController’ does not contain a scheme named ‘SPThanksViewControllerLogicTests’.」 というエラー。Manage Schemesからテスト用のスキームをSharedにすればOK。
どれも直接Travisは関係ないところばかりですが…。テスト関連はまだまだ初心者すぎることを痛感しました。
というわけで、興味があるかたは触ってみて下さい。
それでは。
最近のコメント