XCTestによるユニットテストにおけるテストメソッドの書き方
必ずメソッドの最初の文字は"test"とすること。
ex.testExample
こう書かないと反映されない。
マニュアルは現在存在しない?
古いものならあるっぽい。→ Xcodeユニットテスト ガイド
上記のマニュアルではユニットテスト結果マクロの書き方が"STxxxxx"となっているが、XCTestではSTの部分をXCTに置き換えると動く。
ex.XCTAssertTrue
Wordpressのソースをgitで管理するための準備
どういう管理が理想か?
pull requestという開発フローがトレンド
masterでごちゃごちゃ修正は行わない。綺麗な修正履歴を残す事を目的にmasterから派生させたブランチを作り、そこでmasterにマージできるまで開発を続ける。
ステージング環境を用意し、そこで十分に試してから派生ブランチにマージ、最終的にmasterにマージ。masterにマージされたら、自動で本番環境にデプロイされるようにしたい。
githubならできるけど、プライベートリポジトリを十分に活かしきるほど手を加える事はないだろう。
CocoaPods使用時にバージョン指定を誤りインストールできなかったのでメモ
podfileの記載
platform :iOS
だけだとデフォルトのiOS 4.3向けと認識される。
iOS7をターゲットとしているのならば、
platform :ios, '7.0'
と記載すること。
開発レシピ:Objective-Cのライブラリ管理ツール CocoaPodsさんに記法がキレイにまとめられている。
CocoaPodsの導入で参考になったサイト
CocoaPodsとは
ライブラリ管理ツール。Rubyのgem、Linuxのyumみたいなもの。
参考になったサイト
いろいろ見て回ったけど、これが個人的にわかりやすかった。
Objective-C - CocoaPodsでPodの利用&作成のメモ - Qiita [キータ]
導入後の注意点
XCode起動時に選択する時、プロジェクト名.xcworkspaceというファイルを選択すること。
gtm-oauth2を使ってinstagramのアクセストークンを取得する。
このサイトが分かりやすい
How to Use OAuth 2.0 with KinveyKit iOS Tutorial | Kinvey
注意点
リダイレクトサイトを入力する際、最後にスラッシュを入れる事。
○:http://goes-nowhere-does-nothing/
×:http://goes-nowhere-does-nothing
スラッシュを入れないとgtm-oauth2がリダイレクトをキャンセルしてくれない。
Twitterでoauth2接続することは可能か?
いろいろ調べたりやってみたりしたが、結局出来なかった。
各種URL(正しいのか不明)
tokenURL : https://api.twitter.com/oauth2/token
authorizationURL : https://api.twitter.com/oauth2/authorize
また、リダイレクトサイトはTwitterの場合、実在しないサイト登録不可の模様。 正しいサイトでも試してみたが結局エラーとなりアクセストークンを取得できなかった。
Objective-Cにおけるカテゴリとは
既存のクラスにメソッドのみを付け加える事。 継承はクラスすべてを引き継ぎ、オーバーライドやインスタンス変数を加えたりできるが、それとは違う。 あくまでメソッドを追加するのみ。
カテゴリを使う場合の注意
Other Linker Flagsの設定に"-ObjC"をつけること。 理由はビルド設定の "Other Linker Flags" に "-ObjC" を設定する意味にて。
UNIXとObjective-cの性質の違い。
iPhoneアプリで3.5インチ端末と4インチ端末を見分ける判定文
突貫だったので、このメソッドをAppDelegateに作成。 スクリーンサイズを取得して4インチかどうかを判定するだけの文。 これをif文の条件として使い、Viewの配置の考慮に使う。
判定分
-(BOOL)is4inchDisplay { CGSize screenSize = [[UIScreen mainScreen] bounds].size; if(screenSize.width == 320.0 && screenSize.height == 568.0) { return YES; }else{ return NO; } }
使い方
#import "AppDelegate.h" AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; if([appDelegate is4inchDisplay]){ //4インチ端末の場合の処理 }else{ //3.5インチ端末の場合の処理(正確には4インチ端末以外) }