クソアプリアドカレで実用的なスターを送れるアプリを作ってしまった
クソアプリカレンダーの15日目の記事です。ですが、作りたいクソアプリがうまく思いつかなかったので実用的なiOSアプリを作ることにしました。僕にはクソアプリを作る才能がなかったようです
自己紹介
zennに初めて投稿するのもあり軽く自己紹介します。bannzaiです。 github スター乞食
でググると出てきます。ググらなくてもこのワードだけで私の素性の9割の説明が終わったので本章に行きましょう。1割が気になる方のためにTwitterのプロフィールのリンク置いておきます。twitter
アイディア
作りたいクソアプリが思いつかなかったので自分が欲しい小さなアプリを作ることにしました。そして、「特定のGitHubアカウント のリポジトリ一覧が見れて、そこからスターを送れるアプリがあると良いのでは」と考えが行きつきました。いつもお世話になっていたり、またPublicな場所にソースコードを置いてくれている方には感謝の意を伝えたいですしね。また公開している人にとってはスターは励みになる方も多いと思います。スターって素晴らしいですね
よし、「特定のGitHubアカウント のリポジトリ一覧が見れて、そこからスターを送れるアプリ」を作るぞ。と心に誓いました。
時間が足りませんでした
師ですら忙しすぎて走り回る。師走ってそんな感じの意味だったと思います(調べてないです)。そんな忙しい時期だったので「特定のGitHubアカウント のリポジトリ一覧が見れて、そこからスターを送れるアプリ」を作り切るのが難しいことに気づきました。なので要件を少し減らすことにしました
「bannzai のGitHubアカウントのリポジトリ一覧が見れて、そこからスターを送れるようなアプリ」
これなら未完成なアプリの操作が bannzai にのみ行われるので影響も少ないです。bannzaiにのみスターがつくことになります。僕にだけスターが集まります。他の人に影響がないので開発も公開も安心して行えますね。よかったよかった
本題
クソアプリが思いつきませんでした。時間が足りなくて機能要件絞りました。の2点の予防線を貼ったのでここからが本題のアプリ紹介です
まず起動時にPush通知の許可のアラートが出ます。これを許可するとbannzaiがスターが欲しいリポジトリを公開したときに通知がいきます。これでいち早くスターを送ることができますね
許可をしたら今度はGitHubアカウントでログインします。スターを送る準備ができてワクワクしますね
ログインしたらbannzaiがGitHubに公開しているリポジトリ一覧が開きます。これでbannzaiにスターを送れます。スターって素晴らしいですね
各種リポジトリ一覧が見れてリポジトリの枠の右端には⭐️のボタンがあることが確認できます。
グレーの色の⭐️を押すとスターが送られて色がつきます。黄色になっている⭐️を押した場合は アプリを終了させています 。⭐️を取り消すなんて非人道的な操作を普通なら絶対行わないはずです。なので fatalError
の扱いにしてあります。みなさんスターを外すなんてことはやめましょう
上の動画を見て右端の⭐️ボタンが何やら押して欲しそうなアニメーションをしていることに気づいたでしょうか。試しに押してみましょう
なんとこのアプリの目玉機能。すべてのリポジトリにスターを送ることができます。超絶便利ですね。えー?そんな便利な機能作れたの?って疑問に思う方は是非押してみてください。リポジトリ一覧に順にスターがつく光景が目撃できます。スターに灯りが灯ると嬉しい気持ちになりますね
ここでのこだわりポイントがもう一つあってキャンセルの文言をGitHubのスターをあげないという選択が受け手にとって「悲しなせる」ことになります。その気持ちを反映させて「bannzaiを悲しませる」としています。本当にそれがユーザーにとって望んでいたことなのか?と強いメッセージにすることで一度立ち止まらせることができます。やはりスターを送るって素晴らしいですね
ここまでして「bannzaiを悲しませる」を選んだ人に起きる出来事は制裁です。何が起きるかというとユーザーがdeleteされます。そして exit(0) します。痛みは分かち合うものですからね⭐️
アプリを使いたい場合は
現時点でもbannzaiって人にスターをあげることができるので、この素晴らしいアプリを使いたいという方も多くいらっしゃると思います。そんなあなたのためにTestFlightのPublic Linkを用意しました...
と言いたいですが、まだ審査が始まっていないので通り次第この部分に貼ります。乞うご期待
アイコン
TestFlight の申請でもアプリのアイコンの設定が必要です。そしてこのクソ素晴らしいアプリにはアイコンが必要だと思い用意しました。とても素敵ですね。スターが欲しい気持ちがとても伝わってきます。いいアイコンですね。07Morimiにお願いして描いてもらいました
技術的なこと
まとめ前に技術的なことを軽く箇条書き
- SwiftUIで書いてます
- GitHub APIのv4使っています。GraphQLはいいぞ
- Apollo iOSをAPIクライアントとして使っています
- async/await で非同期処理を書いています
- Firebase
- Auth -> GitHubログインにしようしてます
- Messaging -> プッシュ通知にしようしてます
まとめ
GitHubにソースコードは公開してます。アプリの名前の由来は「星欲しい」です
GitHubのリポジトリに上がっているということはスターを送れるということですね??? 気に入ってくれた方は是非 スターください 🌟
おしまい\(^o^)/
Discussion