PlantApp is an Android application designed to help users care for and manage their plants. It offers a personalized experience with features like plant selection, customization, and user onboarding.
- 🎉 Personalized welcome screen
- 🎭 Custom avatar selection using the Multiavatar API
- 📝 User name input
- 🔍 Browse and select plants from a curated list
- ℹ️ View detailed plant information
- ➕ Add custom plants with personalized details
- 📸 Option to take photos or select images from the gallery for plants
- 💾 Store and display plant names
- 🖼️ Show plant images (either selected or custom)
- 💽 Save plant information for future sessions
WelcomeActivity
: Handles user onboarding and avatar selectionPlantSelectionActivity
: Allows users to browse and select plantsPlantDetailsActivity
: Manages input and storage of plant detailsPlantAdapter
: Handles the display of plants in a grid layout
- 🔌 API Integration:
- Multiavatar API for user avatars
- Trefle API for plant data
- 📷 Image Handling:
- Gallery image selection
- Camera integration for taking plant photos
- 💾 Local Storage:
- SharedPreferences for user and plant data
- Local file storage for plant images
- Retrofit: For API calls
- Glide: For efficient image loading
- RecyclerView: For displaying plant grids
- Clone the repository
- Open the project in Android Studio
- Ensure you have the latest Android SDK installed
- Update the
BASE_URL
andAPI_TOKEN
inPlantSelectionActivity
with your Trefle API credentials - Update the
BASE_URL
inWelcomeActivity
for the Multiavatar API if needed - Build and run the application on an emulator or physical device
- Launch the app and enter your name on the welcome screen
- Select an avatar using the navigation buttons
- Proceed to plant selection or add a custom plant
- View and manage your plants in the main interface
The app requires the following permissions:
- 📷 Camera access (for taking plant photos)
- 💾 Storage access (for saving and loading plant images)
Contributions to PlantApp are welcome. Please feel free to submit pull requests or open issues for bugs and feature requests.