Jeju Road Application is created for the convenience of travelers on Jeju Island.
Implementation based on MVVM architecture and Clean architecture. Also, Fetch data from the network via repository pattern.
Creating an Android project dependency graph makes it easier to identify project dependencies.
It was written with reference to the JakeWharton project file.
- IDE : Android Studio
- Minimum SDK level 23
- Language : Kotlin based + Transfer build configuration from Groovy to KTS + Coroutines for asynchronous.
- Jetpack AAC
- LiveData : Observable data holder class.
- LifeCycle : Use lifecycle-aware components to perform actions in response to lifecycle events such as activities and fragments(viewmodel, livedata).
- ViewModel : Manage data holder classes related to UI and performs asynchronous operations using coroutines for optimal processing.
- Test
- JUnit : Simple framework to write repeatable tests. It is an instance of the xUnit architecture for unit testing frameworks.
- Espresso : Use Espresso to write concise, beautiful, and reliable Android UI tests.
- Mockito : Java mocking framework for unit testing.
- Roboletric : Robolectric is a framework that brings fast and reliable unit tests to Android. Tests run inside the JVM on your workstation in seconds.
- Koin : Dependency injection.
- Retrofit2 : REST APIs.
- OkHttp3 : Implementing interceptor, logging web server.
- Glide : Image loader.
- Gson : Java library that can be used to convert Java Objects into their JSON representation.
- SwipeRefreshLayout : Use to manually refresh the list of restaurants.
- Shimmer : Use to implement skeleton loading screen
Jeju Road is not using the local database yet.
Refer to the API document provided by the backend team.
Test Method Convention
given(option)_when_expect (korea language & when using spaces, use _ )
ex) 예기치_못한_에러가_발생했을때_에러페이지가_잘_보여지는가에_대한_테스트