Monthly Archives: May 2014

Developer:作るべきアイコンはこれ!デバイス/iOS別アイコンのリスト(iOS 7対応・2014年最新版)

アプリ開発の初期、もしくは完成間近になってくるとアプリ申請に必要なアイコンを制作するのですが、どのファイルを準備しなくてはいけないのか忘れてしまいがちです。 端的にこのファイルだけ作れば良い、と言うリストがなかなか見当たらなかったので、デバイス、対応したいOSのバージョンを選択すれば、必要なアイコンファイルだけが表示される一覧表を作成しました。 デバイス/iOS別アイコンファイルのリスト(iOS 7対応) 対応したいデバイスとiOSのバージョンを選択し「ファイルを表示」をクリックして下さい。 — Select Device — iPhone iPad iPhone & iPad — Select iOS Version — iOS 7 専用 iOS 5,6,7 作成するアイコンファイル 種類 ファイル名 サイズ(単位 px) 角丸半径(単位 px) iPhone iPad iOS5,6 iOS7 iOS5,6 iOS7 Application Icon.png 57 x 57 10 ○ Application Icon@2x.png 114 x 114 20 ○ Application Icon-72.png 72 x 72 12 ○ Application Icon-72@2x.png 144 x 144 24 ○ Application Icon-60.png 60 x 60 13 * Application Icon-60@2x.png 120 x 120 26 ○ Application Icon-76.png 76 x 76 17 ○ Application Icon-76@2x.png 152 x 152 34 ○ Setting/Spotlight Icon-Small.png 29 x 29 5 ○ ○ ○ Setting/Spotlight Icon-Small@2x.png 58 x 58 10 ○ ○ ○ ○ Setting/Spotlight Icon-Small-40.png 40 x 40 9 ○ Setting/Spotlight Icon-Small-40@2x.png 80 x 80 18 ○ ○ Setting/Spotlight Icon-Small-50.png 50 x 50 9 ○ Setting/Spotlight Icon-Small-50@2x.png 100 x 100 20 ○ AppStore iTunesArtwork 512 x 512 90 ○ ○ ○ ○ AppStore iTunesArtwork@2x 1024 x 1024 180 ○ ○ ○ ○ ※ Icon-60.png は iOS 7 から採用された非Retina 用のアイコンファイルですが、現在 iOS 7 対応の非Retinaデバイスが存在しないため作成不要です。 まとめ アイコン作成はデザイナーでなくても楽しい作業ですが、これだけ種類があると出力時に混乱して結果に影響が出かねませんね。。 アイコンはある意味アプリ自体の出来不出来よりも重要ですので、最後まで気を抜かずに頑張りましょう。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

Apple:WWDC前に MacBook Air が静かにアップデート!大きな変更はなし。

WWDC まであと1ヶ月ですが、そんな中 MacBook Air がアップデートされました。 若干価格が値下げとなり、標準モデルのCPUが Haswell Refresh へ変更されたみたいです。 MacBook Air 2013 -> 2014 の変更点 2013年モデルからの変更点のみを太字でピックアップしました。 11インチ:128GB 11インチ:256GB 13インチ:128GB 13インチ:128GB CPU 1.3GHz -> 1.4GHzデュアルコアIntel Core i5 プロセッサ (Turbo Boost使用時最大 2.6GHz -> 2.7GHz) 1.3GHz -> 1.4GHzデュアルコアIntel Core i5 プロセッサ (Turbo Boost使用時最大 2.6GHz -> 2.7GHz) 1.3GHz -> 1.4GHzデュアルコアIntel Core i5 プロセッサ (Turbo Boost使用時最大 2.6GHz -> 2.7GHz) 1.3GHz -> 1.4GHzデュアルコアIntel Core i5 プロセッサ (Turbo Boost使用時最大 2.6GHz -> 2.7GHz) 価格 93,800円 -> 88,800円(税別) 112,800円 -> 108,800円(税別) 103,800円 -> 98,800円(税別) 122,800円 -> 118,800円(税別) CTO の Core i7 に関しては変更はないみたいです。 まとめ 現在 MacBook Air 2012 CTO i7モデル を使用しているので、今年が買い替えどきとタイミングを見計らっていたのですが、これならまだ現役で使い続けられますね。 2012 モデルで特に不満はないので、MacBook 12インチ モデル? が発表されることを期待しつつ、しばらく様子を見たいと思います。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

Objective-C:脱メモリ初心者!ARCの使い方、強い参照・弱い参照について

Objective-C を始めたのがちょうどARC (Automatic Reference Counting) が登場してからなので、これまでメモリに関する知識がさほどないまま、ARC任せでアプリ開発を行っていました。 ある程度 Objective-C での開発に慣れてくると、中途半端な知識では何かと不都合なことが散見するようになり、このままではいけないと思ったので、ARCに関する知識をまとめることにしました。 【このコンテンツは随時コンテンツを追加・更新していきます】 ARCについて ARCを使用することでメモリ管理を完全に放棄できるわけではなく、変数のスコープやオブジェクトが破棄されるタイミング、「強い参照」と「弱い参照」といった仕組みの理解は最低限必要です。 ここではARCに関する概要と禁止事項をピックアップしました。 ARCの概要 メモリ管理の基本的な仕組みはマニュアルでの管理方法と同じで、各オブジェクトが参照カウンタを持ち、カウンタが0になるとオブジェクトが破棄される。 ARC はコンパイラが適切な場所に retain, release, autorelease, dealloc を挿入してくれる機能。 強い参照がある間はそのオブジェクトは破棄されない。 弱い参照自が存在しても、強い参照がなくなればそのオブジェクトは破棄される。 禁止事項 retain, release, autorelease,dealloc, [super dealloc] は ARC が自動で挿入してくれるため使用してはならない。 @selector(retain) や @selector(release) でのセレクタ呼び出しをしてはいけない。 @property 宣言に assign/retain/copy パラメータは不要。 NSAutoReleasePool の代わりに @autoreleasepool を使う。 補足事項 プロパティで weak を指定すれば、Outlet に nil を入れる必要はない。 iOS 6 以降はメモリ不足時に viewDidUnload が呼ばれないため、メモリ使用量が多いオブジェクトは didReceiveMemoryWarning で解放する。 明示的にビューを解放したいときは didReceiveMemoryWarning で以下のようなコードを実行する。 強い参照と弱い参照について ARC が実装されてからは __strong や __weak といった修飾子が追加されました。それぞれ強い参照、弱い参照を定義するために使用します。修飾子を省略した場合は強い参照のオブジェクトとなります。 強い参照 修飾子の使用例 プロパティの使用例 何も指定がない場合(デフォルト)は強い参照となる 参照先のオブジェクトを自分で保持する。参照されなくなったり、スコープ外に出た場合は破棄される。 alloc/init で生成されたオブジェクトは、現在のスコープのライフタイムの間維持される。 弱い参照 修飾子の使用例 プロパティの使用例 弱い参照も別の場所では強参照されている必要がある。 __weakが指定されたオブジェクトは、いつでも削除される可能性がある。 参照先のオブジェクトを自分で保持しない。参照されなくなったとき自動的に nil が代入される。 オブジェクトが破棄された場合、この弱い参照にはnilが設定される。 デリゲートパターンの使用時に相互循環を防止するために使用する。 まとめ 弱い参照も別の場所では強参照されている必要があります。 強い参照により任意の1ヶ所でそのオブジェクトを所有し、他の場所では弱い参照を持ちそのオブジェクトにアクセスする、というのが弱い参照の基本的な使い方です。

JavaScript:これで脱初心者!レキシカルスコープとクロージャについて

いままでなんとなく使っていた JavaScript のスコープとクロージャについて、あらためて勉強し直しました。 スコープ自体難しいものではありませんが、ここをしっかり理解してないと、クロージャについての説明が出来ないので、自分用のためにメモを残しておきたいと思います。 レキシカルスコープとクロージャについて JavaScript では関数内で宣言された変数は、その関数内でしか見ることが出来ない。関数内に変数が見つからなかった場合、外側のスコープに変数を探しにいく。この仕組みをスコープチェーンと呼ぶ。 スコープチェーンのサンプル 結果 myFuncA で定義された変数 a と myFuncB で定義された変数 a は別物として扱われる。 myFuncB 内では 変数 b と 関数 myFuncC が定義され、myFuncC 内には存在しない変数 a の値を、スコープチェーンにより外側のグローバルスコープに探しにいっているため、myFuncB の結果は 5 となる。 レキシカルスコープとは 変数のスコープが関数を評価したときではなく、定義したときに決定しているという性質のスコープのことで、JavaScript ではこのレキシカルスコープが採用されている。 定義した時には既にスコープが決まっているため、静的スコープとも呼ぶ。 レキシカルスコープのサンプル 結果 サンプルの2つ目のログ出力は myFunc1 の返り値が関数になっているため myFunc2 ではなく myFunc2() となっている事に注意。 関数を評価したときではなく、関数を定義したときにスコープが決定されるため、myFunc2() で myFunc1 の返り値である関数 function() { return a; } のすぐ外側のスコープの変数 a = ‘A’ が代入されて評価、出力されている。 クロージャとは 「関数」と「その関数が作られた環境」という2つのものが一体となった、特殊なオブジェクトのこと。メソッドを1つだけ持つオブジェクトが必要な状況ならば、どんな時でもクロージャを使う事ができる。 実は、先ほどのサンプルの myFunc2 はクロージャになっているが、いまいちピンとこない内容なので、もっと具体的なサンプルとして、カウントアップ・ダウンするクロージャのサンプルコードを作成してみる。 クロージャのサンプル 結果 ハッシュで up と down 関数を返すようにし、mycounter からアクセスすれば、変数の状態が保持されていることが確認出来る。 まとめ サンプルコードを見ればやっていることは理解しているつもりでも、実際コーディングするときにパッと出てこないようでは、本当に理解しているとは言えません。 難しく考えこまず「こういうものなんだ」で片付くことも多いですが、クロージャに関しては何度も読みなおして言葉の意味を正しく理解しつつ、実際に繰り返し使用しながら理解していくしかありませんね。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。
eyecatch_image

AdSense:Google AdSense のバナーサイズ一覧と出力テンプレート

AdSense の収入は、サイト運営者にとっては無視することの出来ない存在です。 sirochro.com も公開から比較的早い段階で、サイトに関わる運営費の全てを AdSense によりペイ出来るようになりました。 今回、サイト作成時や改修時に毎回 AdSense のサイズを調査するのが面倒だったので、 AdSense の仕様に関する情報をリスト化し、全てのバナーを1枚のPNGファイルにまとめた画像を作成しました。 AdSense を導入するときの参考にしてみてください。 AdSense のバナーサイズと仕様一覧 バナーの名称は AdSense の「広告の設定」に表示されるものを使用しています。 Google 推奨サイズの一覧 名称 サイズ 種別 広告数 収益性 テキスト広告 ディスプレイ広告 モバイル対応 レクタングル(中) 300×250 レクタングル 多い 高い ○ ○ ○ レクタングル(大) 336×280 レクタングル 多い 高い ○ ○   ビッグバナー 728×90 バナー(横長) 多い 高い ○ ○   ワイドスカイスクレイパー 160×600 縦長 多い 高い ○ ○   モバイルバナー 320×50 モバイル 多い 不明     ○ その他サイズの一覧 名称 サイズ 種別 広告数 収益性 テキスト広告 ディスプレイ広告 モバイル対応 ラージ モバイルバナー 320×100 モバイル 不明 不明     ○ バナー 468×60 バナー(横長) 限定的 普通 ○ ○   ハーフバナー 234×60 バナー(横長) 限定的 低い ○ ○   スカイスクレイパー 120×600 縦長 限定的 普通 ○ ○   縦長バナー 120×240 縦長 限定的 低い ○ ○   ハーフ ページ 300×600† 縦長 不明 不明 ○ ○   ビッグバナー(大) 970×90† バナー(横長) 不明 不明 ○ ○   スクエア 250×250 スクエア 限定的 普通 ○ ○ ○ スクエア(小) 200×200 スクエア 限定的 普通 ○ ○ ○ レクタングル(小) 180×150 レクタングル 限定的 低い ○ ○   ボタン 125×125 スクエア 限定的 低い ○ ○   ※この情報は AdSense ヘルプ を参考に作成しています。 AdSense 出力テンプレート画像 サイズや形状の種類によって色分けをしています。サイト制作時のデザイン制作のときに画像を切り出して活用してみてください。 まとめ ネット上で消費するお金はネット上で回収し、お金を回す事に意義があると思います。そういった意味においては、AdSense 導入により最短で結果を出すことが可能です。 サイト運営費が回収できるようになると、お金以上の価値をきっとそこに見出すことが出来ると思います。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

Objective-C:デバッグの基本!NSLogでBOOLや様々な値を出力する

Objective-C をやっていくうえで必要不可欠な NSLog に関してのメモ。 BOOL値以外にも、様々な値を出力してみます。 NSLogでBOOL値を出力する Objective-C の真偽値について Objective-C はC言語で書かれたオブジェクト指向システムが採用されているため、使用できる真偽値が複数ある。これらをまとめると次のようになる。 変数仕様表記(数値) BOOL Objective-C YES (1) NO (0) bool ISO C/C++ 標準 true (1) false (0) Boolean Mac OS historical type true (1) false (0) 最初から Objective-C だけでiOSアプリを開発するのであれば BOOL だけでよい、ということになる。 BOOL を NSLog で出力する BOOL値も最終的には0と1で処理されるため double 型での出力となります。 出力結果 BOOL を YES or NO で出力する 「YES」「NO」での出力結果が欲しい場合は、NSLog に三項演算子を使用する。 出力結果 様々な型の値を NSLog で出力する BOOLだけでは物足りないので、色々出力してみます。 改行/タブ 結果 int(signed int) 結果 unsigned int 結果 float 結果 char(signed char) 結果 unsigned char 結果 NSString 結果 short(signed short) 結果 unsigned short 結果 long(signed long) 結果 unsigned long 結果 long long 結果 unsigned long long 結果 CGPoint 結果 pointer 結果 ※アドレスの値は環境によって変わります まとめ C言語等に精通していれば問題ないのですが、unsigned short や unsigned long を出力しようとして戸惑うことがあります。とりあえずどんな型でも NSLog で出力して慣れておくといいかと思います。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。