Fully offline Android calculator app for power users with variable support, syntax highlighting, file-based sessions, and more.
- Variable Support: Define variables and use them in calculations
a = 100 b = 200 total = a + b # 300 - Percentage Calculations: Natural percentage syntax
20% of 50000 # 10000 15% off 1000 # 850 50000 + 10% # 55000 50000 - 5% # 47500 - Comments: Add notes with
#symbolprice = 1000 # base price tax = 18% of price # 180 - Mathematical Functions: Built-in support for common math functions (see exp4j documentation for more details)
sqrt(16) # 4 sqrt 16 # 4 sin(pi/2) # 1 log10(1000) # 3 pow(2, 8) # 256 abs(-42) # 42 # Calculate circle area radius = 5 area = pi() * pow(radius, 2) # 78.54 # Convert degrees to radians and calculate sine degrees = 45 radians = degrees * pi / 180 result = sin(radians) # 0.71 # Exponential growth principal = 1000 rate = 0.05 time = 10 amount = principal * exp(rate * time) # 1648.72
- Syntax Highlighting: Color-coded variables, numbers, operators, and comments
- Auto-completion: Smart variable suggestions as you type
- Line Numbers: Easy reference and navigation
- Multiple Files: Create and manage separate calculation files
- Auto-save: Changes are saved automatically
- Pin Files: Keep important files at the top (max 10 pinned files)
- Duplicate Files: Create a copy of a file with a new name
- Backups: Automatically or manually backup your files to app storage or a custom folder
- Restore from backups: Restore your files from backups
- Copy with Results: Copy file content with calculated results to clipboard
- Offline: Works without internet
- Undo/Redo: Up to 30 steps per file
- Dark/Light Theme: System, dark, or light mode
- Real-time Results: See calculations update as you type
Submission in progress - will be available soon!
You need to install Obtainium first on your Android device.
- Go to the Releases page
- Download the latest APK file
- Transfer to your Android device
- Enable "Install from Unknown Sources" if prompted
- Open the APK and install
- Start calculating!
-
Clone the repository:
git clone https://github.com/vishaltelangre/NerdCalci.git cd nerdcalci -
Open the project in Android Studio
-
Build and run on your device or emulator
- Kotlin - Primary programming language
- Jetpack Compose - Modern UI toolkit
- Room Database - Local data persistence
- Material Design 3 - UI components and theming
- exp4j - Mathematical expression evaluation
- Fira Code - Monospace font with ligatures
Run all unit tests:
./gradlew :app:testDebugUnitTestRun specific test class:
./gradlew :app:testDebugUnitTest --tests "com.vishaltelangre.nerdcalci.core.MathEngineTest"After running tests, view the HTML report:
open app/build/reports/tests/testDebugUnitTest/index.htmlAutomatically generate all required app icon sizes from a single source image:
./scripts/generate-icons.sh ~/Downloads/app-icon.pngThis creates:
- Android mipmap icons (mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi)
- Fastlane metadata icon
- Both regular and round launcher icons
Requirements:
- Source image: PNG, minimum 512x512 (recommended: 2048x2048)
- Square aspect ratio (1:1)
- macOS:
sips(built-in) or ImageMagick
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.









