スマホの充電を騙くらかすアプリを作ったらAppleに怒られた話

本記事はクソアプリAdvent Calendar 13日目の記事です。

私は6月からモバイルアプリ開発の道に飛び込んだ新参者です。
普段は個人開発でFlutterでのアプリをひたすら作成しています。

「クソアプリAdvent Calendarとは、なんて素敵な試みだろう、これは参加するしかない！」
そう思い今回初参加させていただきます。

　

本記事では、作成したクソアプリの紹介ののち、
余談としてAppleに怒られた話を致します。
「こんなアプリを作ると、こういうリジェクト理由で割とガチ目に怒られる」
という一つの事例として捉えていただければと思います。

##作成したアプリ##

ちょっと気まずい相手からLINEの連絡先を聞かれ、

「スマホの充電が切れていたらいいのに、、、」

こう思ったことありませんか？

そんな時のために、いつでもどこでも充電切れ画面を表示するアプリを作成しました!

![Android_FeatureGraphic_ja.001.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1694109/ddc09818-92e9-ab64-ec12-e33f9fa8f8c4.jpeg)

Androidアプリとしてリリースしています。
ダウンロードリンクはこちらから

https://play.google.com/store/apps/details?id=com.zerokaraapp.energyfake

###工夫したポイント###

ただ画像を表示するだけなら写真アプリで代用できます。
このアプリは、大きい点で2つの工夫を凝らしています。
　
1. 電池の赤い部分が点滅する 
2. 充電コードを差し込むと、表示画像が切り替わる

実際の動画がこちらになります。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">充電を騙くらかすアプリを作成しました。 <a href="https://t.co/mvf7nr95PD">pic.twitter.com/mvf7nr95PD</a></p>&mdash; Aoi.Umigishi🎮Indie App Developer＠Flutter (@iNw17r8YHWThqgC) <a href="https://twitter.com/iNw17r8YHWThqgC/status/1469919027028176898?ref_src=twsrc%5Etfw">December 12, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


###使用したツール、技術###
Qiitaの記事ですので、技術面についても触れておきます。

ツールは、**Flutter**を用いて作成しました。
使用言語は**Dart**になります。

Flutterは
- Android,iOSどちらのアプリも作成できる点
- ホットリロードで開発時間の短縮が図れる点
- UI構築がかなり簡単に行える点
で、短期間でのモバイルアプリ制作にピッタリのUIツールキットでした。

このアプリも30時間ほどで作成できたため、とても効率が良かったです。

工夫したポイントで挙げた2点は技術的に工夫を凝らした点でもあります。
次で紹介します。

####1. 電池の赤い部分が点滅する####

``AnimationController``を使いクロック回路を実装することで実際の挙動を再現しています。
こちらについて記事を書いておりますので、ぜひご確認ください。

https://qiita.com/Umigishi-Aoi/items/592ee269549c3997af09

####2. 充電コードを差し込むと、表示画像が切り替わる####

``battery_plus``というパッケージを用いて実装しました。
こちらについても記事を書いております。
併せてご覧ください。

https://qiita.com/Umigishi-Aoi/items/97a7e607f312171f3dbd

##クソな点〜Appleに怒られた話〜##
さて、このアプリ、明らかにクソな点があります。
**iOSの充電切れ画面を再現しているのに、Androidアプリしかない点**です。

これには理由があります。
以下のリジェクト理由で、AppStoreのリリースのための審査をリジェクトされたからです。

>Guideline 1.1.6 - Safety - Objectionable Content
>
>
>Your app includes trick or joke functionality which is intended to deceive users.
>
>Please note that adding a disclaimer to the app description is not sufficient if the rest of the metadata and the app are >misleading.
>
>The next submission of this app may require a longer review time, and this app will not be eligible for an expedited review >until this issue is resolved.
>
>Next Steps
>
>- Review the Objectionable Content section of the App Store Review Guidelines.
>- Ensure your app is compliant with all sections of the App Store Review Guidelines and the Terms & Conditions of the Apple >Developer Program.
>- Once your app is fully compliant, resubmit your app for review.

>Submitting apps designed to mislead or harm customers or evade the review process may result in the termination of your Apple >Developer Program account. Review the Terms & Conditions of the Apple Developer Program to learn more about our policies >regarding termination.

ざっくり意訳すると以下の通りです。

- ユーザーを騙したりからかったりするような機能のアプリはいけません
- 次審査送っても優先して審査はしません。時間がかかることを覚悟しておいてください
- ユーザーに誤解を与えたり傷つけたりするようなアプリを提出するようなら、**あなたのApple Developer Program Accountを削除します**

まあまあな怒られ方ですよね。
特に最後の、「Apple Developer Program Accountを削除します」に完全に日和ました。

というわけで、Appleから公式にクソアプリ認定された結果、
再審査を送ることを諦めiOSでのリリースを断念しました。

###裏技:iOS端末にインストールする方法###

「えーでもiOS端末で使いたい！」

そう思っていただける方、いらっしゃるかもしれません。

そんな人のために、今回作成したアプリは、ソースコードをGitHubにて完全公開しております。

https://github.com/Umigishi-Aoi/EnergyFake

Flutterの環境構築がされている方なら、
上記リポジトリをクローンすることで誰でもインストールすることが可能です。
(``flutter run --release``でインストールすれば、有線接続しなくてもどこでも使用可能です。)

ぜひインストールしてみてください！
（良ければリポジトリにスターをお願いいたします。）

ただし、インストールは自己責任でお願いいたします。

##まとめ##
本記事では、作成したクソアプリの紹介ののち、
余談としてAppleに怒られた話を致しました。

こういうトリックというか、ジョーク系のアプリは審査通らないんですね。
いい勉強になりました。

来年もさらなるクソアプリを作成しようと思いますので、楽しみにしていただけると幸いです。

以上、読んでいただきありがとうございました。