サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
パリ五輪
iphone-app-developer.seesaa.net
Copyright (C) iPhoneアプリ開発備忘録 All rights reserved. ブログ内で記したコード、内容の正確性は保証いたしません。 記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。 iOS11でsocial.frameworkのServiceTypeにて、SLServiceTypeTwitter、SLServiceTypeFacebookがdeprecatedとなった。 Xcode9 betaでDeployment TargetをiOS11にして、SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitterを実行すると、Falseが返ってくるため、Twitter投稿機能が有効ではないことがわかる。(iOS11 beta4にて確認) つまり、deprecated
Copyright (C) iPhoneアプリ開発備忘録 All rights reserved. ブログ内で記したコード、内容の正確性は保証いたしません。 記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。 In-App Purchase(アプリ内課金)をアプリに組み込む手順。 1. 組み込み前のiTunes Connectの設定 (1) iTunes Connectで、アプリ内課金を組み込みたいアプリのApp情報を開く。 (2) 機能タブからApp内課金を開き、情報を追加する。 (3) 製品IDは、逆ドメイン名で指定推奨。 (4) アプリで表示されるアプリ内課金コンテンツの説明文に英語版は必須で、日本語版などローカライズ版を追加する。 (5) 削除した製品IDは削除した状態のまま残り、再利用することはできない。 (6) 作成内容に問題がないことを確認したのち「保
Copyright (C) iPhoneアプリ開発備忘録 All rights reserved. ブログ内で記したコード、内容の正確性は保証いたしません。 記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。 Xcode5でTargetsにアイコンを設定、Info.plistにアイコン情報を記述したにもかかわらず、実行時にiOSデバイス上にアイコンが表示されない場合の対処法。 1. TargetsのApp Iconsで、Xcode4のときに設定していたアイコンの設定方法をやめ、Asset Catalogを使う。 2. TargetsのApp Iconsに設定している項目はそのままでよい。プロジェクトにバンドルしているアイコンもそのままにしておく。 3. TargetsのApp Iconsで、Source「Use Asset Catalog」ボタンをクリックし、「Ne
Copyright (C) iPhoneアプリ開発備忘録 All rights reserved. ブログ内で記したコード、内容の正確性は保証いたしません。 記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。 UIActionSheetはiOS8でDeprecatedとなった。 代替として新たに登場したUIAlertControllerを使用しなければならない。 iOS8.0.2では、DeprecatedとなったUIActionSheet はiPhoneで動作するが、iPadでは動作しなかったり、動作しても- (void)actionSheet:(UIActionSheet *)actionSheet willDismissWithButtonIndex:(NSInteger)buttonIndexメソッドが複数回呼ばれたりと、おかしな動作が起こることが確認されたの
Copyright (C) iPhoneアプリ開発備忘録 All rights reserved. ブログ内で記したコード、内容の正確性は保証いたしません。 記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。 通常はViewControllerの中で UIAlertControllerを表示するが、何かの事情でAppDelegateの中で表示することがある。 この場合のUIAlertControllerの表示方法。 // コントローラを生成 UIAlertController *ac = [UIAlertController alertControllerWithTitle:@"Info" message:@"Message" preferredStyle:UIAlertControllerStyleAlert]; // アクションを生成 UIAlertAction
Copyright (C) iPhoneアプリ開発備忘録 All rights reserved. ブログ内で記したコード、内容の正確性は保証いたしません。 記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。 iOS8から位置情報の取得方法が変更になった。 iOSデバイスでアプリから位置情報取得する許認可状態には、「常に許可」「アプリ使用中のみ許可」「許可しない」のステータスがある。 アプリからは、「常に許可」「アプリ使用中のみ許可」のいずれかの応答をユーザにダイアログ画面を表示することにより促し、応答内容に応じてOSがプライバシー情報として設定する。 「常に許可」というのは、バックグラウンド実行中でもCLLocationManagerを起動して位置情報を取得する状態を指す。 1. info.plist の編集 下記の2つのキーを追加する。設定したプロパティ値はユー
Copyright (C) iPhoneアプリ開発備忘録 All rights reserved. ブログ内で記したコード、内容の正確性は保証いたしません。 記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。 �iOS8搭載iPadで、UIImagePickerControllerを使用してカメラを起動したり写真から画像を取り込む方法。 iPadの場合、カメラ撮影時はUIImagePickerControllerをpresentViewControllerで表示、アルバムから画像を取り込むときは UIImagePickerControllerをUIPopoverControllerで表示するが、iOS8の場合はどちらもNSOperationQueueブロックの中で処理をするようにしなければならない。これをしない場合は無反応となる。 カメラ撮影UIImagePicke
Copyright (C) iPhoneアプリ開発備忘録 All rights reserved. ブログ内で記したコード、内容の正確性は保証いたしません。 記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。 MITライセンスとして公開されているライブラリ、ソースコードを使用する場合の手順。 MITライセンスで提供されているライブラリやソースコードは、商用、非商用を問わず無条件に使用が認められている。ソースコードの公開は不要であり、改変も可能だ。 但し、「ライブラリの著作権表示と許諾表示を重要な部分に記載することが必要条件」である。 iOSアプリの場合、ソースコードの冒頭部分にコメントとして表記し、アプリのインフォメーション画面上に表示するのが望ましい。 その場合、CopyrightとしてMITライセンスの提供者を表記する。<利用するソフトウェア名> The MIT
Copyright (C) iPhoneアプリ開発備忘録 All rights reserved. ブログ内で記したコード、内容の正確性は保証いたしません。 記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。 iOS Developer Centerリニューアル後の、現時点でのDistribution用のProvisioning Profile更新手順のまとめ。 Distribution用のProvisioning Profileは1年間有効で、有効期限が過ぎたら(Expired)更新しなければならない。 1. 状況の確認 (1) iOS Dev centerにログインする。 (2) Certificates, Identifiers & Profiles -> Provisioning Profiles を開く。 (3) Expired になっているDistrib
Copyright (C) iPhoneアプリ開発備忘録 All rights reserved. ブログ内で記したコード、内容の正確性は保証いたしません。 記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。 【注:この記事は書きかけです】後述に示す通り、期待通りの動作にならない箇所があります。 Core DataドキュメントストレージをiCloudを用いて、iOSデバイス間で同期を行う手順。 1. iCloud用アプリケーションIDを作成する。 ※ 2013年4月より、Provisioning Portalはリニューアルしているので注意。 (1) iOS Dev Centerから「Certificates, Identifiers & Profiles」に入る。 (2) 「Identifiers」から「App IDs」を開き、「+」(New App ID)を選択。
Copyright (C) iPhoneアプリ開発備忘録 All rights reserved. ブログ内で記したコード、内容の正確性は保証いたしません。 記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。 [2014/3/11 追記] 本記事に記載する現象はiOS7.1で修正されたので、本記事はiOS7.1より前のバージョンのiOS7での対策となる。 iOS7.0.xでは、Navigation Bar にUIButtonを設置した場合、iOS6以前のコードではタイトル部分がNavigation Barの縦方向にセンタリングされない現象が起きるようになった。 また、フォント属性などを明示的に設定しないと、タイトル文字が表示されない。 例 UIButton *addBottun = [[UIButton alloc] initWithFrame:CGRectMake
Copyright (C) iPhoneアプリ開発備忘録 All rights reserved. ブログ内で記したコード、内容の正確性は保証いたしません。 記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。 iOSアプリで Google Mpasを表示するには、Googleが提供するGoogle Maps SDK for iOSを使用する。 なお、Google Maps SDK for iOS(Ver1.1.0現在)の動作条件は下記の通りとなる。 Xcode 4.5 以降 iOS SDK 6.0 以降 armv7 1. 準備編 (1) Google Developersの、Google Maps SDK for iOSのページにアクセスする。 https://developers.google.com/maps/documentation/ios/start (1
Copyright (C) iPhoneアプリ開発備忘録 All rights reserved. ブログ内で記したコード、内容の正確性は保証いたしません。 記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。 iOS5でTwitter Frameworkが、iOS6でSocial Frameworkが追加されたため、Twitter連携の実装は比較的容易になったが、iOS4以前に対応させるアプリや、iOS4以前からリリースしているアプリでは、既存ライブラリを使ってTwitter連携を行っていることが多い。 MGTwitterEngineを使うのが代表的と言えるが、2013年3月以降にTwitter APIがバージョン1.1に完全に移行され、Twitterとの連携はJSONのみ対応となるため、XMLで連携を行っている場合はJSONで対応するように修正する必要がある。 ■
Copyright (C) iPhoneアプリ開発備忘録 All rights reserved. ブログ内で記したコード、内容の正確性は保証いたしません。 記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。 iOS5までは、画面の回転はshouldAutorotateToInterfaceOrientationで実装していたが、このメソッドはiOS6でdeprecatedとなったため、デバイスを回転してもshouldAutorotateToInterfaceOrientationは呼ばれない。 代わりに、iOS6から追加されたメソッドのsupportedInterfaceOrientations、shouldAutorotateを使用する。 シングルビューだけであれば上記メソッドの実装だけで済むが、これにUINavigationController、UITabBa
Copyright (C) iPhoneアプリ開発備忘録 All rights reserved. ブログ内で記したコード、内容の正確性は保証いたしません。 記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。 解像度が1,136 x 640ピクセルになった、iPhone5の画面への対応手順。 1. 画像 1136 x 640pixelsで画像を作成する。 (1) Splash Screen Default-568h@2x.png (2) その他 xxxx-568h@2x.png ポイント: "@2x"の前に文字列"-568h"を付ける。 "@2x"は、640x960pixelsのhigh-resolusion(Retina Display)を示すが、4インチのiPhone5用の画像ファイル名には、"-568h"を付ける。568は、mainScreenのフレームサイズ
Copyright (C) iPhoneアプリ開発備忘録 All rights reserved. ブログ内で記したコード、内容の正確性は保証いたしません。 記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。 これからiOSアプリケーション開発を始めようと考えている人向けのMacintosh選び指南。 ■推奨ハードウェア構成要件 メモリは4GB以上、積載量は多ければ多い程よい。 ストレージは初めての開発ならば、160GBあれば十分。但し、アプリに含める画像などの元となるデータを大量に持ちたいのならば、500GB以上は欲しいところ。 SSDはなくても開発には差し支えないが、HDDと比べてシステム起動や動作が劇的に速いので予算が許すならば導入する検討を。 画面サイズは13インチ以上は必要。iPadアプリケーションを開発する場合は、13インチだと画面設計の生産性が落ちるの
Copyright (C) iPhoneアプリ開発備忘録 All rights reserved. ブログ内で記したコード、内容の正確性は保証いたしません。 記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。 Core Dataの自動マイグレーションは、データモデルが変更されたときの1度だけ行えばよく、マイグレーション処理を通せば、それだけ処理時間がかかる。 これを回避するためには、事前にマイグレーションが必要かどうかを判定すればよい。 [ AppDelegate.m ] didFinishLaunchingWithOptions- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.wind
Copyright (C) iPhoneアプリ開発備忘録 All rights reserved. ブログ内で記したコード、内容の正確性は保証いたしません。 記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。 Core Dataでデータモデルを変更した場合に実施するマイグレーションを、Xcode4.3で組み込む方法。 1. 新データモデルの作成 (1) Xcodeで、対象となるデータモデルを選択した状態にして、メニューバーから「Editor → Add Model Version」を選択。 (2) "Version name"に新しいデータモデル名を入力、"Based on model"に元となるデータモデルを選択。 (3) Finishボタンをクリックして、既存のデータモデルの並びに新しいデータモデルが作成されているのを確認する。 (4) 新しいデータモデルを開き
Copyright (C) iPhoneアプリ開発備忘録 All rights reserved. ブログ内で記したコード、内容の正確性は保証いたしません。 記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。 NavigationControllerで画面を戻る 1. ひとつ画面を戻る。[self.navigationController popViewControllerAnimated:YES]; 2. UINavigationControllerのスタックに蓄積されたトップ画面に戻る。[self.navigationController popToViewController: [self.navigationController.viewControllers objectAtIndex:0]]; または [self.navigationController
Copyright (C) iPhoneアプリ開発備忘録 All rights reserved. ブログ内で記したコード、内容の正確性は保証いたしません。 記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。 iOSで追加されたフレームワーク・TwitterFrameworkを使用して、Twitterへのつぶやき機能を実装する方法。 1. プロジェクトにTwitter.Frameworkを追加する。 2. クラスオブジェクトへ下記の通り記述する。 (1) Twitter.Frameworkのヘッダファイルをインポートする。#import <Twitter/TWTweetComposeViewController.h> (2) つぶやき機能の実装。TWTweetComposeViewController *twSendView = [[TWTweetComposeVi
iOS4以前のアプリで使用していたライブラリを、プロジェクトにiOS5/ARCを使用したアプリで使いたいときに、導入するライブラリだけARCを無効にする方法。 1. プロジェクト設定画面のTARGETSからBuild Phasesタブを開く。 2. Compile Sourcesを展開する。 3. ARCを無効にしたいファイルを選択する。(選択すると反転表示される) 4. returnキーを押すとダイアログ画面が表示されるので、-fno-objc-arcと入力する。 プロジェクト全体でARC無効な設定のときに、一部ファイルのみARCを有効にしたいときは、-fobjc-arcと入力する。 参考記事: http://d.hatena.ne.jp/shu223/20111229/1325141509 http://program.station.ez-net.jp/special/objecti
Copyright (C) iPhoneアプリ開発備忘録 All rights reserved. ブログ内で記したコード、内容の正確性は保証いたしません。 記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。 Xcode4.2からは、ユニバーサルアプリ化手順が変更となった。 Xcode3.xでは、"Upgrade current target for iPad"操作を行っていたが、Xcode4.2ではこの操作はなくなった。 Apple公式のiPad Programming GuideはXcode3.xの手順のままで内容は変更されていない。 1. TARGETSのコピーを作成 (1) Xcode4.2で、TARGETSを開いて右クリックすると、"Duplicate”と表示が出るので選択。 (2) 上記(1)操作により表示されたダイアログ画面で、"Duplicate a
モーダルビューを閉じるとき、 iOS4以前では、[self.parentViewController dismissModalViewControllerAnimated:YES];でも動作したが、 iOS5では、上記コードではビルド時にはエラーも警告にもならないが、実行時にモーダルビューは閉じない。 iOS5では下記のコードに書き換えること。[self dismissModalViewControllerAnimated:YES];
Copyright (C) iPhoneアプリ開発備忘録 All rights reserved. ブログ内で記したコード、内容の正確性は保証いたしません。 記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。 iOS5でキーボードを表示させたときに、Viewが上部にずれる問題が発生する。 この現象は、iOS4以前でビルドされたアプリをiOS5環境のデバイスで実行した場合でも発生する。 この場合、キーボードが表示されたこと、あるいは入力モードが変更されたこと(日本語→英字、絵文字など)を感知してViewを固定する処理を記述しておけばよい。但し、デバイスのOSがiOS5以降でないとアプリが落ちるため、バージョンの判定を行い、iOS5.0以降の場合のみ、UITextInputCurrentInputModeDidChangeNotification の通知を行うこと。 -
Copyright (C) iPhoneアプリ開発備忘録 All rights reserved. ブログ内で記したコード、内容の正確性は保証いたしません。 記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。 ネットワークの接続状態を監視するサンプルコードReachabilityが2.2にバージョンアップされている。 以前、紹介したReachability1.5使用時の圏外通知との機能差異は、ホスト(特定のドメイン)接続状態を監視する機能に加えて、3Gネットワーク、WiFiの接続状態監視、デバイスがネットワークに接続できる状態になっているかなどの機能が追加されている。 Reachability2.2のサンプルコードを基本的には流用できるが、iOS4.3.3において、アプリケーションの起動直後にホスト接続状態の監視機能を働かせると、ホストとの接続が確立されている状況に
Copyright (C) iPhoneアプリ開発備忘録 All rights reserved. ブログ内で記したコード、内容の正確性は保証いたしません。 記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。 iPhoneアプリからメールアドレス、メールのタイトル、本文を指定して起動する方法。 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto:hoge@hoge.com?Subject=fuga&body=test"]]; ・mailto:の後に、メールアドレスを設定。 ・Subject=の後に、メールのタイトルを設定。 ・body=の後に、メール本文を設定。 Subjectとbodyに設定するテキストは、UTF-8エンコードしておくこと。 メールアドレス、メールのタイト
Copyright (C) iPhoneアプリ開発備忘録 All rights reserved. ブログ内で記したコード、内容の正確性は保証いたしません。 記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。 クラウドサービスEVERNOTEと連携する方法。 1. ポイント ・EVERNOTEと連携し、データをやりとりするにはEVERNOTE APIを使用する。 ・EVERNOTE APIにアクセスするには、Thriftと呼ばれるフレームワークのライブラリを使用する。 ・開発中はEVERNOTEのSandboxにアクセスしてテストする。 ・開発が完了したら、EVERNOTEに本番環境へアクセスできるように要請する。 2. EVERNOTE APIキーの取得 http://www.evernote.com/about/developer/api/ にアクセスして、"R
Copyright (C) iPhoneアプリ開発備忘録 All rights reserved. ブログ内で記したコード、内容の正確性は保証いたしません。 記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。 NSUserDefaultにパスワード等を平文で保存するのは危険であるため、Keychainを使って保存するのが望ましい。 Appleのサンプルコードに、GenericKeychain というKeyChainを使ったコードがあるが、公開ライブラリを使う方法が最速でプログラミングできる。 ■Appleのサンプルコード http://developer.apple.com/library/ios/#samplecode/GenericKeychain/Introduction/Intro.html 1. githubより、scifihifiをダウンロードする。 h
Copyright (C) iPhoneアプリ開発備忘録 All rights reserved. ブログ内で記したコード、内容の正確性は保証いたしません。 記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。 UITableViewのセルに画像を表示する場合、デフォルトではセルの左端のimageViewに画像が表示される。 任意の位置に画像をするコードは下記のとおり。 UIImage *image = [UIImage imageWithData:self.imageData]; UIImageView *photo = [[[UIImageView alloc] initWithFrame:CGRectMake(100.0, 10.0, 128.0, 128.0)] autorelease]; photo.autoresizingMask = UIViewAuto
次のページ
このページを最初にブックマークしてみませんか?
『iPhoneアプリ開発備忘録』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く