Edit • Enhance • Save • Share • Test
AI Photo Editor is a native Android application developed using Kotlin that provides users with an intuitive platform for editing and enhancing images directly on their mobile devices.
The application combines modern Android development practices with GPU-accelerated image processing to deliver a smooth and responsive editing experience. Users can upload images from the gallery, apply filters, adjust brightness, rotate or flip images, save edited photos, and share them instantly.
To ensure reliability and maintainability, the project also includes automated testing using JUnit and Espresso, demonstrating software quality assurance practices alongside application development.
- Develop a modern Android application using Kotlin.
- Implement real-time image editing features.
- Build a clean and user-friendly interface.
- Manage user profiles securely.
- Apply Android development best practices.
- Validate application functionality through automated testing.
- User Registration
- User Login
- User Profile Management
- Upload Profile Picture
- Display User Information
- Account Switching
- Persistent Login using SharedPreferences
- Select Images from Gallery
- Runtime Permission Handling
- Android Activity Result API
- Efficient Bitmap Loading
- Rotate Image
- Flip Image Horizontally
- Brightness Control
- Original
- Grayscale
- Color Invert
- Sketch
- Gaussian Blur
- Save Edited Images to Device Gallery
- MediaStore API Integration
- High-Quality Image Export
- Share Images using Android Share Intent
- Update Profile Picture
- Display User Details
- Manage User Session
The application includes manual and automated testing to improve reliability and maintain software quality.
- JUnit
- Android Espresso
- Instrumentation Testing
- Login Validation
- Registration
- Profile Creation
- Gallery Image Upload
- Rotate Image
- Flip Image
- Brightness Adjustment
- Image Filters
- Save Image
- Share Image
- User Navigation
- Account Management
- Functional Testing
- UI Testing
- Automated Testing
- Manual Testing
- Integration Testing
- Navigation Testing
- Error Handling
- Kotlin
- Android SDK
- AndroidX
- XML Layouts
- Material Design
- GPUImage
- Glide
- SharedPreferences
- MediaStore API
- FileProvider
- Kotlin Coroutines
- JUnit
- Espresso
- Android Instrumentation Testing
- Android Studio
- Gradle
AI-Photo-Editor-Android-App
│
├── app
│ ├── src
│ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ │
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── photoeditor
│ │ │ │ ├── LoginActivity.kt
│ │ │ │ ├── ProfileActivity.kt
│ │ │ │ └── MainActivity.kt
│ │ │ │
│ │ │ └── res
│ │ │ ├── layout
│ │ │ │ ├── activity_login.xml
│ │ │ │ ├── activity_profile.xml
│ │ │ │ └── activity_main.xml
│ │ │ │
│ │ │ ├── drawable
│ │ │ ├── mipmap
│ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ ├── styles.xml
│ │ │ │ └── themes.xml
│ │ │ │
│ │ │ ├── values-night
│ │ │ └── xml
│ │ │ ├── backup_rules.xml
│ │ │ ├── data_extraction_rules.xml
│ │ │ └── file_paths.xml
│ │ │
│ │ ├── androidTest
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── photoeditor
│ │ │ ├── LoginTest.kt
│ │ │ ├── ProfileActivityTest.kt
│ │ │ ├── ImageUploadTest.kt
│ │ │ ├── ImageEditingTest.kt
│ │ │ ├── SaveImageTest.kt
│ │ │ ├── ShareImageTest.kt
│ │ │ ├── AccountTest.kt
│ │ │ └── ExampleInstrumentedTest.kt
│ │ │
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── example
│ │ └── photoeditor
│ │ └── ExampleUnitTest.kt
│ │
│ ├── build.gradle.kts
│ ├── proguard-rules.pro
│ └── .gitignore
│
├── gradle
│ ├── wrapper
│ └── libs.versions.toml
│
├── build.gradle.kts
├── settings.gradle.kts
├── gradle.properties
├── gradlew
├── gradlew.bat
├── .gitignore
├── README.md
└── LICENSE
-
Native Android Development
-
Kotlin Programming
-
Material Design Interface
-
User Authentication
-
Profile Management
-
Gallery Integration
-
Image Editing
-
GPU Accelerated Filters
-
Brightness Adjustment
-
Save Images
-
Share Images
-
SharedPreferences
-
MediaStore API
-
Runtime Permissions
-
Kotlin Coroutines
-
Automated Testing
-
Espresso UI Testing
-
JUnit Testing
- Android Development
- Kotlin Programming
- Object-Oriented Programming
- Mobile UI Design
- Image Processing
- Android SDK
- SharedPreferences
- MediaStore API
- FileProvider
- Kotlin Coroutines
- Software Testing
- JUnit
- Espresso
- Debugging
- Problem Solving
During the development of this project I gained hands-on experience in:
- Building Android applications using Kotlin
- Implementing image processing features
- Working with Android Storage APIs
- Managing user data securely
- Optimizing application performance
- Writing automated UI tests
- Creating Unit Tests
- Debugging Android application
- AI Image Enhancement
- Background Removal
- Crop Tool
- Undo & Redo
- Contrast Adjustment
- Saturation Adjustment
- Dark Mode
- Firebase Cloud Backup
- GitHub Actions CI/CD Pipeline