Apps for technical assesment Mobile Developer PhinCon.
-
Pokemon List Page
- Primary Scenario
- Execute “Get List Pokemon” from PokeAPI
- Use Paging to load items
- Show Loading using shimmer while waiting response from the API
- Show list Pokemon
- Negative Scenario
- Invalid Data or (4xx - 5xx)
- Show toast error
- No Connectivity
- Show toast error
- Invalid Data or (4xx - 5xx)
- Primary Scenario
-
Pokemon Detail
- Primary Scenario
- Execute "Get Pokemon Details" from PokeAPI
- Show button catch pokemon
- Negative Scenario
- Invalid Data or (4xx - 5xx)
- Show toast error
- No Connectivity
- Show toast error
- Invalid Data or (4xx - 5xx)
- Primary Scenario
-
Catch Pokemon
- Primary Scenario (Success Catch)
- User pressed button catch pokemon
- System try to catch pokemon with probability 50%
- System delay 3000 while animating the pokeball (optional)
- Show bottom sheet success and text input nickname pokemon.
- Put the pokemon to Local Database.
- Negative Scenario (Failed Catch)
- Show toast failed catch
- Show failed to catch pokemon animation (optional)
- Primary Scenario (Success Catch)
-
My Pokemon List (Catches Pokemon)
- Primary Scenario
- Execute "Get Pokemon Details" from PokeAPI
- Use Paging to load items
- Show list Pokemon
- Negative Scenario
- Empty Pokemon
- Display Empty List Placeholder
- Show toast error
- Empty Pokemon
- Primary Scenario
-
Release pokemon
- Primary Scenario
- User pressed release pokemon
- Delete pokemon from Local Database
- Update my pokemon list.
- Negative Scenario
- Empty Pokemon
- Invalid Data or (4xx - 5xx)
- Show toast error
- Primary Scenario
- Minimum Android SDK level 24
- Kotlin
based, Coroutines
- Flow for asynchronous.
- Architecture
- MVVM Design Pattern
- Repository Pattern Implementation
- Android Architecture Components (Data - Domain - Presentation)
- Jetpack
- Lifecycle: Observe Android lifecycles and handle UI states upon the lifecycle changes.
- ViewModel: Manages UI-related data holder and lifecycle aware. Allows data to survive configuration changes such as screen rotations.
- ViewBinding: Binds UI components in your layouts to data sources in your app using a declarative format rather than programmatically. database access.
- Dagger-Hilt: for dependency injection.)
- Retrofit2 & OkHttp3: Construct the REST APIs, and interface to handle network payload for Android.
- Timber: A logger with a small, extensible API.