Loading repository data…
Loading repository data…
muhammad-fiaz / repository
Calculator is your essential tool for all your mathematical needs. With a clean and user-friendly interface, this app is designed to make both simple and complex calculations easy and efficient. Whether you're a student, professional, or just need quick calculations on the go, Calculator provides accurate results every time. Powered by Flutter.
Calculator is your essential tool for all your mathematical needs. With a clean and user-friendly interface, this app is designed to make both simple and complex calculations easy and efficient. Whether you're a student, professional, or just need quick calculations on the go, Calculator provides accurate results every time. Powered by Flutter, it offers a smooth and reliable experience across all your devices. Simplify your math with Calculator!
[!NOTE] Project Update: This app has been remade as a native Android alternative with Jetpack Compose and Material Design 3. Check out the new repository here: calculator-android.
(1+1)*2/2+(8*8)Clone the repository
git clone https://github.com/muhammad-fiaz/Calculator-Flutter.git
cd Calculator-Flutter
Install dependencies
flutter pub get
Configure Firebase (optional)
google-services.json → android/app/GoogleService-Info.plist → ios/Runner/Run the app
# Debug mode
flutter run
# Release mode (requires signing config)
flutter run --release
# Check Android setup
flutter doctor --android-licenses
# Build APK
flutter build apk --release
# Build App Bundle (recommended for Play Store)
flutter build appbundle --release
# Install iOS dependencies
cd ios && pod install && cd ..
# Build for iOS
flutter build ios --release
# Enable web support
flutter config --enable-web
# Run on web
flutter run -d chrome
# Build for web
flutter build web --release
# Windows
flutter config --enable-windows-desktop
flutter run -d windows
# macOS
flutter config --enable-macos-desktop
flutter run -d macos
# Linux
flutter config --enable-linux-desktop
flutter run -d linux
+, -, ×, ÷(, )sin, cos, tan (supports both radians and degrees)ln (natural log), log (base 10)x², x³, xʸ, √xx! (factorial), 1/x (reciprocal)π (pi), e (Euler's number)(2 + 3) × 4 = 20
sin(30°) = 0.5
log(100) = 2
2³ + √16 = 12
5! = 120
lib/
├── main.dart # App entry point
├── providers/ # State management
│ ├── calculator_provider.dart
│ ├── history_provider.dart
│ └── theme_provider.dart
├── screens/ # UI screens
│ ├── main_screen.dart
│ ├── calculator_screen.dart
│ ├── history_screen.dart
│ └── settings_screen.dart
└── widgets/ # Reusable components
├── calculator_button.dart
└── calculator_display.dart
The project includes pre-configured Android signing for release builds:
android/app/upload-keystore.jksandroid/app/signing.properties (gitignored for security)android/app/build.gradle.ktsThe signing configuration is already set up. For custom keystores:
Generate new keystore:
cd android/app
keytool -genkey -v -keystore your-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias your-alias
Update signing.properties:
storeFile=your-keystore.jks
storePassword=your-store-password
keyAlias=your-alias
keyPassword=your-key-password
Update build.gradle.kts if needed (already configured)
# Debug builds
flutter build apk # Android APK (debug)
flutter build ios --debug # iOS (debug)
flutter build web # Web (debug)
# Release builds
flutter build apk --release # Android APK (signed)
flutter build appbundle --release # Android App Bundle (recommended)
flutter build ios --release # iOS (signed)
flutter build web --release # Web (production)
# Platform-specific
flutter build windows --release # Windows
flutter build macos --release # macOS
flutter build linux --release # Linux
Build App Bundle:
flutter build appbundle --release
Upload to Play Console:
build/app/outputs/bundle/release/app-release.aabConfigure Play Integrity (already integrated):
Build for iOS:
flutter build ios --release
Archive in Xcode:
ios/Runner.xcworkspaceBuild web:
flutter build web --release
Deploy to hosting:
firebase deploy --only hosting
# or upload build/web contents to your web server
import 'package:calculator/play_integrity_service.dart';
// Check device integrity
bool isTrustworthy = await PlayIntegrityService.isDeviceTrustworthy();
// Get detailed integrity information
String details = await PlayIntegrityService.getIntegrityDetails();
The app uses flutter_launcher_icons to generate launcher icons for all platforms from a single source image. The current configuration in pubspec.yaml:
flutter_launcher_icons:
android: "launcher_icon"
ios: true
image_path: "assets/images/logo.png"
min_sdk_android: 21
web:
generate: true
image_path: "assets/images/logo-web.png"
background_color: "#ffffff"
theme_color: "#ffffff"
windows:
generate: true
image_path: "assets/images/logo.ico"
icon_size: 48
macos:
generate: true
image_path: "assets/images/