Timer Test Controller란 시중으로 출시되기 전 Exam Timer의 기능을 조종한다. 다양한 테스트와 시간을 단축하는 목적을 가진다. 해당 프로젝트가 시간 측정을 중점적으로 하는 APP을 개발하기 때문에 테스트 시간이 많이 소요될 것이 분명하여 가장 먼저 개발한다.
ADB 명령어를 담은 batch file을 통해 Interface를 지원한다. Broadcast를 수신받아 하나의 sequence를 진행하거나, batch file에 sequence를 구현한다.
Time Control
DB Contol
Layout Control
가능한 모든 외부 인터페이스에 Tester Interface를 달아 반응하게 구현한다. 이를 위해 DI Library를 통해 모두 자동으로 주입하는 시스템을 설계한다.
사진과 같이 Test는 Module로 설계하여 테스트가 필요한 모든 곳에 의존성을 주입할 예정이다. application 단에 생성해서 추후에 필요 시 곧 바로 주입할 수도 있다. App이 켜지는 동시에 테스트를 진행할 수 있어야 하며, App이 꺼지는 과정까지 모든 항목에 대해 간섭할 수 있어야 한다.
다음으로 Timer와 Repo는 ViewModel과 같이 생성된다. ViewModel에서 생성되는 이유는 이 둘의 로직이 App 단 까지 필요할 경우가 없고, 모두 View System과 밀접하게 관련되었기 때문이다. 각각 activity의 lifecycle과 context를 받아 구현될 것이다.
모든 기능 구현의 시작을 Tester에서 시작하며 진행하여 확정적으로 정해진 계획은 없다. 다만 Hilt 적용과 ADB Test Iterface, timer, repo는 모두 개발 시작하면서 구성하고 갈 예정이다.