投稿者: PICxPIC

iPhoneが発表されてから10年以上経つことへの雑記。

スティーブ・ジョブズによってiPhoneが発表されてからもう10年以上が経つ。

最初のiPhoneにはAppleが開発したアプリしかインストールできず、AppStoreという概念はなかった。

それからすぐにAppStoreがリリースされ、誰でも開発者登録をすれば世界中のiPhoneユーザーに自分の作ったアプリを使ってもらえるようになった。

私がアプリを作り出したのはAppStoreがリリースされてからおよそ2年後の2010年の秋ごろだった。

そこまで早く参入したわけでもなかったのだけれど、当時は今より圧倒的に情報が少なく、かつ開発手順も複雑だったので、「iPhoneアプリを作っている」という人はプログラマーの中でもかなり稀だった。

その黎明期にiPhoneアプリ開発というものに参加できたのは本当に運がよかったと思うし、そういった場をくれたAppleには感謝しかない。

あれから時間が経ち、リリースしたアプリが20本を超えたが、今はほとんど新規アプリをリリースしていない。

ここでちょっとiPhoneアプリのあれこれを振り返ってみようと思う。

続きを読む

AdMobが新しくなってなんか変わった。

AdMobが何やら新しくなった。

前回ガラっと変わったのは確か2012年とかそのあたりで、AdSenseとシステムが統合されたためリニューアルと同時に単価が激しく上昇していた記憶がある。

今回のリニューアルでは単価の上昇とかはなくて、FireBaseを本格的に使ってもらうためのものだと思われる。

なお、いつ出来たのかは知らないが、広告のユニットID以外に下記のような感じに「アプリID」をAppDelegate内で指定する必要があるようす。

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

  // Initialize Google Mobile Ads SDK
  // Sample AdMob app ID: ca-app-pub-3940256099942544~1458002511
  [GADMobileAds configureWithApplicationID:@"YOUR_ADMOB_APP_ID"];
  return YES;
}
@end

詳しくはAdMobのGet Startedを参照してください。

そういえば以前は本番の広告ユニットIDを指定するとテスト環境でも広告が表示されたが、今は表示されないみたいです。

なので、テスト環境ではAdMobが指定するテスト用広告IDを設定してね、ということらしい。インプレッション広告とかもあるから不正な収益が発生してしまうからでしょうね。

通常のiPad解像度(1536×2048)でつくったアプリをiPad Pro(2048×2732)で引き伸ばして表示する方法

iPadアプリを申請したらいきなりitunes connectでエラーが発生。

どうやらiPad Proの12.9インチ版スクリーンショットが必須になったらしい。ということはつまり、iPadアプリではiPad Proで動くことが必須になったということですね。

といってもiPad Proの解像度(2048×2732)なんて意識して作っていなかったので、どうしましょ、iPhoneアプリをiPadで起動すると自動で引き伸ばしてくれるように、なんとか引き伸ばして表示させる方法はないだろうかと調べたところ、ありました。

従来のソフトのままでiPad Proの画面に対応する方法
iPad Proが広すぎるため、取り急ぎ今までのアプリと同じサイズで対応しておきたい

Launch Screen Fileを設定しなければよい

Launch Screen Fileを設定する箇所を白紙にしておけばよいようです。大変助かりました。

引き伸ばしたスクリーンショットをitunes connectで設定して実際に申請したところ、問題なく「Ready for Sale」になりました。よかったよかった。

iPhoneでは5.5インチ、4.7インチ、4インチ、3.5インチと様々な解像度対応が必要で大変ですが、どの機種も一般のユーザーが使う解像度なので対応必須は当然だと思っています。しかし、個人的にはiPad Proは一般ユースとはちょっと違うんじゃないかな〜と感じていて、対応必須というのはちょっと厳しいような気がします。

Xcodeやitunes connectで、12.9インチ対応するかどうかをチェックボックスで選択できたりしたら分かりやすいんですけどね。

私もしばらくはこのLaunch Screen Fileを白紙にする方法で対応したいと思います。

“file xxx.png is missing from working copy” at project building というワーニングの対処

すでに削除した画像を読みにいってしまってるか、そのあたりのエラー。

下記のリンクを参考に、Xcodeの「Source Control」から「Commit」をクリックして、「!」マークのついてる対象のファイルを削除すればOK。

http://stackoverflow.com/questions/25338428/xcode-issue-file-xxx-png-is-missing-from-working-copy-at-project-building

Xcode8で”is missing from working copy” 消えました \(^^)/・・・・・が

NSDataReadingMappedIfSafe が deprecated になったので、その対処法

NSDataReadingMappedIfSafeがiOS8でdeprecatedになってしまった。

こちらがNSDataReadingMappedIfSafeを使ったもの

NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"caf"];
NSData *buffer = [NSData dataWithContentsOfMappedFile:path];

これを下記に変更する。

NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"caf"];
NSData *buffer = [NSData dataWithContentsOfFile:path
                                            options:NSDataReadingMappedIfSafe
                                              error:nil];

オプションのところは「NSDataReadingMappedIfSafe」と「NSDataReadingUncached」と「NSDataReadingMappedAlways」から選ぶ。
どういう違いかはあまり調べてないが、ここに書いてある。

http://samplecodebank.blogspot.jp/2013/06/NSData-NSDataReadingMappedIfSafe-example.html

プロフィール

PICxPIC
1983年生まれ。2010年からiOSアプリを開発し、2012年に法人化。メディア掲載やランキング、ダウンロード数などの詳しい実績などはこちら

PICxPICのアプリ

赤ちゃんの大冒険

おさるランド

動物オーケストラ2

子どもゲームランド

おしゃべりボタン

天空までのぼれ!

ジャンプで川下り

ひよこランド

動物オーケストラ

ポコポコアニマル

キラキラお絵かき

音が出るお絵かき

あいづちん