A notes app that saves images and GPS data in addition to text entries.
Android app with room database.
The database contains a list of entries with the following:
- description
- photo
- location
It is possible to create, edit and delete entries in the app.
There are no specifications for the GUI.
- App starts and displays GUI
- App displays list of database entries
- Database entries can be managed (insert, update, delete)
- App saves the location (latitude, longitude)
- App saves images in the database
- Click on database entry to open detailed view of the respective entry
- App shortcut for add a new note
- Send simple data to other apps with Android Sharesheet
- The stored location can displayed on GoogleMaps
- "Swipe to delete"
- Clone the repository.
- Open the whole project in Android Studio.
- Replace YOUR_API_KEY with your own API key.
- Sync & Run app configuration.
The Secrets Gradle plug-in was used to store the API key for Google Maps. It reads secrets such as API keys from attribute files that are not checked into a version management system.
To be able to use the project, you must store your own Google Maps API key.
Open the secrets.properties file in the top-level directory of your project. Note: If the secrets.properties file does not exist, create it in the same folder as the local.properties file.
Insert the following code, replacing YOUR_API_KEY with your own API key: MAPS_API_KEY=YOUR_API_KEY
Deloped with Android Studio Hedgehog. Tested with emulated Pixel 5 Android 14.0 ("UpsideDownCake") and a live device.
Properties avd.ini.displayname Pixel 5 API 34 avd.ini.encoding UTF-8 AvdId Pixel_5_API_34 disk.dataPartition.size 6442450944
minSdk = 24 targetSdk = 34 compileSdk = 34
- com.android.application: This plugin is used to create the Android app.
- org.jetbrains.kotlin.android: This is the Kotlin plugin for Android.
- kotlin-kapt: This plugin is responsible for the Kotlin Annotation Processing Tool.
- com.google.android.libraries.mapsplatform.secrets-gradle-plugin: Responsible for handling API keys and secret data.
- androidx.room:room-ktx:2.5.2: Android Room Database
- androidx.room:room-compiler:2.5.2: Annotation Processor for Room
- androidx.core:core-ktx:1.12.0: Kotlin Addons
- androidx.appcompat:appcompat:1.6.1: GUI
- com.google.android.material:material:1.11.0: Material Design Components Library from Google
- androidx.constraintlayout:constraintlayout:2.1.4: Layout
- com.google.android.gms:play-services-maps:18.0.2: Google Maps Integration
- "com.google.android.gms:play-services-location:21.0.1" Geo Location Services
- junit:junit:4.13.2: Test Framework
- androidx.test.ext:junit:1.1.5: AndroidX Test Framework for JUnit
- androidx.test.espresso:espresso-core:3.5.1: Framework for UI Tests
Edwin Pichler, Erik Handler, Michael Tausch
Images used in the screenshots to illustrate the image upload:
Image by kstudio on Freepik Image by upklyak on Freepik Image by rawpixel.com on Freepik