2013/3/25に行われた「チキチキ第一回iOSテスト勉強会」の資料です。 いくつか省略していますがご了承ください。 Read less
例えば、Web サービスの iPhone クライアントの場合、ユーザーに Web サービスのアカウント名とパスワードを入力してもらう必要がある。で、入力してもらったパスワードを安全に保存しなきゃいけないんだけど、嬉しいことに iOS は Keychain Service というパスワードを安全に保存できる仕組みを提供している。 Cocoaの日々: [iOS] Keychain Services とは ただ、上記ページを見れば分かる通り、Keychain Service を素で扱うと長ったらしいコードを書かないといけない。ライブラリを使った方がいいね、これ。Google 先生に質問してみたらいくつか教えてくれたんで、その中から CocoaPods に対応しているという理由で、SSkeychain を使うことにした。 soffes/sskeychain · GitHub CocoaPods に
iOS は タッチパネル式端末用に最適化された OS で ユーザが端末を操作しやすいように GUI の仕組みが提供されています。iOS アプリ開発では主に GUI を操作するプログラムを実装していきます。iOS の GUI プログラムはイベント駆動型と言われるプログラミング方式に則ってプログラムを実装していきます。 iOS に限らず Mac OS 用のアプリ開発でも同じようにイベント駆動型のプログラムを実装しますが、 iOS はタッチパネル式モバイル端末用の OS という性質上 Mac OS のイベント駆動プログラムと少し違うところがあります。 この記事では iOS のイベント駆動の仕組みを「ライフサイクルイベント」と「ユーザアクションイベント」にわけて説明します。iOS のイベント駆動がどういったものなのか理解してその仕組みの上で自由にプログラムできるようになることが目的です。 イベント
Some suggestions: Make sure that all words are spelled correctly. Try different keywords. Try more general keywords. Split long words into pieces. CocoaPods is a dependency manager for Swift and Objective-C Cocoa projects. It has over 104 thousand libraries and is used in over 3 million apps. CocoaPods can help you scale your projects elegantly. CocoaPods is built with Ruby and is installable with
情報がまとまっていなくて苦労したので書いておく。やってしまえば簡単。 やりたいこと githubにpushした時点でビルドする ビルドしてテストを実行する(まだできてない) ビルドして、Testflightを使って、弊社のセールス・サポートチームに配布する Provisioningを更新するなどの作業はJenkinsを意識しなくてもできること Provisioningはgitのリポジトリに入れておく やらないこと 自動でベータ版としてベータテスターに配布する 自動でiTunes Connectにサブミットする Jenkinsをインストールする Mac用のパッケージをインストールする。インストーラはdaemonとかいうユーザーで実行しようとするが、これはjenkinsとか適当に作ったユーザーに変えておく。 Jenkins Mac OS X InstallerでJenkinsを入れる - Iw
皆さん、iPhone アプリのビルドに失敗してますか〜?。それともビルド前の段階で躓いてますか〜?。 実機でのテストや、Ad Hoc 配布時の設定、AppStore へのリリース時など、毎回ビルドに失敗してしまうあなたにこのエントリーが何かの約に立てればと 思います。 また、複数人で開発する際のややこしさ解消も簡単に説明させて頂きます。 Certificates 文字通り「証明書」です。この証明書を開発する Mac にインストールしておかないと何も出来ません。 また、後述する Provisioning との鍵ペアで使用するものである為、よくハマリやすい。 「キーチェーンアクセス」→「証明書アシスタント」→「認証局に証明書を要求」→ 「iOS Provisioning Portal」 → 「Certificates」→「Request Certificate」→「ファイルを選択」→「
最近、iOSアプリの開発でも継続的インテグレーション(CI)を取り入れていくプロジェクトが増加傾向にあるようで、各種ツールやライブラリ、ノウハウが出回ってきているように感じられます。そこで私も早速iOSアプリ開発でのCI導入を試してみることにしました。今回の導入試験では、以下のような環境を想定して行いました。 iOSアプリの開発を、Xcode 4.X系のプロジェクトとして行う。 VCSにはgitを採用し、githubの公開リポジトリをリポジトリサーバーとして使用する。 CIサーバにはMacを採用し、プロジェクトをビルドするためにXcode 4.Xをインストールしておく。 ■必要なツールを準備する CIといったら、まずは何はなくともJenkinsです。 http://jenkins-ci.org/ ここでは導入について詳しくは挙げませんが、私は以下の本を参考にしました。 https://gi
画像はここから拝借した。 夜景 - フリー写真素材(無料壁紙画像)Futta.NET 実装 まずスクロール対象のビューを用意する。これは前回のコード(ImageView)をそのまま流用して単純に8枚の画像を横にならべてみた (全体で 2560x460ピクセル)。 [前回] Cocoaの日々: UIScrollView - サムネイル画像を並べて指でスクロールさせる UIScrolViewの設定も基本的には前回と同じ。今回はこれに Paging設定を追加する。 self.scrollView.contentSize = imageView.bounds.size; // ビューのサイズを指定 [self.scrollView addSubview:imageView]; // ビューの追加 // new stuffs self.scrollView.pagingEnabled = YES;
UITableViewなどのスクロール系のViewでサムネイル画像を出す場合、下記のような記述ではメインスレッドで画像がロードされるため、ユーザーのUI操作に影響が出てしまいます。 NSURL *url = [NSURL URLWithString:@"URL"]; NSData *data = [NSData dataWithContentsOfURL:url]; [instanceOfUIImageView setImage:[[UIImage alloc] initWithData:data]]; こういう場合は非同期通信を行うのが定石だと思いますが、参考になるサンプルがあまり無かったので試しに作ってみました。UIImageViewを継承したUIAsyncImageViewクラスです。 UIAsyncImageView.h 画像URLの指定と、通信中止用のメソッドのみ定義しています。
まだまだ初心者なの間違いがあるかもしれないけどStoryboardで条件により異なるSegueに飛ばしたい場合のメモ。対象はXcode4.2 on Snow Leopard。 通常通りMaster-DetailでStoryboardを有効化した時、これから発展させてEditの画面を増やしたいって思ったのに、Segueを追加できなくて困りました。そういった時にどうやればSegueを複数飛ばすことが出来るかメモ。 私がこのブログ読むとしたら下まで読むのめんどくさいので答えを最初に書いておきます(笑)要するにデフォルトではTableViewCellからSegueが出ていると思うのですが、それをTableViewControllerからにすれば複数Segueを設定できます。そしてあとはperformSegueWithIdentifierメソッドで好きなようにSegueを使って画面遷移すればOK。
Test, 雑感, iPad, iPhone, Objective-Cテストを書く事でおこるいい事は、いろんなところで解説されているので、iOS開発に限ったもので、わりと僕の中でキたViewControllerについて。ViewContollerがデータを所持しているケーステストをしていく上で課題になるアプリケーションテスト。iOSアプリケーションなので必ずビューが存在するわけですが、こいつを操作するViewControllerが非常に厄介な存在になってくる。少なくともApple公式のドキュメントのような書き方をすると、すぐに破綻する。例えば、こういうコードをよく書くと思いますが、この時に描画されるデータが正しいかをテストする為だけに複雑で手間のかかるアプリケーションテストをする必要があるでしょうか。 - (UITableViewCell *)tableView:(UITableView
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く