Задача: Реализовать приложение "Менеджер паролей".
Необходимо создать два экрана:
- Экран списка сайтов с иконками каждого сайта;
- Экран добавления/редактирования нового сайта.
Требования:
- Иконки сайтов должны подтягиваться из интернета и кешироваться на диске.
- Пароли должны шифроваться и должен быть мастер пароль. Для доступа к паролям можно использовать либо мастер-пароль, либо отпечаток пальца.
- Код приложения должен быть на Kotlin или Java, используя View или Compose.
Комментарии:
- Реализовал приложение на Single Activity
- Для навигации между фрагментами использовал Google Navigation
- Шифрование реализовано с помощью EncryptedSharedPreference,
- С помощью Room реализовано хранение списка имен сайтов,
- Загрузка из сети на Retrofit2,
- Для получения иконок использовал API https://favicone.com/
- DI с помощью Dagger
- Мастер пароль и отпечаток пальца с помощью BiometricManager
- Кастом вью - реализовал LoadableButton, чтобы отоброжать состояние запросов