Skip to content
iOS & Android Kotlin MP app. Guess the Cat & Dog breeds
Kotlin Swift Java Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci
android
common
gradle/wrapper
iOS/NameGame
jvmcli
.gitignore
README.md
build.gradle
gradle.properties
gradlew
gradlew.bat
settings.gradle

README.md

NameGame

Android Build & Tests

CircleCI

iOS Build & Tests__

Bitrise

A Kotlin multiplatform (Android/iOS) name game. Player is shown a picture of a cat or dog and must guess the name. User can select from Cats, Dogs. The app utilizes the following:

Android

Building and testing the Android App can be completed with: ./gradlew build or install with: ./gradle androidInstall or opened and ran in Android Studio

iOS

The iOS workspace in /iOS/NameGame can be open and ran from xCode or AppCode. A run script has been added to the build phase that will compile the common code into a framework which can be used for the project.

Architecture

More to come

"Dumb Views"

Views in this arch are truely 'dumb' - they should contain nearly no logic. They are responsible for rendering the view based on the ViewState given to them by the presenter. They are implemented for each platform and utilize native UI SDKs and libs for each platform. Android uses Fragments and iOS uses UIViewControllers.

Presenters

more to come

arch diagram

Async Actions

In redux world there are many ways to handle creation of async actions. Thunks have been used in this app. NetworkThunks and TimerThunks both use coroutines to launch concurrent operations that dispatch actions.

Navigation

In this app, Navigation is considered a side effect of the AppState. The NavigationMiddleware handles changing screens based on dispatched actions. The NavigationMiddleware takes an implementation of Navigator which is implemeneted for each platform.

You can’t perform that action at this time.