π First PR? Let's make it happen this Hacktoberfest! β Don't Forget to Give Star!
A modern Android application that combines WhatsApp Display Picture (DP) management with interactive chart analytics. Built with Kotlin and following Android best practices.
- Interactive Line Charts: Beautiful, responsive chart visualizations
- Real-time Data: Dynamic data updates with smooth animations
- Touch Interactions: Tap to select chart points for detailed information
- Customizable Views: Multiple chart configurations and styles
- DP Gallery: Browse and manage WhatsApp display pictures
- Category Organization: Organize DPs by categories
- Background Management: Custom background options
- Share Functionality: Easy sharing of DPs
- Material Design: Following Google's Material Design guidelines
- Navigation Components: Smooth navigation between screens
- Dark/Light Themes: Support for both theme modes
- Responsive Layout: Optimized for different screen sizes
- Kotlin (97.2%) - Primary development language
- Java (2.8%) - Legacy components
- Android SDK - Native Android development
- MVVM Architecture - Modern Android architecture pattern
- Navigation Components - Fragment navigation
- Room Database - Local data persistence
- Retrofit - Network communication
- Picasso - Image loading and caching
- RxJava2 - Reactive programming
- HelloCharts - Chart visualization library
// Core Android
implementation 'androidx.core:core-ktx:1.12.0'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.11.0'
// Navigation
implementation 'androidx.navigation:navigation-fragment-ktx:2.7.6'
implementation 'androidx.navigation:navigation-ui-ktx:2.7.6'
// Database
implementation "androidx.room:room-runtime:2.6.1"
implementation "androidx.room:room-ktx:2.6.1"
// Network
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
// Image Loading
implementation 'com.squareup.picasso:picasso:2.8'
// Reactive Programming
implementation "io.reactivex.rxjava2:rxandroid:2.1.1"
implementation "io.reactivex.rxjava2:rxjava:2.2.21"| Home Screen | Chart Analytics | DP Gallery |
|---|---|---|
![]() |
![]() |
![]() |
- Android Studio Arctic Fox or later
- Android SDK 21+ (Android 5.0)
- Kotlin 1.9.10+
- Gradle 8.1.4+
-
Clone the repository
git clone https://github.com/TechnoBlogger14o3/NewSampleUi.git cd NewSampleUi -
Open in Android Studio
- Launch Android Studio
- Select "Open an existing project"
- Navigate to the cloned directory
-
Sync Project
- Android Studio will automatically sync Gradle files
- Wait for the sync to complete
-
Run the App
- Connect an Android device or start an emulator
- Click the "Run" button or press
Shift + F10
android {
compileSdk 34
defaultConfig {
applicationId "com.itamazons.whatsdp"
minSdk 21
targetSdk 34
versionCode 1
versionName "1.0"
}
}app/
βββ src/main/
β βββ java/com/itamazons/whatsdp/
β β βββ Application/
β β β βββ MyApplication.kt
β β βββ ui/
β β β βββ gallery/
β β β β βββ GalleryFragment.kt
β β β β βββ GalleryViewModel.kt
β β β βββ home/
β β β β βββ HomeFragment.kt
β β β β βββ HomeViewModel.kt
β β β βββ slideshow/
β β β βββ SlideshowFragment.kt
β β β βββ SlideshowViewModel.kt
β β βββ dto/
β β β βββ PhotoDto.kt
β β β βββ PhotoSrcDto.kt
β β β βββ SampleDto.kt
β β β βββ SearchResultDto.kt
β β βββ WebTask/
β β β βββ ApiClient.kt
β β β βββ ApiInterface.kt
β β βββ SharePreferene/
β β β βββ SharePref.kt
β β βββ MainActivity.kt
β β βββ CatagoryActivity.kt
β β βββ RegisterActivity.kt
β β βββ ScrollActivity.kt
β β βββ SplashScreenActivity.kt
β β βββ WhatsBackgroundAdapter.kt
β β βββ WhatsDpAdapter.kt
β β βββ SquareImageView.java
β βββ res/
β βββ layout/
β βββ values/
β βββ drawable/
β βββ menu/
- Follow Kotlin coding conventions
- Use meaningful variable and function names
- Add proper documentation for public APIs
- Implement proper error handling
- Use MVVM pattern for UI components
- Implement Repository pattern for data access
- Use Dependency Injection where appropriate
- Follow Single Responsibility Principle
# Run unit tests
./gradlew test
# Run instrumented tests
./gradlew connectedAndroidTestWe welcome contributions from the community! Here's how you can help:
| π Bug Reports | π‘ Feature Requests | π¨ UI/UX Improvements | π Documentation |
|---|---|---|---|
| Report issues and bugs | Suggest new features | Improve user interface | Update documentation |
| π§ Code Quality | π§ͺ Testing | π Localization | π± Platform Support |
| Refactor and optimize | Add test coverage | Add new languages | Support more devices |
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Make your changes
- Follow the coding standards
- Add tests for new functionality
- Update documentation if needed
- Commit your changes
git commit -m "Add amazing feature" - Push to the branch
git push origin feature/amazing-feature
- Open a Pull Request
| Label | Description |
|---|---|
bug |
Something isn't working |
enhancement |
New feature or request |
documentation |
Improvements to documentation |
good first issue |
Good for newcomers |
help wanted |
Extra attention is needed |
- Chart data persistence needs improvement
- Memory optimization for large image galleries
- Better error handling for network requests
- Accessibility improvements needed
- Enhanced chart customization options
- Improved image caching mechanism
- Better offline support
- Performance optimizations
- Real-time data synchronization
- Advanced chart types (bar, pie, etc.)
- User preferences and settings
- Export functionality
- APK Size: ~15MB
- Startup Time: <2 seconds
- Memory Usage: ~50MB average
- Battery Impact: Minimal
- Image lazy loading
- Efficient memory management
- Optimized chart rendering
- Background task optimization
- Data Privacy: No personal data collection
- Network Security: HTTPS for all API calls
- Local Storage: Encrypted shared preferences
- Permissions: Minimal required permissions
This project is licensed under the MIT License - see the LICENSE file for details.
Thanks to all the contributors who have helped make this project better!
- HelloCharts Library - For providing excellent chart functionality
- Android Community - For continuous support and feedback
- Material Design - For design guidelines and inspiration
- Open Source Contributors - For making this project possible
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: Contact Developer


