Loading...
iPhoneの新しいGoogle Mapsのアプリ、色々弄り倒してますがステキな感じ。 でこれひょっとして、「NimbusKit使ってない?」って思ったら、案の定で使ってた。 NimbusKitはiOS用のヘルパークラスと、コンポーネントと、デバッグツールの集合体。 以下のような機能がサクサクとつけられる。 CSSスキニング インターフェースの外見にCSSを適用できる。ビューのカスタマイズがラクチンに。 TextLabel iOSの微妙なTextLabelにリッチテキストやリンクがつけられるように。 バッジ 通知件数などのバッジを簡単に作成。 他アプリとの連動 他アプリ・・・マップ、ストア、電話、SMS、FB等の連携をラクチンに。 アプリ内ホーム画面 ホーム画面的なUIをアプリ内に簡単に追加できる。 キャッシュ/非同期通信つきのImageView 画像ローダー付きのImageView拡張。
基本的なことですが、UIWebViewからdelegateを使って機能を呼び出す簡単な方法があったので共有します。こちらのリンクからの情報です。 iphone – How to change a javascript alert box title into an UIWebView? – Stack Overflow まず UIViewに表示するHTMLから。こちらではローカルのファイルを使いましたが、通常のWebサイトでももちろん可能です。 ここで、onClick (イベントでなくても、任意の JavaScriptでOK)から、 document.location='app://alert'; や、 document.location='app://actionSheet'; などのコードを実行しています。この際、WebViewは、ページがかわる許可を得るために、UIWebViewDe
サブクラスのインスタンスからポリモーフィズムを無視して任意のスーパークラスのメソッドを呼びます。 ↓ 下のように Shape クラスと Shape クラスを継承した Path クラス、および Path クラス を継承した Circle があります。 それぞれのクラスで draw メソッドをオーバーライドしています。 //////////////////////////////////////////////////////////////////////// #pragma mark - Shape //////////////////////////////////////////////////////////////////////// @interface Shape : NSObject @end @implementation Shape - (void)draw { NSLo
前提「iPhoneアプリを作りたいなら」ではない。「売れるアプリを作る企画力」や「イケてるUIを作るデザイン力」なしに、「アプリ開発に必要なObjective-Cの技術力」だけあっても意味ない。それでもいい人向け。前提2巷のブクマされている「オススメ本集」は自身の著書や身内の本を薦めるためのポジショントーク的な選書がよくある。溢れかえる「分かりやすさ」を訴える本は必要はない。買うとしても1冊で十分。 分かりやすい本じゃないと身につかないなら、結局作れるものは「その程度」のものに留まる。そして「その程度」を作れる人は既にうじゃうじゃいるからApple税を無駄にするだけ。公式ドキュメント日本語ドキュメント - Apple Developer 日本語化された公式ドキュメント。全てを読むのは難しいが、「Objective-C プログラミング言語」「Objective-Cによるプログラミング」を読め
[NSDate dateWithNaturalLanguageString:] 文字列からNSDate作るのはけっこうめんどうだけど,これを使えばNSDateFormatterなしに作れます,一度動作確認さえすればいいので,値のフォーマットが固定されている場合には有用です.(Macのみ) [NSArray lastObject] 返り値がNSArrayだけど,ひとつしか要素が入ってないことを見越している場合は,lastObjectが便利です.空の場合はnilが返ってくるので,空のArrayに対してobjectAtIndex:してしまってout of boundsになるというよくあるバグが発生することもありません. [NSArray componentsJoinedByString:] HTTPのクエリを作るときなど特定の文字列で区切ることのできる文字列を作るときはこのメソッドが便利です.N
iOS5(Xcode4.4) で作成したプロジェクトを iOS6(Xcode4.5) に移行したときに、背景の設定方法でいくつか修正作業がありました。 今回は、その中から以下の2点について、内容を書き残しておこうと思います。 UITableView の backgroundColor が使えなくなった。 Group Table View Background Color が使えなくなった。 UITableView の backgroundColor が使えなくなった iOS6 では、UITableView の背景色を変更する方法として backgroundColor が使えなくなっているので、 代わりに backgroundView を使用します。 iOS5 では、以下のように backgroundColor を使用して背景色を変更していました。 - (void)viewDidLoad {
UITableViewのセル再利用のためのメソッドで、dequeueReusableCellWithIdentifier:というメソッドがありますが、それによく似たメソッドdequeueReusableCellWithIdentifier:forIndexPath:がiOS SDK 6.0から追加されたようです。 これは、UICollectionViewの追加と同時にセルの再利用まわりがシンプルにされたことによる変更なので、この事自体は歓迎すべきことです。しかし、iOS SDK 6.0を利用したXcodeでUITableViewControllerのサブクラスを作成すると、デフォルトでこの新しいメソッドが呼ばれるコードがテンプレートに書かれます。それをそのまま対応していないiOS 5.1以前で利用しようとすると"unrecognized selector sent to instance"
FlashとActionScriptをこよなく愛する私が、つまりはFlashすきすきおっさんがXCodeとObjective-Cについて入門しようとしたときにどうしてもつまずいた点を挙げていきたいと思います。実際にはFlashぜんぜん関係ない記事になっていますが。 FlashやActionScriptと比べてあれがないこれがあるとかいうのはナンセンスなのですが、自分が今学習中の開発スタイルでXCodeだとどうやって開発していったらいいのか、同じようにできるところは同じように、同じようにはできないところは違う方法を探りながらやっています。 とにかくXCodeとObj-Cについて初心者以前であり独学ですので盛大に間違えている可能性があります。 さらにどっちかというと人に説明すると言うよりは 自分がつまずいたところをあとで見直すように、完全に自分向けの個人的な覚え書きのつもりで書いています。 そ
職人が教える!iOSアプリ開発で使いこなしたいとっておきのOSS 第6回iOS6のApple製マップに、Googleマップをオーバーレイするライブラリ/フレームワーク 【10/10追記】本記事で紹介しているGoogleMapsOverlayiOSは、現在のコードではGoogleマップのタイル画像に直接アクセスする方法をとっているため、Google Mapsの規約に抵触しています。プロダクトには使用せず、あくまで参考の範囲に止めていただくようご注意ください。 (きし様、けい様、コメント欄でのご指摘どうもありがとうございました) はじめに 米国時間9月19日、待望の「iOS 6」がリリースされました。Passbookや、Facebookとの統合など、いくつかの注目の新機能がある中、もっとも話題をさらったのは、「新マップの出来の悪さ」ではないでしょうか。データが少ない、場所が間違っている、ダ
つれづれと書きます。自分用 tips です。 開発に慣れていないときにやるとよさそうなこと Apple のプログラミングガイドを読む 『日本語ドキュメント - Apple Developer』の iOS View Controller プログラミングガイド iOS View プログラミングガイド iOS View Controllerカタログ あたりを読むと、どういう設計でつくられているのかがイメージつかめる ライブラリはどう探すか カスタムUI系なら『Custom UI Controls for iOS and Mac OS X - Cocoa Controls』 GitHub で Objective−C で絞って探す アプリをビルドして実行は XCode 左上のボタン。もしくは Command + R(こっちが手早くてお気にいり) 慣れないうちは小さい単位でビルドして実行、そして co
下記のような有名なログ出力マクロがありますが、 #ifdef DEBUG # define LOG_CURRENT_METHOD NSLog(@"%@/%@", NSStringFromClass([self class]), NSStringFromSelector(_cmd)) #else # define LOG_CURRENT_METHOD ; #endif これプラスアルファでちょっと便利なマクロをご紹介します。 下記マクロを定義して、 #ifdef DEBUG # define LOG_CURRENT_LINE(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__); #else # define LOG_CURRENT_LINE(...) #endif たとえば
先日、「iOS6でAndroidのインテントっぽいものができたって聞いたんですけど、ほんとですか?」と聞かれました。 うーん、聞きたいことはわかるんだけど、ちょっと違うんですよね。 ……というわけで、Xcodeでの設定方法もだいぶ前と変わったし、iOSの現時点でのアプリ間ファイル共有についてまとめてみました。 iOS6で大きく変化したところは…… まず、iOS6で大きく変わったのは次の二つです。 UIDocumentInteractionControllerを使った共有が、機能も見た目も大幅に進化したこと UIActivityViewControllerを使った共有ができるようになったこと それぞれ変更内容がいろいろあるので、三つにわけて書いてみました。 その1:OpenURLを使ったデータ共有 その2:UIDocumentInteractionControllerを使ったデータ共有 その
今までのアプリをiPhone5の640x1136の縦長画面に対応させるために私がやったことのメモです。 (たぶんこれで大丈夫だと思うんですけど、何か問題があったら追記します。) iPhone5画面サイズ対応 まず、アプリをiPhone5の640x1136サイズで起動するには、プロジェクトにこの画像ファイルを追加すること。(もちろん画像サイズは640x1136) Default-568h@2x.png 公式書類に一応書いてあるんですが、ちょっと記述がわかりづらいですね。(もうちょっとわかりやすくかいてくれてもいいと思うんですけど。) iOS App Programming Guide(App-Related Resources) 各画面のサイズ変更対応 次に、起動画面以外の各画面をiPhone5/iPhone4の両対応にするための変更です。 まずは、それぞれのxibファイルを開いて、ベースと
CocoaPodsって何? CocoaPods/CocoaPods · GitHub CocoaPods は Objective-C のライブラリ管理ツール。Ruby の Bundler みたいなもの。 開発中の iPhone アプリでカレンダーが使いたくなって TapkuLibrary を README を見ながら導入したんだけど、プロジェクトにファイルを追加したり設定を変更したりと苦労した。 ライブラリを追加するたびに毎回同じような思いをするのは嫌だと思っていたところに、CocoaPods の存在を知ったんで飛びついてみる。 CocoaPods のインストール CocoaPods は Ruby の gem として提供されている。以前は MacRuby が必要だったみたいだけど、今ではシステムの Ruby でもインストールできるようになった。 gem install cocoapods
カメラロールにpngで保存 -(void)savePhotoPng:(UIImage*)orizinalSizeImage{ NSData *imageData = UIImagePNGRepresentation(orizinalSizeImage); UIImage *pngimage = [UIImage imageWithData:imageData]; UIImageWriteToSavedPhotosAlbum(pngimage, self, @selector(image:didFinishSavingWithError:contextInfo:), nil); } Documentsフォルダにファイルとして保存 -(NSString*)getPathByFileName:(NSString*)fileName{ NSString* path=[NSHomeDirectory
2012/09/18 米Googleは、オープンソースのコード変換ツール「J2ObjC」をリリースした。JavaのソースコードをiOSアプリ開発に使われるObjective-Cのソースコードに変換できる。 Googleのオープンソースブログによると、同ツールではJavaコードをiOSアプリケーションビルドの一部とすることができ、生成されたファイルの編集は不要。データアクセスやアプリケーションロジックといった、UI以外の部分に関するコードをJavaで記述し、それをWebアプリだけでなくAndroidアプリ、iOSアプリで共有できる。 Java 6を完全サポートしているほか、ランタイム機能のうち、例外、内部および匿名クラス、ジェネリックタイプ、スレッド、リフレクションなど、クライアントサイドのアプリケーション開発に必要な機能の大半をサポート。JUnitテスト変換と実行にも対応し、XcodeとM
「第1回 iPhone_dev_jp みんなが幸せになるハッカソン」の僕の成果物として、AAMCommandKitを公開しました。ObjectiveC用のCommandパターンライブラリです。 Commandライブラリって? セレクターやブロック、あるいは一連の処理などを、”◯◯Command”という1つのクラスにカプセル化したものです。Commandをallocして、executeをコールするだけで様々な処理を実行できます。 Commandライブラリの強力なところは、複数のコマンドを配列にれて、まとめてバッチ処理したり、非同期に並行実行したりできる点です。元々は僕がFlash案件でつかっていたライブラリで、複雑なアニメーションや遷移と、裏側で行う処理を綺麗に記述する為に作りました。 どんなことができるの? 例えば、下記のようなメンドクサイ処理をシンプルに記述できます。 “Start”を表
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く