AppStore: https://apps.apple.com/jp/app/dobermann/id6450659644
- パスワードを簡単に生成する
複雑なパスワードをワンタップで生成することができます。
また、
- パスワードの文字数を変更する
- 使用する文字の種類(大文字
A
、小文字a
、数字1
、記号@
)を変更する
など、自分好みに生成されるパスワードをカスタマイズできる機能も搭載しています。
![](https://private-user-images.githubusercontent.com/125545184/248358892-d83e3a15-6dcd-45fe-bba1-ac2212eecdfd.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1NTIyNDUsIm5iZiI6MTczOTU1MTk0NSwicGF0aCI6Ii8xMjU1NDUxODQvMjQ4MzU4ODkyLWQ4M2UzYTE1LTZkY2QtNDVmZS1iYmExLWFjMjIxMmVlY2RmZC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxNFQxNjUyMjVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0zMzkzNjI5NzI4MzlkZjljM2M2ZGQ4M2UzMWUxOTIwYjVjN2FjOTA0MDRkNTJhMTEyYjFhYjY2NGViOGU2NGNkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.6IPIqYH83yQQ9ygR5u6oIl8Z3QTZ56suRRPgsuqJNrU)
![](https://private-user-images.githubusercontent.com/125545184/248359179-2d5e47a2-c821-4079-9f99-56da1fb56250.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1NTIyNDUsIm5iZiI6MTczOTU1MTk0NSwicGF0aCI6Ii8xMjU1NDUxODQvMjQ4MzU5MTc5LTJkNWU0N2EyLWM4MjEtNDA3OS05Zjk5LTU2ZGExZmI1NjI1MC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxNFQxNjUyMjVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT02MGY2Y2U3NWQ1NjE1M2Y0NjJhZDlkNzk1ZjliNTM1YTVlM2E5ZDI5ZTE3ODExMmQ0MjU3NzkzNDcwMWU0YmUzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.y5HgXG7rHBuGT3v6P0C3F5q5mUiJL5Hz3U8LhMKXLr4)
![](https://private-user-images.githubusercontent.com/125545184/248359272-46a7d31a-e6dd-4c6e-aad2-0d333ab5b468.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1NTIyNDUsIm5iZiI6MTczOTU1MTk0NSwicGF0aCI6Ii8xMjU1NDUxODQvMjQ4MzU5MjcyLTQ2YTdkMzFhLWU2ZGQtNGM2ZS1hYWQyLTBkMzMzYWI1YjQ2OC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxNFQxNjUyMjVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0wZTljNzUyZjM3ZTRlMzQzNTI4ZjkzYjJhZTNjZDFlMGI2ZjJlYzBkZWMzNGQ3NDAwYWYwM2E3M2NhNDZkZDQ1JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.86zXA0xdEK2U8eOfPEujALJr_NVacHnTQsD4aznJDlY)
![](https://private-user-images.githubusercontent.com/125545184/248359396-eef19a3b-a873-4ce8-9a10-55a19a685e5f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1NTIyNDUsIm5iZiI6MTczOTU1MTk0NSwicGF0aCI6Ii8xMjU1NDUxODQvMjQ4MzU5Mzk2LWVlZjE5YTNiLWE4NzMtNGNlOC05YTEwLTU1YTE5YTY4NWU1Zi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxNFQxNjUyMjVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jNTJkZjY4YTQ0Y2ZlMjczOTgxYzliMDQ0OTVkOTA1YTk0Mzc0N2MxMDgxZTI2N2FkMzkzM2Y1MjQ3ZjgwNGIxJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.7q4eHgY07HkAfcs2DUiQnVPjb5vEuaTHoReAB3Vtmwk)
![](https://private-user-images.githubusercontent.com/125545184/248359503-b55ec2af-6c18-47aa-abaa-672da4b54945.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1NTIyNDUsIm5iZiI6MTczOTU1MTk0NSwicGF0aCI6Ii8xMjU1NDUxODQvMjQ4MzU5NTAzLWI1NWVjMmFmLTZjMTgtNDdhYS1hYmFhLTY3MmRhNGI1NDk0NS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxNFQxNjUyMjVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1kN2IyMTVjOGQ0MDk1ZDYyODBjYTYxYmY1YzY3N2EyOGE4YzhkMWU3MDg1OWVhOTA3Njk0NTdjNDI1ZjFmODVmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.3RUWYcjm2vVNfgKOLEz7JyfP0oSbUz5DBQqQO4odSC8)
昔は、どのサイトでも共通のパスワードを使っていました。
しかしやがて、「共通パスワードはセキュリティ的に非常に良くない」という問題意識を持ち始めました。
ちょうどその頃は、大学生になり、Swiftを用いたiOSアプリ開発を始めようと思い立った頃でした。
そこで、「パスワード生成アプリ」という題材であれば、簡単すぎず、難しすぎることもないと思い、初めてのアプリとして製作することにしました。
- 約2ヶ月
- Swift
- UIKit
- 紛らわしい文字をパスワードに含まない設定を追加しました。
- シンプルに使えるよう、UI/UXを洗練しました。
- パスワードを生成する
- 生成されたパスワードをコピーする
- 生成するパスワードの文字数を変更する
- パスワードに使用する文字の種類(大文字
A
、小文字a
、数字1
、記号@
)を変更する - 紛らわしい文字はパスワードに含めない
より多くの人にアプリを使ってもらえるように、ローカライズを行いました。(対応言語:日本語・英語)
パスワードの文字数をワンタップで変更できるように、簡易設定を設けました。
また、簡易設定の値以外の文字数を指定したい場合に対応できるよう、Stepperで値を指定することができる機能も用意しました。
パスワードをコピーした際に触覚フィードバックを用いることで、「コピーをした」ということが伝わりやすいように工夫しました。