Android recruitment task made for Fourthwall.
- List of images
- Shown as a grid list
- Number of columns depends on screen size and orientation
- Image details
- Full image
- Author
- Share button to share image with other apps
- Loading state
- Error state
- MVI pattern
- UI created with Jetpack Compose
- DI done with Hilt
- API calls made with Retrofit
- JSON parse made with Moshi
- Images are downloaded from Lorem Picsum API
- Images loaded with Coil
- Used Gradle Kotlin DSL
- Included Unit Tests
data
package contains:- entities
- local and remote data sources
- mappers
- repositories
domain
package contains:- models
- use cases
ui
package contains:- details ui and view model
- gallery ui and view model
- Create different build variants or extract url for different environments
- Extract
data
,domain
,ui
packages as separate modules
You can build a project manually from Android Studio or use the following gradle command:
./gradlew installDebug
You can run unit tests manually from Android Studio or use the following gradle command:
./gradlew testDebugUnitTest
Copyright 2021 Wojciech Kryg
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.