2022-11-22 17:19:47 +03:00
2022-11-22 17:19:47 +03:00
2022-11-22 17:19:47 +03:00
2022-11-22 17:19:47 +03:00
2022-11-22 17:19:47 +03:00
2022-11-22 17:19:47 +03:00
2022-11-22 17:19:47 +03:00
2024-01-04 14:00:33 +00:00
2022-11-22 17:19:47 +03:00

Практическая работа Expense Tracker

В данном практическом задании предлагается дописать существующий проект-заготовку Android приложения для контроля личных финансов.

Советуем сначала скачать шаблон-заготовку проекта и открыть проект в Android Studio или IntelliJ IDEA.

Измените код существующих классов и интерфейсов, дополните разметку, ресурсы и манифест, чтобы приложение отвечало следущим требованиям:

  1. При запуске приложения (MainActivity стартовая активность) показывается:
    пустой список RecyclerView (@id/ef_expenses_rv),
    кнопка с возможностью добавить новую операцию (@id/add_fab)
    текстовое поле @id/ef_current_balance_text. В @id/ef_current_balance_text отображается текущее значение баланса пользователя (сумма всех операций: доходы−расходы) с точностью до одного знака после точки. Это значение может быть отрицательным.
  2. При нажатии на элемент @id/add_fab появляется диалоговое окно с @id/type_spinner, @id/expense_amount_edit_text и @id/add_button.
  3. Элемент @id/type_spinner позволяет выбрать одну из двух альтернатив (доход или расход), первый пункт выпадающего списка содержит строку «Income» (без кавычек), второй пункт «Expenses».
  4. Пользователь вводит натуральное число в @id/expense_amount_edit_text. Гарантируется, что введённое пользователем число не превышает 10^{4}.
  5. После нажатия на @id/add_button диалоговое окно закрывается, при этом очередная операция (доход или расход) добавляется в конец списка. В @id/ef_current_balance_text обновляется текущее значение баланса пользователя.
  6. Каждый элемент списка содержит в себе информацию о типе операции («Income»/«Expenses»), дате добавления информации о ней в приложение (в формате «dd.MM.yyyy») и её сумму, это отображается в текстовых полях с идентификаторами @id/expense_type_text, @id/expense_date_text и @id/expense_amount_text соответственно.
  7. При длительном нажатии на любой элемент списка появляется контекстное меню, позволяющее удалить этот элемент (Delete) или дублировать его (Duplicate). При выборе опции с текстом «Duplicate» в конец списка помещается элемент с совпадающими значениями полей.
  8. При повороте экрана устройства данные должны сохраняться.

Рекомендуется использовать Android Studio Dolphin 2021.3.1. В проекте gradle version 7.5, gradle plugin version 7.3.0.

Сдать в систему тестирования необходимо zip архив, в корневом каталоге которого располагается дополненный проект Android Studio/IntelliJ IDEA. После загрузки zip архива приложение будет запущено в системе автоматического тестирования для проверки на соответствие техническому заданию.

Допускается использовать язык Java и/или Kotlin. При сборке проекта вcе изменения в файле build.gradle будут проигнорированы будут использованы зависимости только из шаблона-заготовки; не изменяйте пакет приложения.

Тестирование одной посылки может длиться до 5 минут, после завершения тестирования будет доступна информация об общем числе тестов и числе пройденных тестов. Количество посылок в систему не ограничено. Штраф за повторные попытки не начисляется.

Description
No description provided
Readme 122 KiB
Languages
Java 64.8%
Kotlin 35.2%