その後のその後

iOSエンジニア 堤 修一のブログ github.com/shu223

2012-01-01から1年間の記事一覧

UIWebView からアプリ内に入れたカスタムフォントを使う

Info.plist に "Fonts provided by application" で追加したカスタムフォントを、UIWebView で表示する web コンテンツから参照する方法です。 CSS の font-face で、次のように指定します。 @font-face { font-family: "{CSS内で使用する名前}"; src: local…

『第3回 iphone_dev_jp 東京iPhone/Mac勉強会』で vImage について発表してきました

先日の記事で第2回勉強会向けに用意していた発表内容について書きましたが、本日(7/21)開催された第3回で発表の機会をいただいたので、資料とサンプルコードをアップデートして発表してきました。 iOS 5 から Accelerate.framework に追加された高速画像…

Facebook SDK 3.0 for iOS のサンプルを一通り試してみました

今回は従来のように github からソース一式をとってくる方式ではなく、インストールパッケージをダウンロードしてインストールする方式になったようです。 https://developers.facebook.com/ios/ で、インストールはさくっと終わったのですが、どこに何がイ…

UIWebViewで表示中のHTMLコンテンツを取得する

UIWebView や UIWebViewDelegate には、ロードしてきたHTMLの内容を取得するためのプロパティやメソッドが見当たりません。 で、どうすればいいかというと、stringByEvaluatingJavaScriptFromString: メソッドで JavaScript を実行して、現在 UIWebView で表…

Path や Facebook ライクなスライドメニューを実現するライブラリ "IIViewDeckController"

前回の記事で、Path や Facebook ライクなスライドメニューを実現するライブラリ7種類を比較し、ウォッチ数が多く最終更新日も比較的新しいことから、IIViewDeckController をチョイスしました。 こんな感じのUIが作れます。 ARC対応もしてあり、スライドメ…

Path や Facebook ライクなスライドメニューを実現するライブラリ7種を比較!

リッチな GUI を簡単に実現するためのオープンソースシリーズ第3弾は、Facebook や Path でおなじみのアレです。 cocoa controls で facebook と入れて検索するだけでも、山ほど出てきます。 どれかに絞って使い方を紹介しようと思ったのですが、予想以上に…

スクロール付きタブバー "InfiniTabBar"

先日の OGActionChooser に引き続き、オープンソースのUIコンポーネントの紹介です。 ソーシャルゲーム系のアプリでちょくちょく見かけるのが、スクロールするタブバー。 あまりわかりやすいUIとはいえないので、ネイティブ実装する場合にこのUIを採用するケ…

画像素材なしでいい感じのボタンを作れるライブラリ その1 "Imageless Gradient Buttons"

先日の記事の冒頭でも書きましたが、UIKit でサクッと動いて触れるものを使る場合に、UIButton の見た目の選択肢が RoundRect ぐらいしかないのはなかなか辛いものがあります。 そんな場合に役立つ、「画像素材なしでいい感じのボタンをつくれるライブラリ」…

リッチなポップアップメニューをさくっと実現できる OGActionChooser

たかがモック、されどモック。 モックといえど、RoundRect タイプのボタンを使用してたりするとどうにもテンションが上がらない、ということはよくあります。(僕はよくあります) そんなわけで、リッチな GUI を簡単に作れる系のUIコンポーネントをいろいろ…

Unity での位置情報の取得方法

Input クラスの location というプロパティを利用します。 http://unity3d.com/support/documentation/ScriptReference/Input-location.html Property for accessing device location こんな感じで位置情報をとれるようです。 ※Unity オフィシャルサイトのリ…

NGUIの使い方に関する記事まとめ

iOS SDK の UIKit に用意されているような UI を Unity でやるなら NGUI というプラグインが便利らしい、との噂を聞きつけたので、とりあえずググって見つけた日本語情報をまとめてみました。 ※Unity初日の初心者(1年程前にもちょっと触ったことはある)で…

『第2回 iphone_dev_jp 東京iPhone/Mac勉強会』で vImage について発表・・するつもりで参加してきました

めんどくさいタイトルですいません。。 僕がこの勉強会のATNDに気づいたころには120人の参加者枠もとっくにうまり、発表者枠も既に10人に達していたのですが、「時間がもし余ったら」と @k_katsumi さんの粋な計らいでLT補欠として参加させていただいた、と…

Assets Library を利用した高速フォトビューア

1年以上前にこちらの記事で Assets Library の読み込みを高速化する試行錯誤について書かせていただきましたが、そのときに作った『i走馬灯』という高速フォトビューアアプリを作り直して再リリースしました。 『i走馬灯 〜超高速フォトビューア』 ※無料です…

逆ジオコーディングで取得した CLPlacemark の住所情報の内容

先日CLGeocoder を用いた逆ジオコーディングの記事を書きましたが、その結果得られる CLPlacemark 型の addressDictionary プロパティに入っている住所情報について、どのキーがどういう情報なのか、国ごとにどういう違いがあるのか、毎回調べるのが面倒なの…

iOS 5.0 より追加された CLGeocoder を使用して逆ジオコーディング

Appleのドキュメントによると iOS 5.0では、MKReverseGeocoderとMKReverseGeocoderDelegateは非推奨になっているの で、新たにアプリケーションを開発する場合はCLGeocoderを使ってください。 とのことなので、逆ジオコーディングを CLGeocoder を使用してや…

クロスディゾルブで画面遷移

UIView に用意されている画面遷移用エフェクトとして、カールアップ/ダウンやフリップ(クルッとまわる)以外にも、iOS4.0以降ではクロスディゾルブ(アルファで入れ替わる)も利用できます。 2つの UIView (下記サンプルでは fromView, toView)を用意し…

NSUserDefaults に保存する際に自動的に iCloud にも保存してくれるライブラリ "MKiCloudSync"

MKiCloudSync を使用すると、たった1行コードを追加しておくだけで、あとは自動的に NSUserDefaults の内容を iCloud に同期してくれます。 もともとシンプルな iCloud 同期ですが、もっとシンプルになるのでとりあえず iCloud 対応したい、ちょっと試してみ…

ログ出力用マクロ

下記のような有名なログ出力マクロがありますが、 #ifdef DEBUG # define LOG_CURRENT_METHOD NSLog(@"%@/%@", NSStringFromClass([self class]), NSStringFromSelector(_cmd)) #else # define LOG_CURRENT_METHOD ; #endif これプラスアルファでちょっと便…

クラッシュイベントを受け取る

TestFlight SDK とか、クラッシュイベントを受け取って Stack Trace をレポートしてくれたりしますが、どうやるんだろう?と思い調べてみました。 クラッシュイベントを受け取って何かしたい場合は、 NSSetUncaughtExceptionHandler() にハンドラ関数のポイ…

GKLeaderboard でどのようなスコアデータの絞り込みができるか

Game Center の Leaderboard のスコアデータは、GKLeaderboard クラスを使用して直接とってくることができます。 アプリケーションでスコアデータを調べたり、独自の Leaderboard ビューを作成したい場合は、GameCenterから直接スコアデータをロードできます…

ARC 有効/無効に両対応させたい場合に便利なマクロ

汎用ライブラリ等、ARCプロジェクトでも非ARCプロジェクトでも使用する可能性のあるクラスを実装する場合、 #if !__has_feature(objc_arc) - (void)dealloc { [super dealloc]; } #endif といった感じで "__has_feature(objc_arc)" を用いて判定を行いそれぞ…

iOS 5.0 から iOS 5.1 への API 変更点まとめ

単なる API Diffs ドキュメントの抜粋ですが、iOS 5.1 での iOS SDK API 変更点です。 AssetsLibrary ALAssetRepresentation.h Added -[ALAssetRepresentation dimensions] AudioToolbox AudioFormat.h Added kAudioFormatProperty_FormatIsEncrypted AudioU…

Xcode の Guard Malloc オプション

Xcode 4 で、 Edit Scheme → Debug を選択 → "Diagnostics" タブを選択 と進むと、下記のような設定項目が出てきます。 このうち、"Enable Zombie Objects" にはいつもチェックを入れるのですが、他のチェック項目はどういう効果があるんだろう?と思いつつ…

Twitter や Facebook への投稿ライブラリ ShareKit の Tips

「iOSアプリにソーシャルサイトでのシェア機能を3行で簡単実装できる」という謳い文句で有名な ShareKit を初めて使ってみたのですが、ひっかかった部分や、ドキュメントに書いてなくてソースから汲み取った部分などあったので、諸々メモしておきます。 ソ…

オブジェクトが持つプロパティの型と名前のリストを取得する

クラス/オブジェクトが持つプロパティ情報を取得するには、Objective-C のランタイムにある、 objc_property_t *class_copyPropertyList(Class cls, unsigned int *outCount); を使用します。 また objc_property_t 型のプロパティ情報からプロパティ名を取…

WWDC 2011 Session Videos の「あとで見る」リスト その1

ずっと見ようと思っていてなかなか見れてない WWDC の セッションビデオ。 とりあえず気になったものを列挙してみました。 数が多いのでまずは A〜I 編。 Advanced ScrollView Techniques Come learn about how to achieve the appearance of infinite scrol…

NSNotification, NSNotificationCenter によるオブジェクト間通知のパフォーマンス

NSNotification, NSNotificationCenter を用いたオブジェクト間連携は使いやすいのでついつい多用してしまうのですが、具体的に内部でどのような処理が行われていて、パフォーマンス面での影響はどのくらいなんだろう、ということをイメージできずにいたので…

放物線状にアニメーションさせる

というタイトルで、はじめて Qiita に投稿してみました。 http://qiita.com/items/2269 (Twitter/Github/Hatena と同じ shu223 というIDです) ちなみにこんなコード。 + (void)startJump:(UIView *)view startPos:(CGPoint)startPos targetPos:(CGPoint)ta…

Google AdMob Ads SDK 5.0.5 の更新内容

アプリを申請した数時間後に、AdMob SDK がアップデートされていたことを知り、(申請を取り下げてまで最新にする必要があるかどうか判断するために)更新内容について調べてみました。 こちらがリリースノート。 http://code.google.com/intl/ja/mobile/ads…

In-App Purchase の Status が "Developer Action Needed" な場合の対処方法

In-App Purchase がらみでリジェクトをいただいてしまい、修正バイナリをアップロードしたのですが、iTunes Connect の In-App Purchase 設定画面の Status のところが "Developer Action Needed" のままでした。 で、そのStatusを変更するボタンのような便…