Skip to content

Step into the world of art like never before! ๐ŸŽจ๐ŸŒ Snap a photo of any artwork, and unlock its story with Artify. ๐Ÿ–ผ๏ธ Get insights about artists, styles, and hidden meanings, turning every art piece into an exploration. ๐Ÿ” Ready for your next art adventure? Letโ€™s explore creativity together!

License

Notifications You must be signed in to change notification settings

sergio11/artify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

18 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Artify - Virtual Art Gallery ๐ŸŽจ๐Ÿ–ผ๏ธ

Artify is an innovative mobile application that allows you to explore the world of art in a completely new way. With the advanced technology of Gemini SDK, Artify turns your device into a virtual art gallery, letting you interact with artworks, discover details, history, and context about each piece in real-timeโ€”just by capturing an image.

Whether you're at a museum ๐Ÿ›๏ธ, visiting an art gallery ๐ŸŽจ, or simply exploring at home ๐Ÿ , Artify offers instant access to detailed information about the artworks you encounter, turning art discovery into an interactive and educational experience.

This app, Artify, includes images and resources designed by Freepik. We would like to thank Freepik for their incredible design resources. The images used in the app are provided with attribution, as required by Freepik's licensing terms. For more information on Freepik's resources, visit www.freepik.com.

Slides are built using the template from Previewed. I extend my gratitude to them for their remarkable work and contribution.

๐Ÿš€ Key Features

  • AI-Powered Visual Exploration ๐Ÿค–๐Ÿ“ท: Use Gemini SDK to recognize artworks, sculptures, and other artistic elements through your camera and obtain instant, accurate information.
  • Natural Language Interaction ๐Ÿ’ฌ: Ask questions in conversational language and receive detailed, natural responses.
  • Speech-to-Text and Text-to-Speech Integration ๐Ÿ—ฃ๏ธ๐Ÿ”Š: Use your voice to ask questions via Speech-to-Text and listen to the answers through Text-to-Speech, making the interaction even smoother.
  • Organized Conversations with Artify ๐Ÿ—‚๏ธ๐Ÿ’ฌ: Each interaction with an artwork creates an "Art Conversation" where you can ask questions and receive answers about that specific piece.
  • Dynamic Learning ๐Ÿ“˜๐ŸŒ: Turn everyday encounters into learning opportunities, discovering historical facts, technical details, and the context of the artworks you find.
  • Enhanced User Experience ๐Ÿ–ฅ๏ธโœจ: Built with Jetpack Compose, the app offers a modern UI with fluid animations and intuitive navigation.

๐Ÿง  How Artify Works

  • Firestore ๐Ÿ”ฅ๐Ÿ“‚: Used to store "Art Conversations"โ€”topics of conversation derived from images taken by the user. Each conversation is linked to a specific artwork and its details.
  • Firestorage ๐Ÿ—„๏ธ๐Ÿ“ธ: Stores the images captured by the user, which are analyzed by Gemini SDK to provide insightful answers about the artworks or scenes in the photos.
  • Gemini SDK ๐ŸŒŸ๐Ÿค–: The AI engine that powers image analysis and natural language understanding, providing detailed answers to user queries based on the images and topics.
  • Speech-to-Text and Text-to-Speech ๐Ÿ—ฃ๏ธ๐Ÿ”„๐Ÿ”Š: Allows users to interact with Artify using their voice, asking questions verbally and listening to answers, improving accessibility and convenience.

๐Ÿ” Home Screen Features

  • Art Conversations List ๐Ÿ“„: View all your art conversationsโ€”your ongoing topics of conversation. Each conversation corresponds to a captured artwork and its related questions and answers.
  • Search Functionality ๐Ÿ”Ž: Easily search through your art conversations to find specific topics or answers.
  • Delete Functionality ๐Ÿ—‘๏ธ: Manage your art conversations by deleting those you no longer need.
  • Detailed View ๐Ÿ‘๏ธ: Access the details of each art conversation, where you can continue the conversation by asking more questions and receiving answers.

โœจ User Experience Enhancements

  • Optimized Performance โšก: Using coroutines ensures smooth, lag-free interactions.
  • Intuitive Navigation ๐Ÿงญ: The UI, built with Jetpack Compose, provides a modern, fluid experience that adapts to user input, making the app feel natural and easy to use.
  • Dynamic Responses ๐ŸŽฏ: The combination of Gemini SDK and MVI architecture delivers precise, dynamic answers that evolve with user input, creating a responsive and personalized experience.

๐Ÿ› ๏ธ Clean Architecture & MVI for a Robust Foundation

Artify is built on Clean Architecture principles, ensuring the application is scalable, maintainable, and testable. This architecture promotes clear separation of concerns, with well-defined layers for data, domain, and presentation, resulting in a robust codebase that integrates seamlessly with the Gemini SDK.

By using Model-View-Intent (MVI) as the UI architectural pattern, Artify provides a reactive and unidirectional data flow, enhancing the overall user experience and maintaining the app's consistency and extensibility.

  • Domain-Centric Design ๐Ÿงฉ: Business logic is encapsulated in the domain layer, which interacts with data sources (e.g., repositories) and manages the flow of information to and from the UI.
  • Seamless Integration with Gemini SDK ๐Ÿค–๐ŸŒ: The Clean Architecture approach ensures smooth integration with the Gemini SDK, optimizing performance in image recognition and natural language processing tasks.

๐Ÿงฐ Technologies Used

  • Kotlin ๐Ÿ’ป: The primary programming language for Android development.
  • Jetpack Compose ๐Ÿ–Œ๏ธ: A modern, declarative UI toolkit that allows for flexible and scalable UI design.
  • Gemini SDK ๐Ÿš€๐Ÿค–: The core of the app's AI capabilities, powering image recognition and natural language understanding.
  • Firestore ๐Ÿ”ฅ: Manages the storage of art conversations, providing a structured and scalable way to handle conversation topics.
  • Firestorage ๐Ÿ“ธ: Stores images analyzed by Gemini to generate detailed responses.
  • Coroutines โฑ๏ธ: Manages asynchronous tasks to ensure smooth, seamless interactions.
  • Hilt/Dagger ๐Ÿ› ๏ธ: Dependency injection frameworks that provide clear module separation and scalability.
  • Retrofit ๐ŸŒ: Manages network communication with external APIs.
  • Coil ๐ŸŽจ: Image loading library that integrates seamlessly with Jetpack Compose for high-performance image handling.

Development with the Brownie UI Library

๐Ÿซ Brownie: Jetpack Compose UI Library ๐Ÿš€

Brownie is a Jetpack Compose library that provides a set of pre-defined components to accelerate Android UI development. It helps developers apply best practices in screen state management and utilize the most effective design patterns.

Features ๐ŸŽ‰

  • Pre-defined Components: Brownie offers a variety of ready-to-use components, such as buttons, lists, and cards, to facilitate attractive and consistent UI creation.
  • State Management: Facilitates screen state management by implementing patterns like MVI or MVVM.
  • Customization: Brownie components are highly customizable and easily adapt to any app's visual style.
  • Jetpack Compose Compatibility: Fully integrated with Jetpack Compose, ensuring optimal performance and smooth development.

Model-View-Intent (MVI) Architecture ๐Ÿ—๏ธ

Brownie encourages using the MVI architecture pattern for effective screen state management. In this pattern:

  • Model: Represents the UI state. Brownie provides a BrownieViewModel class that handles the UI state.
  • View: Renders the UI based on the state provided by the ViewModel. Brownie components are seamlessly integrated with Compose for declarative UI.
  • Intent: Represents user actions or events that trigger state changes.

For more information, visit Brownie UI Library on GitHub and give it a โญ to show your support!

App Screenshots

Here are some screenshots to showcase the app's design and features.

ย ย ย  ย ย ย 

ย ย ย  ย ย ย 

ย ย ย  ย ย ย 

ย ย ย  ย ย ย 

ย ย ย  ย ย ย 

ย ย ย  ย ย ย 

ย ย ย  ย ย ย 

ย ย ย  ย ย ย 

ย ย ย 

Contribution

Contributions to Artify are highly encouraged! If you're interested in adding new features, resolving bugs, or enhancing the project's functionality, please feel free to submit pull requests.

Credits

Artify is developed and maintained by Sergio Sรกnchez Sรกnchez (Dream Software). Special thanks to the open-source community and the contributors who have made this project possible. If you have any questions, feedback, or suggestions, feel free to reach out at dreamsoftware92@gmail.com.

Acknowledgements ๐Ÿ™

Visitors Count

Please Share & Star the repository to keep me motivated.

License โš–๏ธ

This project is licensed under the MIT License, an open-source software license that allows developers to freely use, copy, modify, and distribute the software. ๐Ÿ› ๏ธ This includes use in both personal and commercial projects, with the only requirement being that the original copyright notice is retained. ๐Ÿ“„

Please note the following limitations:

  • The software is provided "as is", without any warranties, express or implied. ๐Ÿšซ๐Ÿ›ก๏ธ
  • If you distribute the software, whether in original or modified form, you must include the original copyright notice and license. ๐Ÿ“‘
  • The license allows for commercial use, but you cannot claim ownership over the software itself. ๐Ÿท๏ธ

The goal of this license is to maximize freedom for developers while maintaining recognition for the original creators.

MIT License

Copyright (c) 2025 Dream software - Sergio Sรกnchez 

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

About

Step into the world of art like never before! ๐ŸŽจ๐ŸŒ Snap a photo of any artwork, and unlock its story with Artify. ๐Ÿ–ผ๏ธ Get insights about artists, styles, and hidden meanings, turning every art piece into an exploration. ๐Ÿ” Ready for your next art adventure? Letโ€™s explore creativity together!

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages