AAAなブログ

あなたの求めているものは、ここにはない!

Apple税が30%から15%に下がります!

11月18日にAppleより発表されました。

 

developer.apple.com

 

小規模事業者って何よ?

Appleでの年間販売実績が100万米ドル(約1億円)以下の開発者が対象とのことです。

(詳細は12月に発表されるので変更されるかもしれません)

売り上げの対象は有料App及びApp内課金の売り上げ

広告売り上げは含まれません。

 

 

どれくらいの割合の開発者が対象になるの?

全開発者の99%が対象になるそうです。スゲー。

んで、残り1%の開発者がAppStore全売り上げの9割を占めるとか。ほんとかよ。

1億円以上稼ぐアプリと言えば、そのほとんどはゲームでしょうね。

 

 

 

スモールビジネスプログラムって言うけど・・・

売れてるゲームは、今後も30%のApple税を納め続けてねってこと。

小規模ビジネスを助けるためのプログラムっていうより、一部の大規模ビジネスに重課税するのが目的っぽい。

Appleの懐はほとんど傷まないし。むしろepicへのしっぺ返し感が強いなぁ。

 

 

個人アプリ開発者がもっと盛り上がって!

ここ数年間、個人アプリ開発者界隈がおとなしい気がします。

手数料が15%になることで、僕らの収入は15%アップすることになります。

みんなで参入してもっと盛り上がりたいですよね!

ちなみに私が昨日Appleに納めた手数料は約12,000円でしたので、これが15%に変わると6,000円で済むことになります。単純に私の日給が6,000円増えることになります。

年間で換算すると 6,000円 * 365日 で200万円以上の収入アップ。

弱小デベロッパには嬉しいボーナスですよね!

 

 

 

 

 

 

iPhone 12 mini をさっそく動かしてみた(エミュレータで)

 

Xcodeエミュレータが入っている。

⌘+1 でPhysical Sizeにできるので初代SEと比べてみた。

小さい!

ほぼほぼSEと同じサイズ。しかも画面でかい。

 

アスペクト比

- iPhone 12 mini -> 375 x 812pt -> 約0.461

- iPhone 12 -> 390x844pt -> 約0.462

- iPhone 12 Pro -> 390x844pt -> 約0.462

- iPhone 12 Pro max -> 428x926pt -> 約0.462

 

4つともほぼ同じアスペクト比です。

 

 

どれ買う?

miniかProで迷うところだ。

miniは手に入るのが来月になっちゃうから まずはProを買うことにする。

miniは来月考えよう。

Pro Maxはデカすぎ。ありえない。

 

 

 

 

 

iOS 14 でメール作成の仕様はどうすべきなのか?

 

アプリにお問い合わせ窓口を作るとする。

設定画面で「メールでお問い合わせ」をタップしたらメール作成画面に遷移する、というイメージですよね。

 

 

でも、ひと口にメール作成画面と言ってもいくつかのパターンがあります。

- アプリ内でメール作成する

- 別のアプリに飛ばす

 

本エントリーでは、開発者にとってそしてユーザ側にも自然で正しい仕様について考えてみます。

 

 

iOS 14 でのメールApp周りの変更点

「デフォルトメールApp」をユーザ側で選択できるようになりました。

例えば GoogleGmail だったり MicrosoftOutlook をデフォルトに設定できます。

デフォルトの定義って何だっけ?と思った方、するどい。

mailto URLスキームで呼び出されるアプリがデフォルトと思っていいはずです。

Webブラウザでメールリンク踏んだ時にメール作成画面が起動するアプリです。

 

 

1. よくある仕様

アプリの設定画面とかからメール送信するために、よくある仕様。

MessageUI フレームワークでメール作成画面を表示する。つまり、AppleのメールAppで送信することになる。

- メリット: App内のモーダルで完結するので使いやすい。

- デメリット: メールAppがインストールされている必要がある。

 

ちなみに GmailをデフォルトメールAppに設定していて、かつAppleのメールAppをアンインストールしている場合、OSによって「メールをインストールしますか?」のアラートが表示される仕様となっている。

 

これはないよね。何のためのデフォルトメールAppなの?ってなっちゃう。

 

 

2. デフォルトメールAppを利用する仕様

これは簡単です。

UIKit の open() で mailto URLスキームを投げるだけ。

- メリット: 実装が超簡単。

- デメリット: Appleのメールを利用しているユーザの場合でも、別アプリに飛ばされちゃう。

 

 

3. ちょっとひねった仕様

ちょっと複雑になるんだけどこんなのも考えてみた。

もしAppleのメールAppが利用可能であれば、アプリ内でモーダルで送信。

もし利用不可なら URLスキームでアプリ連携する。

- メリット: ほとんどのユーザにはいい感じで動作する

- デメリット: 次のようなユーザでは問題がある。

 

 

問題のあるケース

- デフォルトメールAppはGmailに設定している。

- Gmail アプリのメールアカウントにはGmailを設定しており、普段のメール送信にはGmailを利用している。

- AppleのメールAppもインストールしており、こちらは appleiCloudメールを設定している。

- iCloudメールは全く利用していない。

 

こんな人いるかな笑

まあ、あくまでもモデルケースです。

この方の場合、アプリからのお問い合わせはGmailを利用するのが自然ですよね。

アプリ側の判断で iCloudメールの作成画面を開いちゃうとユーザは混乱します。

 

 

結論

つーか俺自身、結論は出てない。

とりあえずだけど、自分は3の方針でやってます。

ユーザビリティ的にはバランスがいいのかなと。

今後、iOS側の仕様変更、挙動変更とかもあるかもしれないし、じっくりウォッチしていきたいと思っています。

 

設定されている デフォルトメールapp を取得できるAPIなんてなさそうだし・・・

 

 

 

 

 

 

iOS 14 で Photo Authorization Permission をリセットする

 

PhotoKit の PHAuthorizationStatus 周りを作り込んでいる。

いざ、すべてのケースをテストしようと思ったら何やら動きがおかしい。

 

 

ご存知の通り、パーミッションのアラートはOSによって一度のみ表示される。

二度めはない。

ユーザが .denied した時は iOSの設定Appに飛ばしてやる等の工夫が必要となる。

一度表示した後はアプリをアンインストールすればパーミッションは .notDeterminedに戻る・・・というのが今までの挙動だったのだが。

 

 

パーミッションステータスを保持

iOS 14 ではアンインストールしても PHAuthorizationStatusを保持している

.notDeterminedに戻ってくれない。

テストがやりにくくてしょうがない。

調べると、アンインストールして1日待てばリセットしてくれるらしい。

そんなに待てないぞ。

 

設定App からリセット

設定App > 一般 > リセット > 位置情報とプライバシーをリセット

ちょっとめんどくさいけどこれでOK

 

 

 

 

 

 

itms-watch:// が廃止されたようだ

 

iPhoneにプリインストールされている「Watch」というアプリ。

Apple Watch の設定を行えるアプリなのだが、これのURLスキーム( itms-watch:// )がいつのまにか接続できなくなっている。

おそらく iOS 14から?

 

代替方法は不明。

もともと公式ドキュメントに記載されていないので、利用しちゃダメ!というのがAppleの立場のようです。

 

developer.apple.com

 

 

App Store レビューでまたもや理不尽なリジェクト

一方的で論理的でないリジェクトっていっぱいあるよね〜

さて、今日のリジェクト理由は・・・

 

あなたのアプリはface dataを収集しているようだが、何のために収集しているか?

また、収集したface dataはサードパーティに送信しているか?

そのことはプライバシーポリシーのどこに書いてあるか?

 

 

・・・

 

・・・おい・・・

 

・・・そもそもface dataなんて利用してねーよ!

 

・・・てか、なぜ face data を収集していると感じたのか教えて欲しい

 

(普通に単なる嫌がらせじゃねーかよ)

 

 

返信した

本アプリは face dataを利用していません。そのため収集や共有も行っていません。

 

 

Appleさんの回答

回答ありがとうございます。

ではその旨をプライバシーポリシーに記述してください。

 

 

なんだこのやりとり。

アホなんかな?

 

 

不服申立て窓口について

今年から審査内容に不服がある場合は申し立てができるようになりましたが、

やってる人いるのでしょうか?

とある会社がアカウントバンされたのも記憶に新しい。

アプリがリジェクトされるくらいならまだカワイイけど、開発アカウントがバンされたら俺の商売終了。

ここは穏便に言うこと聞いとこう。

Epic陣営に入るなんて俺にはできねぇ

日本男児たるもの、長いものには巻かれていよう。

 

 

 

 

Android の View の setVisibility が効かない

view継承クラスの可視状態の制御ってこうやりますよね。

 

    view.setVisibility(View.VISIBLE)
view.setVisibility(View.INVISIBLE)
view.setVisibility(View.GONE)

 

基本中の基本です。

ところがAndroidで商売始めて10年近い私が、なんとこれにハマってしまいました・・・


GONEしても消えない!

 

表示されたまま。

 

スレッド?

フォーカス?

仕様変わった?

10分間ググってもなかなか分からず。

 

 

で結局、私のプロジェクトでの原因は・・・アニメーションでした。

 

view # setAnimation してるんですが、このAnimationの fillAfter が true となっていたのが原因。

 

対処方法

Animation の fillAfter を falseにする。

fillAfterがtrueでなきゃダメな場合は、 view # clearAnimation してやってもok