2
1

【個人開発】PasswordBoxってアプリを作ったよって話

Posted at

個人開発でアプリ作ったので、紹介とかいろいろ語ります。
正直、技術的な話はあまりしません。

アプリの紹介

改めて、個人開発で iOS アプリケーションを作成しました。
名前は "PasswordBox" です。
名前に「パスワード」とある通り、Password Manager アプリです。
しかし、ただのパスワード管理アプリではなく、パスワードを生成してくれるアプリケーションとなっています。

アプリの詳細

このアプリは大きく分けて、3個の機能があります。

  • ロック画面:FaceIDでアプリのロックを解除します
  • パスワードの作成・編集
  • アプリの情報

とてもシンプルでチープなアプリだと思います。

ロック画面

このアプリではパスワードを扱う以上、セキュリティ性を高めるためにアプリを使用するにはパスコード等を使ってアプリを使う必要があります。
しかし、ログイン画面を1から使うのは大変だし、個人的にこのアプリで Firebase などを使ったログイン認証を作りたくなかったので、このアプリでは FaiceID を使っています。

FaceIDの使い方は、以前書いたこちらの記事をご参照ください:

パスワードの作成・編集

このアプリのメイン機能です。ホームの左上にある + ボタンからパスワードを追加することができます。

また、追加したらパスワードの一覧画面からパスワードを編集することができます。

編集できる内容は以下の通りです:

  • Password
  • タイトル
  • アイコン

アイコンについては、アイコン一覧から好きなアイコンを選択することができます。
また、パスワード自体は iCloud のキーチェーンに保存されます。アイコン、パスワードのタイトルについてはSwiftDataでユーザーの端末内に保管されます。

こだわったところ

パスワード生成

パスワードを自動生成する機能を搭載しています。
この機能は ChatGPT などの生成AIを使わず、ランダム関数を使って生成されます。そのため、一定の規則性で生成されることはありません。

パスワード生成機能では、パスワードに以下の特徴を持たせて生成することができます。

  • パスワードの長さ:1桁から100桁まで生成することができます
  • アルファベット・記号の有無:すべてOFFにすると数字のみのパスワードを生成できます

アルファベット・記号の有無を選択できるようにした理由は、パスワードの複雑さをユーザーが選べるようにしたかったからです。
パスワードは複雑にすればするほどセキュリティの難易度が上がります。しかし、それは逆にユーザーがパスワードを入力する際の煩わしさも生まれてしまいます。
他にも、パスワードによっては数字のみの入力を要求されることもあります。例えば、自転車のキーロックなど。
そこの問題を解決するためにパスワードの長さ、アルファベット・記号の有無を選択できるようにしました。

アイコン・タイトルの編集画面

iPhone で標準でインストールされているリマインダーアプリを参考に作ってみました。
パスワードの名前と関連するアイコンを追加することができます。
アイコンは、SFSymbolから取ってきています。

作った経緯

Password Manager アプリはこの世の中にごまんとあります。有名なのは 1Password でしょうか。
また、iOS18, iPadOS18 から、Apple純正のパスワードアプリが登場します。

これらのアプリでもパスワードの自動生成は行なってくれます。しかし、パスワードの長さや複雑性は固定となっています。
iPadOS 18 beta で試したところ、アルファベット・記号を含めた10文字ほどの長さのパスワードが生成されます。

私はここに、もう少しユーザーの自由度を与えてみてはどうかと思いこのアプリを作成しました。

最後に

このアプリの需要はとても少ないと思います。しかし、「企業が解決しにくい課題を解決する」というのも個人開発の良い面かなと思います。
今後、Appleのパスワードアプリがこのアプリの機能を追加してくれることを願っています。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1