サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
パリ五輪
blog.popino.net
RetinaディスプレイをサポートしたiOSアプリには2つのサイズの画像を入れることになってます。 例えばフルスクリーン表示の画像が有ったとすると、以下の二つを入れることになります。(一旦iPhone 5のサイズはおいておきます) ・filename.png (320×480px) ・filename@2x.png (640×960px) iPhoneに関しては、iPhone 4でRetinaディスプレイに対応してから随分経ちますし、iPhone 3GS以前の非RetinaのiPhoneを使っているユーザーも少しづつ減って来てるだろうと考えると、非Retina向けの画像をバンドルせずに、アプリの容量を減らせるとちょっと幸せなのではないかと考えて、ちょっとした仕組みを考えてみました。 ネットワークを使ったゲームの場合は、初回起動時にRetinaか非Retinaの素材をダウンロードして使うよう
メモリ管理の概要、ARCの設定に続いて、ARC(Automatic Reference Counting)対応のソースの記述についてです。 メモリの領域を参照数をカウントして、ゼロになった場合に解放するという考え方は同じですが、ARCによって記述が簡単になります。 今まで明示的にretainやreleaseを記述していましたが、以下の記述は全てエラーになります。 ・retain ・release ・retainCount ・autorelease 代わりにポインタを管理する変数の修飾子が増えてます。 ・__strong ・__weak ・__unsafe_unretained ・__autoreleasing 例えば、以下のような記述をします。 SomeObject * __strong obj; 以下のようにこの変数にポインタを代入した場合、 obj = someObj; 以下と同じ意味
前回の「iOS5時代のメモリ管理 その1」に続いてメモリ管理の話。 2回目はARC(Automatic Reference Counting)対応の準備についてです。 ARCの機能を使う為の設定方法は、新規にプロジェクトを作成するか、既存のプロジェクトを変更するか、全体でARCに対応するか、部分的に使用するかで、準備が変わってきます。 ■新規プロジェクトの場合 新規にXCodeでプロジェクトを作成する際は、「Use Automatic Reference Counting」という項目のチェックをONにしていれば、プロジェクト全体がARCを使う設定でプロジェクトが作成されます。 ■既存のプロジェクトの場合 XCodeのメニューから「Edit」→「Refactor」→「Convert to Objective-C ARC…」を選択する事でプロジェクトの設定を変更してくれます。 手動で変更する場
iOSアプリは1つのバイナリで複数の言語に対応する事が可能で、App Storeのアプリの説明も、iTunes Connectで複数の言語を登録して、各国のStoreに応じた言語で表示する事が可能です。 例えば、日本語と英語に対応したアプリで、iTunes Connectで日本語と英語の説明を登録した場合、日本のApp Storeでは日本語で表示されますが、英語圏では英語で表示されるようになります。 日本語でも英語でも無い国の場合、どちらの言語で表示されるかは、一定のルールで決まっていたのですが、iTunes Connectがバージョンアップして、よりフレキシブルに指定できるようになりました。 以前はアカウント登録後に選択するPrimary Languageで決まってました。 ここで指定した言語が優先され、他の言語のリソースがあればそれを使う事になります。 例えば、Primary Lang
以前、iPhoneアプリのアイコンサイズを投稿してから、iPhone4のRetinaディスプレイが登場したり、iPadが登場したりと、必要なアイコン素材も増えたので、ここらで再度まとめてみたいと思います。 現時点で配信できるアプリを以下の3種類があります。 1)iPhone/iPod touch専用アプリ(iPadでも小さい画面で動きます) 2)iPad専用アプリ 3)ユニバーサルアプリ(iPhone/iPod touch用のプログラムと、iPad用のプログラムが入ったアプリ) それぞれで必要なアイコンが変わってきます。 1)iPhone/iPod touch専用アプリ ・ホーム画面に表示するアイコン 57×57(必須。Icon.png) 114×114(オプション。Retinaディスプレイ用。Icon@2x.png) 72×72(オプション。iPad互換モードで使用。Icon-72.pn
OS X LionにしてFinderの機能も強化され、色々と便利な機能が増えましたが、「マイファイル」の機能で表示したく無いファイルも全部見えて困るって人がいるようです。 マイフォルダに表示されるファイルを、非表示にする方法が無いのか調べてみました。 Finderの「環境設定」の「サイドバー」を表示して、「マイファイル」のチェックをOFFにすると、Finderの左側のメニューからは消えます。 ただ、これで非表示になったかと言うとそんな事はなく、Finderの「移動」メニューから「マイファイル」を選ぶと表示される事には変わりありません。 非表示にする方法がまったく無いことは無いだろうと、色々と設定項目を見渡しましたが、そのものずばりの設定項目は見当たらず、できないのかなーと思いましたが、ヒントを見つけ、ひょっとしたらと思ってテストしてみた所、うまく非表示になっているようです。 「マイファイル
先日、ハワイに1週間程行ってきました。 昨年グアムに行った時にiPhoneを使ったら、後から6万超えの請求があってびっくりでしたが、海外パケットし放題が始まったって事で、今回はSoftbankの説明を見ながら、設定して使ってみました。 海外パケットし放題は、日本時間を基準に、1日あたりのパケット代の上限額が適用されるサービスで、1,480円/日(※)までは従量制で、それを超えた場合は、一律1,480円になります。 ※2010年7月21日~2011年6月30日の金額で、通常は1,980円との事です。 ただし、具体的な条件が謎ですが、動画などを利用した場合は、2,980円/日になるという事です。 まだ請求が来てないので、合計でいくらくらいになってるのか分かりませんが、とりあえず海外定額を使う為の条件や、設定方法、注意点などまとめたいと思います。 海外定額の大前提は、Softbankの定額対象事
iPhone4からジャイロセンサーが搭載されますが、Nintendo3DSもモーション(加速度)センサーとジャイロセンサーが搭載されるという事で、すっかり携帯端末では標準的なセンサーになってきました。 それぞれがどんなものか簡単なまとめを。 ■加速度センサー 上下/左右/手前と奥の3方向にかかる速度を計測するセンサーです。 iPhone以外のセンサーは違う場合も有るのかも知れませんが、iPhoneの場合は重力の成分も入ってきます。 その為、固定して持っていても下向きに1Gの力が掛かっている事が分かります。 Wiiリモコンもこのセンサーが入っています。 端末の傾きは3軸に掛かった力から大体計算できますが、基本的に計測できるのは直線的な動きで、センサーのある位置を中心に端末を回転した場合、正確にどのように回転されたかは計算できないのが弱点です。 ■ジャイロセンサー 端末の角度や回転速度を計算す
昨年の話ですが、日本の中小デベロッパーには影響が大きいかもしれない変更がありました。 まずはApp Store開始時の話からですが、開始時は、各国の主要な通貨(円、ユーロ、USドルなど)ごとにまとめて、$250相当に達したら、入金されるルールで、支払いはそれぞれの通貨で行われてました。 日本の売上は、日本円で日本国内から振込があり、海外の通貨はその国の通貨で送金されてきて、受取銀行の口座が日本円のみの場合は、受取銀行で為替取引が行われて、入金されるという流れでした。 日本の売上はそのまま入金されるものの、海外の売上は銀行の手数料が引かることになります。(銀行や送金額によって手数料は違うと思いますが、最低でも2,500円~3,000円くらいかかるところが多いようです。) CITI Bankは複数の通貨を管理できる口座がありますが、この時点では、日本円は円建てで、海外からの送金は外貨建てで受け
検索されている方がいらっしゃるようなので、参考までに。 ※情報が古くなってきたので、最新のアイコンサイズを「iPhone/iPadアプリのアイコンサイズ」にまとめました。 ■iPhoneアプリ内に入れるアイコンサイズ iPhoneのホームスクリーンに表示されるアイコンです。 57×57のPNGで作る必要があります。 角は自動的に丸められて、アイコンが輝いているような効果も付加されます。 Info.plistのUIPrerenderedIconの設定で、アイコンが輝いているような効果はOFFにすることができます。 ■App Store向けのアイコンサイズ 512×512のJPEGファイルです。 こちらも自動的に角を丸められて、アイコンが輝いているような効果が付きます。 アプリケーション内のInfo.plistのUIPrerenderedIconの設定に従って、アイコンの輝いている効果はOFF
iPhoneアプリは端末を持っている向きで、画面の向きを変えたり、デザインを変えたりするのが定番ですが、画面を回転する方法はいくつかあります。 今回は起動時の画面の向きの指定と、AutoRotateの指定について書きたいと思います。 iPhoneアプリを作る場合、画面が横向きの状態で起動したいとか、横向き固定でアプリを作りたい時があるかと思います。 起動時の向きを指定するには、Info.plistに以下の記述を追加すればOKです。 Key : UIInterfaceOrientation Value : UIInterfaceOrientationLandscapeLeft Valueは横向きの場合2種類あります。 UIInterfaceOrientationLandscapeLeftは、画面の左側にiPhoneのホームボタンが来る向きです。 UIInterfaceOrientationL
Macを使った事が無いWindowsユーザーで、iPhoneアプリを作りたいという方は、何からしたものか困ってる人が多いようなので、開発を始めるまでを簡単にまとめます。 まずはMacの購入です。 選択のポイントは、 1)デスクトップかノートブックか 2)そのMacで何をしたいか 1)はそのまんまですが、2)はiPhoneアプリ開発以外にやりたい事があるかで変わってきます。 例えば、オーディオのリアルタイムレコーディング&エフェクトや、3Dグラフィックやムービーもばりばり作るとか、BootCampやParallelsDesktopでWindowsゲームもやりたいからなるべくハイスペックがいいなど、ハイパフォーマンスを求めるのかどうかです。 iPhoneアプリ開発だけであれば、デスクトップならiMac、ノートブックならMacBookで問題ないです。 メモリは多いに超した事はないので、増設を検討
「iPhone OS 2.2.1でも動く3.0アプリ その1」で書いた「1)iPhone OS 2.2.1で存在していたクラスで、iPhone OS 3.0で追加されたメソッドを使いたい。」場合のやり方です。 Objective-Cはルートクラスが存在する言語で、全てのクラスは基本的にNSObjectを継承しています。 そのNSObjectに特定のメソッド(メッセージ)を処理できるかをチェックする為のメソッドがあります。 + (IMP)instanceMethodForSelector:(SEL)aSelector - (BOOL)respondsToSelector:(SEL)aSelector 具体的には、使用したいメソッドのあるクラスのインスタンス(instance)に対して、以下のように呼び出して、戻り値をチェックすれば、使用したいメソッドが実装されているかが分かります。 BOOL
最近はAudio Unitをあれこれと触っていた事もあって、久々のプログラミングの話題はサウンド再生についてです。 iPhoneでサウンドを再生する方法はざっと5つあります。 1)SystemSound 2)AVAudioPlayer 3)AudioQueue 4)OpenAL 5)AudioUnit それぞれの特徴について、ざっとまとめます。 1)SystemSoundについて 3秒程度の短いサウンドを再生するAPIで、時間が長いサウンドファイルは鳴らせません。 AudioSessionサービスで、セッション制御を行わなくても、端末のマナーモードのスイッチに応じて、音を再生/ミュートします。 2)AVAudioPlayerについて iPhone OS 2.2で追加されたクラスです。 これが出てくるまでは、長いサウンドファイルはAudioQueueかOpenALで鳴らす必要がありましたが、
以前投稿したiPhoneの画面(UIView)を回転させる その1では、UIViewのオートローテートについてでしたが、今回はプログラムで能動的に回転する方法です。 UIViewを回転するのは凄く簡単で、アフィン変換する為のプロパティと関数が用意されています。 UIView *view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]]; view.transform = CGAffineTransformRotate( view.transform, angle ); 以上のようなコードで簡単に回転できます。(angleの単位はラジアンです。) アフィン変換の関数はCGPointに適用するものもあったりして、結構便利です。 以上の方法でプログラムから回転する事ができますが、AutoRotate
和時計をリリースしたところで、iPhone SDK 3.0 beta版をインストールしてみた所、Code Signingエラーが発生して、iPhone/iPod touchの実機でテストする為のビルドも、Distributionする為のビルドもできなくなるというトラブルに遭遇しました。 さらに、テスト用の証明書(Certificate)も有効期限切れになっていて、何が何やら分からない事になって、相当苦戦しましたが解決しました。 今回のトラブルは以下の2つが原因で、本来はそれぞれ別のものですが、それぞれどう対応すればいいかをまとめておくので、参考にどうぞ。 1)iPhone SDK 3.0 beta版インストールによるCode Signingエラー 2)証明書の有効期限切れと、Certificateを作成した時に使った、キーチェーン内の公開鍵の紛失 1)については、自分の場合は日本語対応の問
iPhoneアプリはバージョンアップの仕組みがあるのも魅力の一つですが、バージョンアップ時はデータや通信の互換性に注意が必要です。 例えば、データであれば、保存時のアプリのバージョンと、読み込み時のアプリのバージョンが違えば、データを変換するなどの処理が必要になるケースもあるかと思います。 何かしらアプリのバージョンを特定できるキーがあればいいので、プログラム中にdefineで定義しても実現できますが、せっかくInfo.plistにアプリのバージョン番号を書いているので、これを使うようにしておくと、間違いが少ないかと思います。 Info.plistの値を取得するのは簡単で、NSBundleのDictionaryから取得できます。 例えば、バージョン番号の場合は、以下の1行で取得できます。 NSString *version = [[[NSBundle mainBundle] infoDic
アイコンファイルは、Info.plistの「Icon file (CFBundleIconFile)』KeyのValueに、アイコンのファイル名を入力する事で指定します。 この状態でアプリをiPhoneにインストールして表示したり、App Storeにアップロードすると、アイコンの上部にテカりが付いて、輝いている感じになります。 この輝きをなくす方法です。 Info.plistに「UIPrerenderedIcon」Keyを追加し、Value欄にtrueを設定すれば、輝いているエフェクトはなくなります。 うまくいかないという方は、「UIPrerenderedIcon」KeyのValueの型が間違ってないか要確認です。 Info.plistにKeyを追加すると、追加直後のValueの型はStringになっているかと思います。 このValue欄に「true」という文字列を入力してもダメです。
毎日の目標を設定して、少しづつ単語を覚えるためのアプリです。 単語は書いて(タイプして)覚える派の方にお勧めの、iPhoneアプリ「英単語検品工場」のペン太と英単語を覚えるアプリです。 毎日やることはシンプルです。 1.設定した単語数分の新しい単語を覚える。 2.前日に覚えた単語と今日覚えた単語がシャッフルして出題されるので回答する。 ※毎日5単語覚える設定の場合は、前日に覚えた5単語と合わせて、10問回答します。 単語数は初回起動時に設定画面が表示されます。(設定画面でいつでも変更できます) 回答画面には「ヒント」ボタンと「パス」ボタンがあります。 「ヒント」ボタンを押すと、単語の頭文字など、少しだけヒントが表示されます。 意味だけだと単語の候補がいくつも思い浮かぶ場合などに使ってみて下さい。(ヒントは頭文字→頭文字+文字数→発音の3段階あります。) 「パス」を押すまで先に進まないので、
まずは概要です。 1.AppleのサイトでAppleIDを取得 2.AppleのサイトでiPhone Developer Programに登録 3.iPhone Developer Programのサイトへログインし、 SDKをダウンロード、アプリを開発 4.有料配信を行う場合は、3と平行して、 銀行口座の情報の登録や、米国の税金関係の手続き 5.開発が終わったら十分にテストした後に、 AppStoreからの配信用にビルド 6.AppStoreで配信する為に、ビルドしたバイナリをアップロード。 同時にスクリーンショットなど登録。 ■注意点 1のAppleIDの作成から注意が必要です。 AppStoreで配信する為のサイトが、日本語の扱いがうまく行って無く、日本語でアカウントを作ると、のちのち手間取ります。(修正してもらうまで、1ヶ月以上待ちました・・・) 既にiTunesStoreで買い物
iPhoneアプリのメモリ管理 その1で、リファレンスカウンタ方式のメモリ管理の事を、iPhoneアプリのメモリ管理 その2でautoreleasepoolの事を書きました。 その3は@propertyです。 @propertyとメモリ管理の話をする前に、オブジェクト指向の基本的な考え方であるカプセル化についての理解が必要です。 オブジェクトとは、データと手続きをある単位でまとめたものですが、オブジェクトの独立性を高める為に、オブジェクトの内部構造を隠蔽する事がカプセル化です。 例えば、車を表すオブジェクト(クラス)が有ったとして、ガソリンの残量、消費量、走行距離、燃費のデータを管理しているとします。 燃費のデータは、外部のクラスからは取得/参照は自由に行っても問題となりませんが、自由にセットされると、走行距離やガソリンの消費量などの他のデータと矛盾が起きます。 こういった事が起きないよう
固定ページに引っ越しました。 今から始めるiPhoneアプリ開発 ← 引っ越し先のページへ遷移します。 ■iPhoneアプリの開発環境準備 Windowsユーザーが始めるiPhoneアプリ開発 その1 Mac購入編 Windowsユーザーが始めるiPhoneアプリ開発 その2 AppleID登録&SDKインストール編 番外編 MacでWindowsを動かす ■App Storeでアプリを配信するための手続き iPhoneアプリ開発・リリースまでの手順 概要編 iPhoneアプリ開発・リリースまでの手順 EIN取得編 iPhoneアプリ開発・リリースまでの手順 W-8BEN編 番外編 App Storeの売上の入金プロセスが変わった話 ■iPhoneアプリ開発入門 iPhoneアプリの開発言語 iPhoneアプリケーション開発入門 ■iPhoneアプリ開発に役立つ書籍 書籍紹介「OpenGL
以前iPhoneアプリのメモリリークというタイトルで投稿しましたが、今回はリークしない為のメモリ管理についてです。 Objective-Cのメモリ管理は、Javaともちょっと違い、C言語ともちょっと違う感じなので、戸惑う事も多いかと思います。 Objective-Cではメモリ領域を参照している数(リファレンスカウンタ)で、メモリを使用しているかを判断して、リファレンスカウンタがゼロになった時に解放します。 参照して使う時は「retain」メッセージを、不要になった場合は「release」メッセージを送って、リファレンスカウンタの数を変更します。 ここまではすぐに分かりそうですが、以下のようなコードを見たときに少し混乱しました。 例えば、SomethingViewをnewして、サブビュートして追加する場合、 SomethingView *view = [[SomethingView allo
「iPhoneアプリ開発・リリースまでの手順」に書いた「4」のうちの「W-8BEN」の提出についてです。 ※過去の記事も参考にして下さい。 iPhoneアプリ開発・リリースまでの手順(全体の流れ) EIN取得 IRSにForm SS-4を提出して、EINが取得できれば、 最後はW-8BENを提出して終了です。 外国の証券口座関係で提出する時などは、 PDFをダウンロードしてきて、記入&提出するようですが、 iPhoneに関してはちょっと流れが変わっていて、 Appleのサイト上で入力すると、 メールでPDFが添付されて送られてきます。 ※サイト上でも入力が必須なので、使う必要は無いのですが、参考までにIRSのURLです。 IRSのW-8BENのPDF だいたい以下のように入力しました。 1:名前 2:Japan 3:Individual(個人事業なので) 4~5:住所 6:取得したEIN
Objective-Cのメモリ管理をなかなか理解できない開発者も多い気がするので、メモリリークについて不安に思っている方も多いのではないでしょうか。 iPhoneで初めてプログラミングを始めた方もいるかもしれませんので、メモリリークについて簡単に説明すると、allocしたメモリ領域をrelease(dealloc)していないとか、確保したメモリがどこからも参照されない状態になって、ゴミが残っている状態の事です。 自分も理解するまで随分と悩みました。 まずはリークがあるかテストする所から始まります。 XCodeのメニューの「実行」→「パフォーマンスツールを使って開始」→「Leaks」を選択して、「Instruments」を起動しましょう。 以下のような画面でテストできます。 今回は「おみくじ」アプリでわざとメモリリークが出るように改変してみました。 このツールを使ったテストでは以下の2点に注
このページを最初にブックマークしてみませんか?
『LINE Creators Marketでスタンプの販売を開始』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く