iOS - https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=1425466484&mt=8
I originally implemented this in Python a year ago but when I wanted to make it into an app I found it very difficult to get Python running on Android so I rewrote it in Kotlin/React. I found Kotlin to be a breath of fresh air. Check out this video if you are interested: https://www.youtube.com/watch?v=FDOECr-sT6U. For me refactoring in Kotlin was the easiest I've ever had it in my life and I was surprised by how few transpiler issues I had. I've used other transpiled languages and I'm used to getting into situations where there are very difficult-to-track-down bugs but I only had a few issues related to null in Javascript while working on this (Kotlin assumed a value could not be null but it was in some instances).
Here are some statistics:
Android app - 146 lines of Kotlin (basically just an embedded webview)
iOS app - 226 lines of Swift (basically just an embedded webview)
Game and AI:
Total - 1,628 lines of Kotlin
MCTS library - 195 lines of Kotlin
Game logic - 452 lines of Kotlin
Rules page - 109 lines of React/Kotlin
Game react components - 288 lines of React/Kotlin
Game logic tests - 183 lines of Kotlin
App logic - 273 lines of React/Kotlin
... etc
I wrote the AI for this using a modified form of MCTS (since full-on MCTS on Javascript would melt phones).
Please let me know what you think! I know it needs to scale better (it must look horrible on iPads) but I'm horrible at UIs.