A Day In The Life

とあるプログラマの備忘録

ios

SenTestCase で非同期処理のテストをする方法

今年の2月ごろから iOS 用の HTTP 通信ライブラリの開発をしていています。 シンプルで簡単に HTTP 通信が出来るライブラリを公開しました 非同期で HTTP 通信をするだけの簡単なライブラリなんですが、ユニットテスト(Unit Test)をする時に少しコツが必要だ…

iOS アプリの画面開発の基礎を理解する

前回の記事「iOS アプリの構造がどのようになっているか紐解いてみる」で iOS アプリの構造について説明しました。深いところの説明ばかりだったのでもう少し浅いところ、画面の見た目や画面遷移を実装する方法について説明します。 ユーザの要望がどのよう…

UIViewController の基礎知識

内容が薄かったため下記ページに統合しました。 iOS アプリの画面開発の基礎を理解する

iOS アプリの構造がどのようになっているか紐解いてみる

iOS アプリの構造がどのようになっているのか理解しなくても簡単なアプリを開発することは可能です。実際自分も iOS アプリの開発をはじめたことろはそうでした。しかしアプリの構造を理解していないと複雑なアプリ、例えばタブとナビゲーションを組み合わせ…

iOS のイベント駆動をライフサイクルイベントとユーザアクションイベントにわけて理解する

iOS は タッチパネル式端末用に最適化された OS で ユーザが端末を操作しやすいように GUI の仕組みが提供されています。iOS アプリ開発では主に GUI を操作するプログラムを実装していきます。iOS の GUI プログラムはイベント駆動型と言われるプログラミン…

シンプルで簡単に HTTP 通信が出来るライブラリを公開しました

iOS で HTTP 通信をするときはいつも ASIHTTPRequest を使っていました。 しかし残念なことに最近 ASIHTTPRequest の開発が終了してしまい Automatic Reference Counting(ARC) に対応する予定もないようなので自分で ARC に対応した HTTP 通信のライブラリを…

新作アプリ即興ピアノをリリースしました。

昨日2月14日に新作iPhoneアプリ「即興ピアノ」をリリースしました。 即興ピアノは音階を固定(例えば C Major とか G Major とか)してピアノを弾くことができます。音階が固定されているので適当に弾いても音がにごらず即興演奏で弾いたかのように聴こえます…

失敗しない iOS In-App Purchase プログラミング

最近、無料アプリや無料ゲームにアプリ内課金を設置してユーザにアイテムを購入してもらうタイプのものが増えています。App Store トップセールスのうち半数以上がこの無料 + アプリ内課金で占められています。今後アプリ内課金は iPhone/iPad アプリで儲け…

サルでもわかる Core Data 入門【実装編】

サルでもわかる Core Data 入門【概念編】の続きです。今回は実際に Core Data を使ったプログラムを作成します。 サンプルアプリの概要 アドレス帳アプリを作りながら Core Data の使い方を説明していきます。 以下はサンプルアプリの画面構成です。 連絡先…

サルでもわかる Core Data 入門【概念編】

iOS でデータを永続化する方法の続きです。今回は Core Data を使ったデータの永続化方法について説明します。 本記事では複雑で習得が難しいとされている Core Data について概念編と実装編の2回に分けて説明していきます。記事の全体的な流れとしては Core…

NSUserDefaults を使ったデータの保存方法

iOS でデータを永続化する方法の続きです。今回は NSUserDefaults クラスを使ったデータの永続化方法について説明します。このクラスを使うと簡単にデータの保存と読み込みが出来るのでアプリ開発で頻繁に使用されています。 NSUserDefaults って何? アプリ…

iOS でプロパティリストを使ったデータの保存方法

iOS でオブジェクトをシリアライズする方法に続き今回もデータ永続化方法の紹介です。 iOS にはプロパティリストと呼ばれるファイル形式があります。プロパティリストは NSArray や NSDictionary クラスを使って簡単にデータの読み書きができます。 ここでは…

iOS でオブジェクトをシリアライズしてファイルに保存する方法

iOS でデータを永続化する方法の続きです。今回はシリアライズされたオブジェクトの保存方法について説明します。シリアライズされたオブジェクトはファイルで保存することが容易なためデータ永続化の際に頻繁に使用されます。 シリアライズ自体はデータの保…

iOS でデータを永続化する方法

iOS データ設計入門の続きです。前回は iOS であつかうデータ全般について書きましたが今回はデータをフラッシュドライブに保存する方法について説明します。 データの永続化って何? メモリにあるデータはアプリを終了すると消えてしまいます。 アプリを終…

UIWebViewにJSのライブラリを動的に読み込ませる方法

UIWebView で表示している HTML ページに Javascript ライブラリを動的に読み込ませる方法です。 使う場面はそうないと思いますが、興味本位で試してみたらできたので記事にしました。Google Libraries API という Javascript のライブラリを使うと簡単に出…

iOS であつかうデータの種類と生存期間

内容を全面的に見直して以下の記事に集約しました。 iOS データ設計入門

iOS 組み込みの効果音を鳴らしてみる

iOSにはいくつか組み込みの効果音が用意されていて AudioToolbox フレームワークを使うと簡単に鳴らすことが出来ます。 手順 プロジェクトに AudioToolbox.framework を追加します。 AudioServices.h をインポートします。 AudioServicesPlaySystemSound 関…

NSOperation 非並列実行モードと並列実行モードの使い分け

バックグラウンド処理を手軽に実行できる NSOperation クラスですがこのクラスをきちんと理解して使うには NSOperationQueue クラスについて理解する必要があります。 前回の記事で NSOperationQueue の使い方について説明しました。まだお読みでない方はこ…

NSOperationQueue スレッドと処理の関係

iOS4 になって NSOperationQueue クラスの仕様に追加がありました。以前は並列処理しか出来なかったのですが mainQueue メソッドが追加になり逐次処理も出来るようになりました。変更点も含めて NSOperationQueue の使い方をまとめてみます。 NSOperationQue…

マルチタスキング対応後のアプリのイベントフローをまとめてみた

※iOS 5の登場でこの記事の内容は古くなりました。最新の情報は以下の記事をご覧ください。 iOS のイベント駆動をライフサイクルイベントとユーザアクションイベントにわけて理解する iOS4で導入されたマルチタスキングですが便利な反面イベントの発生順序が…

iOSアプリ開発のメモリ管理で気をつけること

Objective-C での開発にだいぶ慣れてきたのですが、いまだメモリ管理まわりでハマることが多いのでまとめてみました。 メモリを確保してから解放するまでの流れ メモリを確保してから解放するまでの流れは以下の図のようになります(図はアップルのサイトから…