Simple gadget life programming diary

Simple gadget life の中の人によるプログラミングメモ

XCTestによるユニットテストにおけるテストメソッドの書き方

必ずメソッドの最初の文字は"test"とすること。
ex.testExample
こう書かないと反映されない。

マニュアルは現在存在しない?
古いものならあるっぽい。→ Xcodeユニットテスト ガイド
上記のマニュアルではユニットテスト結果マクロの書き方が"STxxxxx"となっているが、XCTestではSTの部分をXCTに置き換えると動く。
ex.XCTAssertTrue

Wordpressのソースをgitで管理するための準備

どういう管理が理想か?

pull requestという開発フローがトレンド
masterでごちゃごちゃ修正は行わない。綺麗な修正履歴を残す事を目的にmasterから派生させたブランチを作り、そこでmasterにマージできるまで開発を続ける。

ステージング環境を用意し、そこで十分に試してから派生ブランチにマージ、最終的にmasterにマージ。masterにマージされたら、自動で本番環境にデプロイされるようにしたい。
githubならできるけど、プライベートリポジトリを十分に活かしきるほど手を加える事はないだろう。

参考サイト
WordpressをGitで管理する - Tatsuquito

WordPress+Git運用ブランチパターン | カクニンプラスのweb日誌

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" を設定する意味にて。

UNIXObjective-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インチ端末以外)
}