ClickMe is a simple game, designed for Android platforms, composed of successive levels, where the player must on a button, that becomes progressively hidden and harder to find, in really different ways.
ClickMe is entirely developed in Kotlin, following the Jetpack Compose framework, on Android Studio.
This was developed as part of a project for the Android Studio course at the University of Québec at Chicoutimi.
The application is available in :
- English
- French
- Spanish
- Portuguese
- Czech
This project will probably not undergo any further development, except if we magically find some interest in it or find some particularly interesting feature to add.
But feel free to contribute to it, if you find it interesting. No particular contribution guidelines are set, but please respect the Kotlin code style and the Jetpack Compose framework.
This project is under the MIT licence. You can find the full licence in the LICENCE
file.
You will be able to download it on the Android Playstore soon.
In the mean time, you can build it yourself by cloning this repository and opening it in Android Studio. To do the latter, in Android Studio, go to File > Open
them select the build.gradle.kts
to open, to ensure that Android Studio knows where to find the build rules.
Here is the important project structure, stripped from the test and build files :
.
└── ClickMe
├── app
│ └── src
│ └── main
│ ├── java
│ │ └── com
│ │ └── progmobile
│ │ └── clickme
│ │ ├── data
│ │ └── ui
│ │ ├── levels
│ │ └── theme
│ └── res
│ ├── drawable
│ ├── layout
│ ├── mipmap-anydpi-v26
│ ├── mipmap-hdpi
│ ├── mipmap-mdpi
│ ├── mipmap-xhdpi
│ ├── mipmap-xxhdpi
│ ├── mipmap-xxxhdpi
│ ├── raw
│ ├── values
│ ├── values-b+cz+CZ
│ ├── values-b+es+ES
│ ├── values-b+fr+FR
│ ├── values-b+pt+PT
│ └── xml
└── gradle
└── wrapper
Fair warning : As a first project in Jetpack Compose, the development of this project was a bit chaotic. Consequently, the code is not as clean as it should be, and you will have to use the Go to declaration or usage
feature of Android Studio a lot.
Buttons : This project uses two types of button composables :
- One in
BottomBar.kt
for the bottom bar, - One in
LevelButtons.kt
for the buttons inside the levels and on the home page.
Consequently, each button has its own implementation of the haptic and sound feedback.
Levels : Each level is a composable in the levels
package. They are all in the DataSource.kt
file, and are called by the HomePanel.kt
file.
MainActivity : The MainActivity.kt
file is the main activity of the application. It deals with :
- The permissions
- The media player for the music
- The Datastore for the :
- Music preference
- Sound preference
- Language preference
- Last level unlocked
This project was developed by :
With the thorough help and contribution of Damien