A beautiful, minimalistic note-taking application built with Kotlin and Jetpack Compose. Features encrypted local storage, Material 3 design, and gesture-based navigation.
- Language: Kotlin (Google's recommended language for Android development)
- UI Framework: Jetpack Compose with Material 3
- Database: Room with SQLCipher encryption
- Architecture: MVVM (ViewModel + Repository)
- Build System: Gradle
- Min SDK: API 24 (Android 7.0 Nougat)
- Target SDK: API 34 (Android 14)
- IDE: Android Studio (recommended)
- Secure: All notes encrypted at rest using SQLCipher
- Offline: Completely local, no internet connection required
- Minimalistic: Clean, distraction-free UI with Material 3 design
- Gesture Navigation: Triple-tap anywhere to toggle between note creation and note list
- Full CRUD: Create, read, update, and delete notes
- Timestamps: See when each note was created
Before you begin, ensure you have the following installed:
- Android Studio - Download from developer.android.com/studio
- Java Development Kit (JDK) - JDK 17 or 21 REQUIRED (JDK 25 is not yet supported by Gradle)
- On Arch Linux:
sudo pacman -S jdk21-openjdk && sudo archlinux-java set java-21-openjdk - See
JAVA_SETUP.mdfor detailed instructions
- On Arch Linux:
- Android SDK - Installed via Android Studio's SDK Manager
- An Android phone with USB debugging enabled
IMPORTANT: If you have Java 25 installed, you MUST switch to JDK 17 or 21 before building. See JAVA_SETUP.md for instructions.
- Launch Android Studio
- Select File → Open
- Navigate to this project directory (
HelloWorld) - Click OK to open the project
- Android Studio will automatically sync Gradle files and download dependencies (this may take a few minutes on first run)
If the Gradle wrapper JAR file is missing, Android Studio will prompt you to download it, or you can run:
./gradlew wrapperFollow these steps to connect your Android phone and run the app:
- Open Settings on your Android phone
- Scroll down and tap About phone (or About device)
- Find Build number (may be under Software information)
- Tap Build number 7 times rapidly
- You'll see a message saying "You are now a developer!"
- Go back to Settings
- Find and tap Developer options (usually under System or Advanced)
- Toggle Developer options ON
- Scroll down and enable USB debugging
- If prompted, tap OK to confirm
- Samsung: Install Samsung USB Drivers
- Google Pixel: Install Google USB Driver
- Other manufacturers: Check your phone manufacturer's website for USB drivers
- Usually no drivers needed, but you may need to configure udev rules
- Run:
sudo apt-get install android-tools-adb android-tools-fastboot(Debian/Ubuntu) - Or:
sudo pacman -S android-tools(Arch Linux)
- Usually works out of the box, no drivers needed
- Connect your Android phone to your computer using a USB cable
- On your phone, you may see a popup asking "Allow USB debugging?" - tap Allow (or OK)
- Check the box "Always allow from this computer" if you want to skip this prompt in the future
- Tap Allow
- In Android Studio, look at the bottom toolbar
- Click on the Device Manager tab (or go to View → Tool Windows → Device Manager)
- Your phone should appear in the list of devices
- Open a terminal/command prompt
- Navigate to your Android SDK platform-tools directory (usually
~/Android/Sdk/platform-toolson Linux/Mac, or%LOCALAPPDATA%\Android\Sdk\platform-toolson Windows) - Run:
adb devices - You should see your device listed, for example:
List of devices attached ABC123XYZ device
If you see "unauthorized", check your phone for the USB debugging authorization prompt.
- Make sure your phone is connected and visible in Device Manager
- In Android Studio, click the Run button (green play icon) in the toolbar
- Or press
Shift + F10(Windows/Linux) orCtrl + R(Mac) - Select your connected phone from the device list
- Click OK
- The app will build, install, and launch on your phone automatically
- Open a terminal in the project root directory
- Run:
(On Windows:
./gradlew installDebug
gradlew.bat installDebug) - The app will be installed on your connected device
- Launch it manually from your phone's app drawer, or run:
adb shell am start -n com.helloworld/.MainActivity
- Check USB cable: Use a data-capable USB cable (not charging-only)
- Try different USB port: Some USB ports may not work properly
- Restart ADB:
adb kill-server adb start-server adb devices
- Check USB connection mode: On your phone, when connected, pull down the notification shade and ensure it's set to "File Transfer" or "MTP" mode (not "Charging only")
- Re-enable USB debugging: Toggle USB debugging off and on again in Developer Options
- Check your phone screen for the USB debugging authorization prompt
- Tap Allow or OK
- Check "Always allow from this computer" to avoid future prompts
- Run
adb devicesagain to verify
-
Gradle sync failed:
- Go to File → Invalidate Caches / Restart in Android Studio
- Click Invalidate and Restart
-
SDK not found:
- Open File → Project Structure (or File → Settings → Appearance & Behavior → System Settings → Android SDK)
- Ensure Android SDK is properly configured
- Install required SDK platforms via SDK Manager
-
Kotlin version mismatch:
- The project uses Kotlin 1.9.20
- Android Studio should handle this automatically, but if issues occur, check
build.gradle.ktsfiles
- Check Logcat in Android Studio (bottom panel) for error messages
- Ensure your phone meets minimum requirements (Android 7.0 or higher)
- Try uninstalling and reinstalling the app:
adb uninstall com.helloworld ./gradlew installDebug
If you get "permission denied" errors for ADB:
-
Create udev rules file:
sudo nano /etc/udev/rules.d/51-android.rules
-
Add this line (replace
USERNAMEwith your username):SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev" -
Add your user to plugdev group:
sudo usermod -aG plugdev $USER -
Reload udev rules:
sudo udevadm control --reload-rules sudo udevadm trigger
-
Log out and log back in, or restart your computer
HelloWorld/
├── app/
│ ├── build.gradle.kts # App-level build configuration
│ ├── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ ├── java/com/helloworld/
│ │ │ └── MainActivity.kt
│ │ └── res/
│ │ ├── layout/
│ │ │ └── activity_main.xml
│ │ └── values/
│ │ ├── strings.xml
│ │ └── colors.xml
├── build.gradle.kts # Project-level build configuration
├── settings.gradle.kts # Project settings
└── README.md # This file
Now that you have Hello World running:
- Modify the app: Edit
MainActivity.ktoractivity_main.xmlto customize the UI - Add features: Learn about Activities, Fragments, and Android components
- Explore Kotlin: Learn more about Kotlin syntax and Android development
- Read documentation: Visit developer.android.com for tutorials and guides
This is a simple Hello World project for learning purposes.
Happy Coding! 🚀