タグ

Developに関するtokoromのブックマーク (372)

  • iOS でプロパティリストを使ったデータの保存方法 - A Day In The Life

    iOS でオブジェクトをシリアライズする方法に続き今回もデータ永続化方法の紹介です。 iOS にはプロパティリストと呼ばれるファイル形式があります。プロパティリストは NSArray や NSDictionary クラスを使って簡単にデータの読み書きができます。 ここではプロパティリストを使った基的なデータの保存方法から自作クラスのオブジェクトを保存する方法まで説明します。 プロパティリストって何? プロパティリストは Mac OS X や iOS で利用することができるデータ永続化のためのファイル形式です。Mac OS X ではもっぱらユーザの情報を設定するのに使われる事が多く Windows のレジストリのような使われ方をしています。iOS では Info.plist のようにアプリの情報を設定するのに使われることが多いです。 またプロパティリストはファイルの拡張子が .plist

    iOS でプロパティリストを使ったデータの保存方法 - A Day In The Life
  • アプリケーションディレクトリの構造とアクセス方法 - プログラミングノート

    iOSではデータの保存場所として特定のディレクトリを利用することができます。 Best Albumではサムネイル画像、オリジナル画像を全てキャッシュディレクトリに保存しているのですが、パフォーマンス的に全く問題がなく、今後活用する機会も増えそうなのでまとめておきます。 ディレクトリ構造 /Documents アプリ固有のデータファイルを保存するディレクトリ (バックアップされる) /Library/Preferences アプリ固有の環境設定ファイルを保存するディレクトリ (バックアップされる) NSUserDefaults or CFPreferencesAPI経由で読み書きする /Library/Caches アプリ固有のサポートファイルを保存するディレクトリ (バックアップされない) /tmp 一時ファイルを保存するディレクトリ (バックアップされない) パスの取得 上記ディレクトリ

    アプリケーションディレクトリの構造とアクセス方法 - プログラミングノート
    tokorom
    tokorom 2011/08/26
    ファイルアクセス
  • UDIDが使えなくなりそうなので、UIIDを使えるようにしました

    ■2012/11/11追記 iOS 6より[[UIDevice currentDevice] identifierForVendor]というAPIAppleより提供され、よりプライバシーに配慮した上により安全な方法で自分の開発したアプリケーションを利用するユーザーを個別に認証することが可能になりました。それに伴い拙作のライブラリもidentifierForVendorが利用可能であればこちらを利用するように修正いたしました。今後はこのidentifierForVendor(または広告APIなどを作る場合であれば[[UIDevice sharedManager] advertisingIdentifier])が個体認識の主流になっていくと思われます。identifierForVendorとadvertisingIdentifierの仕様まとめは http://stackoverflow.c

    tokorom
    tokorom 2011/08/24
    UDID to UIID
  • iOS 組み込みの効果音を鳴らしてみる - A Day In The Life

    iOSにはいくつか組み込みの効果音が用意されていて AudioToolbox フレームワークを使うと簡単に鳴らすことが出来ます。 手順 プロジェクトに AudioToolbox.framework を追加します。 AudioServices.h をインポートします。 AudioServicesPlaySystemSound 関数を実行します。引数にはサウンド ID を渡します。 #import "RootViewController.h" #import <AudioToolbox/AudioServices.h> @implementation RootViewController - (IBAction)onClick:(id)sender { AudioServicesPlaySystemSound(1000); } @end 音の種類 サウンド ID は1000から1017まで全部

    iOS 組み込みの効果音を鳴らしてみる - A Day In The Life
  • Cocoaの日々: CALayer を使ってビューの内側に影を落とす

    CALayer を使うと簡単にビューに影を落とすことができる。 CALayer* layer = self.imageView1.layer; layer.shadowOffset = CGSizeMake(2.5, 2.5); layer.shadowColor = [[UIColor blackColor] CGColor]; layer.shadowOpacity = 0.5; ただこの方法はビューの外側に影を落とせても、ビューの内部には影を落とせない。 どうするか。 CALayer のプロパティを眺めていていると shadowPath に気がついた。このプロパティには CGPathRef を渡すことができる。 @property CGPathRef shadowPath;もしかしてこれを使って任意の場所や形で影が落とせないか。 試しにこんな矩形のパスを作って渡してみた。 CALay

    Cocoaの日々: CALayer を使ってビューの内側に影を落とす
    tokorom
    tokorom 2011/08/08
    CALayer
  • Androidゲーム開発をまじめにやってみたまとめ - shimobayashiの日記

    ゴールデンウィークから作り始め、1週間くらい前にようやく"鉄Qプリンセス"(https://market.android.com/details?id=name.shimobayashi.tekkyu)をリリースすることができました。大体2週間でゲーム製作に飽きる自分としてはかなりの長丁場になったのですが、その分色々と得られるものはあったので適当にメモしておこうと思います。個人ゲーム製作に興味がある方はどうぞ。 基的なゲームプログラミングに関する話題は、Androidゲーム開発入門、私が2Dアクションゲームをつくるまでに蓄積されたTips - shimobayashiの日記http://d.hatena.ne.jp/shimobayashi/20110410/1302442681に以前にまとめているので、非技術的な話題が中心になるのかな。 Androidの音周りは当にクソメディアの音量

  • エンジニアtype 技術者のキャリアを考えるWebマガジン - 転職@type

    エンジニアtypeは、各種エンジニアをはじめ「創る人たち」のキャリア形成に役立つ情報を発信する『@type』のコンテンツです。

    エンジニアtype 技術者のキャリアを考えるWebマガジン - 転職@type
    tokorom
    tokorom 2011/07/24
    たしかに電車の中で(小規模な)脳内プログラミングして後からエディタに向かうとうまくいくことが多いが、デバッグまで脳内でできたことはないな...
  • iPhone プログラムで SQLite を使用する

    iPhone アプリのプログラミングでは、データベースとして SQLite を利用することが出来るようになっています。 SQLite はアプリケーションに組み込んで使用するタイプの軽量なデータベース (DBMS) で、最終的にはデータベースファイルへの読み書きだけで、データベースの操作を行うことが可能になっています。 ただ、SQLite は日付時刻型がなかったりとか、データ型を "INTEGER NOT NULL PRIMARY KEY" で宣言すれば自動的にオートナンバー型のように振る舞うなど、Microsoft SQL Server や MySQL 等とは雰囲気がずいぶん違いそうなので、そういう面での慣れも必要になるかもしれません。 データベースファイルの準備 iPhone プログラムで SQLite を使うためには、予め SQLite 用のデータベースファイルを作成する必要があります

  • iPhoneで1024ピクセル以上の巨大な画像を表示するビュー - 24/7 twenty-four seven

    http://kuon.goyman.com/2009/01/22/iphone-large-image-viewer/ UIImageおよびUIImageViewは、1024x1024を超える大きさの画像を取り扱えません。 このGYImageViewは、スクリーンに表示される部分だけ高解像度で表示するという方法で、巨大な画像でもメモリを節約しつつ表示できるように作られています。 CGImageRefでオリジナル画像を保持しつつ、一画面に収まる大きさだけ高解像度の画像をUIImageViewとUIScrollViewを組み合わせて表示します。 スクロールしたぶんだけ徐々に表示される「マップ」アプリのような感じになります。 UIScrollViewを使っているので、ピンチイン、ピンチアウトでズームもできます。 Xcodeのプロジェクトの形で、そのまま動くコードがアップロードされているので、簡

    iPhoneで1024ピクセル以上の巨大な画像を表示するビュー - 24/7 twenty-four seven
    tokorom
    tokorom 2011/06/23
    UIImageView
  • NSOperationによるバックグラウンド処理 - Objective-Audio

    NSOperationってCoreAnimationみたいな派手な機能と違って、あまり解説されていない気がするので、使い方を書いておきます。オーディオのアプリケーションでも、読み込んだオーディオファイルの波形の画像をバックグラウンドで作っておいて、出来上がったら表示するみたいな事にも使えると思いますので。(※2008/5/12 記事にNSInvocationOperation等いろいろ修正を加えています。GCなしにも対応のはず。) NSOperationを使う NSOperationのサブクラスのmainメソッドにバックグラウンドで行いたい処理を記述しておき、そのインスタンス(以後、オペレーション)を作成して、NSOperationQueueのインスタンス(以後、キュー)のaddOperationメソッドに渡すと、あとは勝手にバックグラウンドで処理してくれます。キューへ渡した後にオペレーシ

    tokorom
    tokorom 2011/06/09
    NSOperation
  • 『iPhoneアプリ開発、その(75) sqlite3でお勉強』

    データベースの扱いを局面で考えてみると、以下の2つの定義局面 define-1)データベース作成・破棄 define-2)テーブル作成・修正・破棄 と以下の2つの運用局面 practical-1)データ登録・修正・破棄 practical-2)データ取り出し でなりたってると考えてよさげ。 定義局面にテーブルって単語が初めて出てきたけど、前回説明したデータベース管理システム(DBMS)は、一つのデータベース内に複数の表(テーブル)を持ち、それぞれを関連付けることができるようになっている関係データベース管理システム(RDBMS:relational DBMS)が主流なんだそうです。 テーブルの概念 横にデータ項目、縦にデータという形で構成されている表 チンパンジーゲームなら「ゲーム結果テーブル」と「レベル情報テーブル」を用意して「ゲーム結果」のレベルと「レベル情報」のレベルを関連づけるってと

    『iPhoneアプリ開発、その(75) sqlite3でお勉強』
  • NSOperationQueue スレッドと処理の関係 - A Day In The Life

    iOS4 になって NSOperationQueue クラスの仕様に追加がありました。以前は並列処理しか出来なかったのですが mainQueue メソッドが追加になり逐次処理も出来るようになりました。変更点も含めて NSOperationQueue の使い方をまとめてみます。 NSOperationQueue クラスの使い方をきちんと理解していると NSOperation クラスの非並列実行モードと並列実行モードの使い方を間違えることも少ないと思います。 NSOperation クラスについては以下の記事で詳しく説明しています。 NSOperation 非並列実行モードと並列実行モードの使い分け NSOperationQueue と NSOperation の関係 NSOperationQueue と NSOperation を使うと、バックグラウンドで何か処理をしたい場合に一連の処理をま

    NSOperationQueue スレッドと処理の関係 - A Day In The Life
  • Cocoaの日々: [iOS] ユーザ名/パスワードの入力ができるカスタム UIAlertView ライブラリを公開

    呼び出しコードはこんな感じ。 [LKAccountPanel showWithTitle:@"Test" completion:^(BOOL result, NSString* username, NSString* password) { NSLog(@"result: %d\nusername: %@\npassword: %@", result, username, password); }];結果を Blocks で処理できるようにしてみた。 [2011-05-17 追記] 非同期用のメソッドを追加しました。 BOOL result = [LKAccountPanel showWithTitle:@"Test2" username:&username password:&password]; NSLog(@"done2"); NSLog(@"result2: %d\nusernam

    Cocoaの日々: [iOS] ユーザ名/パスワードの入力ができるカスタム UIAlertView ライブラリを公開
    tokorom
    tokorom 2011/05/14
    UIAlertView
  • Cocoaの日々: [iOS][Mac] dispatch_once を使ったシングルトン

    iOS/iPhone/iPad/MacOSX プログラミング, Objective-C, Cocoaなど [元ネタ] Cocoa Samurai: Singletons: You're doing them wrong GCD の dispatch_once 関数を使うとスレッドセーフなシングルトンの初期化処理をこんな感じで書ける。 static LKLocationManager* sharedManager_ = nil; + (LKLocationManager*)sharedManager { static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ sharedManager_ = [[LKLocationManager alloc] init]; }); return sharedManager_; }disp

    Cocoaの日々: [iOS][Mac] dispatch_once を使ったシングルトン
    tokorom
    tokorom 2011/05/10
    めも
  • Custom Controls for iOS, iPadOS, macOS, tvOS, and watchOS - Cocoa Controls

    FrameGen is a powerful application designed to streamline the process of creating xcarchive files from your xcodeproj projects. With an intuitive user interface and a wide range of functional capab...

    tokorom
    tokorom 2011/05/01
    めも
  • SimpleBoxes | Xcode 4 の導入と Xcode 3 との併用

    Xcode 3 ではプロジェクトのビルドターゲットを「Overview」ドロップダウンメニューで選択する形式でした。Xcode 4 では Overview の代わりに「Scheme」という概念が導入されています。 「Overview」ではビルドタイプ (Release, Debug, Distribution, etc)、デバイス (Simulator, Device)、ターゲット、実行環境、CPU アーキテクチャを個別に指定する必要がありました。 「Scheme」ではそれらの組み合わせをショートカットとして予め登録しておくような形で管理します。「Product」メニューで実行するコマンドに応じて、ビルドタイプを指定することができ、基的には Release ビルド・Debug ビルドなどを意識する必要がないというコンセプトになっています。 Xcode 4 ではソースコードの編集中にリアル

  • 無効なURLです

    無効なURLです。 プログラム設定の反映待ちである可能性があります。 しばらく時間をおいて再度アクセスをお試しください。

    tokorom
    tokorom 2011/04/27
    アプリアイコンの設定方法
  • HTML5でiPhone用Webアプリをオフライン対応に

    HTML5でiPhone用Webアプリをオフライン対応に:iPhoneで動かす業務用Webアプリ開発入門(5)(1/2 ページ) モバイルWebアプリはオフライン対応が必須! いよいよ最終回の今回は、「Application Cache(アプリケーションキャッシュ)」を使います。 HTML5で導入されたアプリケーションキャッシュを使うと、WebアプリをWebブラウザのキャッシュに載せてオフラインで利用できるようになります。特に、前回の「HTML5のlocalStorageでiPhone用Webアプリを高速化」で紹介したHTML5の「localStorage」と組み合わせると、一度ダウンロードしたデータについては完全にオフラインでアプリが動作するようになります。 オフラインでの利用に対応して、3G回線など接続が安定しない環境でも業務用Webアプリが快適に使えるようにしてみましょう。 「キャッ

    HTML5でiPhone用Webアプリをオフライン対応に
    tokorom
    tokorom 2011/04/19
    iPhoneのSafariではキャッシュは自動更新されないとのこと
  • jQuery Mobile が必須スキルになる!と思うのでこれから勉強する際に参考になる記事まとめ | バシャログ。

    Adobe の Creative Suite 5.5 が発表になりましたね。 Dreamweaver の進化っぷりが凄まじいです。マジで。 HTML5+CSS3への対応が目に付きますが、個人的にはjQuery MobileとPhoneGapフレームワークの導入に注目します。 アプリ開発はこれまで、Objective-Cやjavaが主流でしたがDreamweaverでアプリへの書き出しまで出来てしまうなんて…。今後、モバイルアプリケーションの統合開発環境のデファクトスタンダードになる予感が。 ってことで、まずはjQuery Mobileを理解せねば! jQery Mobile についてはまだ書籍はあまりなく洋書しかありませんでしたので、参考になる記事を取り上げてみます。 http://jquerymobile.com/ 家サイト jQuery Mobile Gallery http://w

    jQuery Mobile が必須スキルになる!と思うのでこれから勉強する際に参考になる記事まとめ | バシャログ。
  • MKMapView に CATransform3D を適用するときの注意 - 24/7 twenty-four seven

    MKMapView 3DTransformするとおかしくなるな。残念。鳥瞰図みたいなの表示したかったんだけど。 2011-04-04 17:36:16 via Twitter for Mac @junpeiwada ちょいと調べてみました。transformはsuperviewに当てて、その後mapViewにCATransform3DInvertで打ち消すといいんじゃないでしょうか。それをregionWillChangeで毎回。ズームができなくなるのはこれで治りました 2011-04-04 20:29:39 via Echofon to @junpeiwada @k_katsumi さんのおかげで、ステキ鳥瞰マップが! URL 2011-04-04 22:09:23 via Twitter for iPhone to @k_katsumi @junpeiwadaさんがつぶやいてたので気にな