fkm blog

software開発に関することを書いていきます

iOS

Xcodeで開発用サーバー向けビルドの時のアイコンを変える

小ネタだけど大事なやつ。 前回の方法で別アプリとしてビルドする方法はわかったものの、そのままだと同じアプリアイコンなので困る。 で、当然のように変更する方法があったのでご紹介。 開発用サーバー向けビルドのアイコンを追加する DevAppIconと名前を…

XCodeでBuild Configuration毎にBundle IDを変える

開発用サーバー向けビルドと本番用ビルドで別のBundle IDが設定できると、別アプリとしてインストールできるのでとても便利。Androidだと applicationIdSuffix 相当の機能。 といっても設定箇所さえ分かれば一発。Targetの Build Settings で Bundle で検索…

XCodeで開発用サーバー向け設定を追加する

AndroidだとProduct Flavorで開発用サーバー向け設定を簡単に作れるけど、それをiOS/XCodeでやるには?という話 Configurationを追加する まずはプロジェクト設定のところでConfigurationを追加する。 Debug を複製して Debug_DevServer と名前をつけておく…

UIScrollViewにauto layout付きカスタムViewを貼ってはまった話

iOSのUIScrollViewはページ単位でスクロールできるので, AndroidのViewPagerのように, 動的にViewを貼り付けて使うこともあると思う. で, 動的に追加するViewをxibファイルでカスタムView化するケースもあると思うのですが, この組み合わせでかなりはまった…

SpriteKitを使ってみる(3)

TextureからTextureを作ってみる. というかこれが無いと画像ファイルが増えまくる。。。 SKTexture *baseTexture = [SKTexture textureWithImageNamed:@"image"]; NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:4]; array[0] = [SKText…

SpriteKitを使ってみる(2)

Textureというやつがいるらしい. でもOpenGL/DirectXと違って, 自分で描画メソッドを呼ぶ訳じゃないので, 動的に画像の切り出しとかはできないっぽい. このTextureの使い道は, 画像をロードして SKSpriteNode* にセットして描画してもらう という感じっぽい.…

SpriteKitを使ってみる(1)

次はScene #import <SpriteKit/SpriteKit.h> @interface LSMyScene : SKScene @end SKSceneを継承してるだけ. -(id)initWithSize:(CGSize)size { if (self = [super initWithSize:size]) { /* Setup your scene here */ self.backgroundColor = [SKColor colorWithRed:0.15 green:0.</spritekit/spritekit.h>…

SpriteKitを使ってみる(0)

iOS7から入ったらしいSpriteKitを使ってみる. といっても情報が少ないので, Xcodeが生成するコードを読んでみよう.XcodeのプロジェクトにSpriteKit Gameなるものが増えてるので, こいつで空のProjectを作ってみる. 構成はSceneクラスがいるぐらいで, 普通のP…

SQLiteをFMDB経由で使ってみる(2)

次はトランザクション. 複数スレッドから同時書き込み防止というよりは, モバイル特有の ローカルストレージへの書き込みが遅い 問題の解決に使われることのほうが多い気がする. FMDB経由の場合はAndroidの時よりシンプル. [self.db open]; [self.db beginTr…

SQLiteをFMDB経由で使ってみる(1)

まずいきなり書いてみた感想から JDBC経由でDatabase操作したことある人ならすぐわかるなこのインターフェース ということで, いきなり前提を置く. 基本的なSQLの読み書きができること(CREATE TABLE / SELECT / INSERT / UPDATE / DELETE) 準備 前回紹介した…

SQLiteをFMDB経由で使ってみる

iOSでSQLiteを使う場合, C(Objective-Cではない)でいろいろやるらしい. で, 標準ではラッパーが用意されておらず, どうもFMDBというgithub上のラッパーを使うことが多いみたい. で, ぐぐってみると使い方が ソースを一式コピーして という原始的なものだった…

ちょっとした設定を読み書きしてみる

Androidで言うところのSharedPreferencesですね. Contextのようなものが無くても使える変わりに, ファイル1つしか無い点だけ注意が必要? - (void) saveData { NSUserDefaults *pref = [NSUserDefaults standardUserDefaults]; [pref setObject:@123 forKey:…

NSTimerでメッセージループっぽいもの

NSTimerというのを使えば, とりあえずお手軽にメッセージループ的なのは実装できるっぽい. 手順 一定時間で実行するメソッドを実装する NSTimerのインスタンスを作る fireで開始 1. 一定時間で実行するメソッドを実装する NSTimer*を引数にとるメソッドであ…

JSON文字列をNS(Mutable)Dictionaryに変換する

iOS5から, 標準ライブラリで変換できるようになったJSONさん. 一旦NSDataにしないといけないあたりがiOSのコードだなぁという気はしますが. - (void) parseJson { NSString *json = @"{\"name\":\"fkm\"}"; NSData *jsonData = [json dataUsingEncoding:NSUT…

UIAlertViewを使ってみる

ダイアログの基本ですよねこれ. 手順 UIAlertViewを作る showを呼ぶ 結果をalertView:clickedButtonAtIndex:で処理する 1. UIAlertViewを作る これそのまんま. コンストラクタ(?)でまとめてどーんという方法が楽かも UIAlertView *view = [[UIAlertView allo…

HTTP通信してみる

iOS7のやつ使ってみるよ. ...ってこれ, ノリはAndroidのVolleyそのまんまやないですか。。。 NSURLSession *session = [NSURLSession sharedSession]; NSURL *url = [NSURL URLWithString:@"http://www.fkmsoft.jp"]; NSMutableURLRequest *request = [NSMut…

TableViewを使ってみる(2)

次はタップ時の処理. protocolに入ってないから自動生成されないのかな。。。ItemClickListenerの代わりをするのがこのtableView:didSelectRowAtIndexPath:メソッド. 今後何回ここからコピペすることになるんだろうか。。。? - (void)tableView:(UITableVie…

TableViewを使ってみる

iOSの世界では一方向のリストのことをTableViewと呼ぶみたい. AndroidでもListFragmentの出番が割と多いので, きっとこいつの出番も多そう. ぐぐるとApple公式のPDFが出てくるので, ちゃんと読みたい方はそちらをどうぞ. 手順 StoryBoardにTableViewControll…

Triggered Seguesの使い方

StoryBoardを使うと, 右クリックのイベントハンドラ設定でTriggered Seguesというのが使える. こいつは, 単純な画面遷移をコードを書かずに実現できる便利なやつ. (考え方がFragmentなAndroidだと, 実現は困難ですよねこれ。。。)記憶をたよりに画面遷移を書…

はじめてのiOSアプリ開発

とりあえずがんばって実機で空のアプリを動かしてみる手順すごく間違ってる感があるけど, とりあえずこれで動いたのでメモ. 使ってるのはiPad 3rd wifi model. デバイスの登録 Xcodeを起動したままUSBケーブルでつなぐとOrganizerが勝手にでてくるので, 気に…

static libraryのloadメソッド

Objective-Cのクラスには, +(void) loadメソッドなるものがある. Javaで言うところのstatic{}で初期化する用のメソッド.アプリ本体のプロジェクトにクラスがいる場合は勝手にloadが呼ばれるけど, これがstatic library内のクラスの場合は事情が違うみたい.現…

iOS用static libraryを作る

自分用メモ. XcodeでCocoa Touch Static Libraryを選んでプロジェクト作成 TARGETを"moke"とする Xcodeでうぉりゃーってクラスの作成とかする 以下はコマンドラインで操作 # ビルドする xcodebuild -configuration "Release" -target "moke" -sdk iphoneos x…

オレオレHTTPClient for iOS

NSMutableURLConnectionを何も見ないでうぉりゃーって書けるようになれる気がしない.ということで少しは使いやすくしてみた. delegateメソッドを単に実装したクラスを1つ作っただけですが。。。まずヘッダ #import <Foundation/Foundation.h> @interface FkmlibHttpClient : NSObject</foundation/foundation.h>…

Objective-Cに慣れる(2)

慣れるという意味では, 山場かもしれません.メソッドで, 引数が2つ以上ある場合はどう書くか? - (void) setMoke:(Moke*)value forKey:(NSString*)key こんな感じで, 第2引数以降はスペースで区切って キーワード:(引数の型)仮引数名を書いていく. 呼び出し…

Objective-Cに慣れる(1)

次は実装部分を見ていきましょう. Objective-Cの実装ファイルは.mのようです. #import "iOSLesson1ViewController.h" @implementation iOSLesson1ViewController - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Release any cached…

Objective-Cに慣れる(0)

タイトル通り, 慣れが必用なのがObjective-C. 大抵の言語はCやJavaを触ったことがあれば, ノリで読めたりするけど, そうはいかないのがObjective-C.とりあえずCらしいので, ヘッダファイル(.h)があります. 自動生成されたファイルの中で, yyyViewController.…

projectを作る

Xcode 4.2.1使ってたりします.Create a new Xcode projectをクリックして, EclipseでAndroid projectを作るノリで作ります. とりあえずSingle View Applicationを作ることにしてみます. クラス名とかは適当でいいです. 今回はiOS Lesson 1にしてみました. あ…

iOSもやるよ

みなさんこんにちは. 1ヶ月ほどなーんにも書いてないfkmです.この1ヶ月間, お仕事でiOS周りばっかりやってたので, このあたりでいっきにまとめていこうかなと思います.#という宣言だけで終わったりして