https://github.com/spikeysanju/picto
π An MVVM Sample project with custom Image Loading Library
https://github.com/spikeysanju/picto
android coroutines-android darktheme imageloadinglibrary koin koin-android kotlin kotlin-android kotlin-coroutines kotlin-library livedata-viewmodel material-design mvvm-architecture okhttp3 recyclerview retrofit2 room-database room-persistence-library sharedpreferences viewmodel
Last synced: 3 months ago
JSON representation
π An MVVM Sample project with custom Image Loading Library
- Host: GitHub
- URL: https://github.com/spikeysanju/picto
- Owner: Spikeysanju
- Created: 2020-05-12T18:27:13.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2020-05-25T06:29:24.000Z (about 5 years ago)
- Last Synced: 2025-03-21T15:10:55.713Z (3 months ago)
- Topics: android, coroutines-android, darktheme, imageloadinglibrary, koin, koin-android, kotlin, kotlin-android, kotlin-coroutines, kotlin-library, livedata-viewmodel, material-design, mvvm-architecture, okhttp3, recyclerview, retrofit2, room-database, room-persistence-library, sharedpreferences, viewmodel
- Language: Kotlin
- Homepage:
- Size: 17.4 MB
- Stars: 20
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README

# Picto
**Picto** is a sample gallery Android application π± built to demonstrate use of *Modern Android development* tools & use of
*[Picto](https://github.com/Spikeysanju/Picto/blob/master/app/src/main/java/www/spikeysanju/picto/pictoImageLoader/Picto.kt) - An Custom image loading library for Android developed by [Spikeysanju](https://github.com/Spikeysanju) π₯³.**API for Picto App is hosted here [here](http://3ue.xyz/img_api/)*.
***You can Install and test latest Picto app from below π***
[](https://github.com/Spikeysanju/Picto/blob/master/apk/Picto.apk)
## Built With π
- [Kotlin](https://kotlinlang.org/) - First class and official programming language for Android development.
- [Coroutines](https://kotlinlang.org/docs/reference/coroutines-overview.html) - For asynchronous and more..
- [Android Architecture Components](https://developer.android.com/topic/libraries/architecture) - Collection of libraries that help you design robust, testable, and maintainable apps.
- [LiveData](https://developer.android.com/topic/libraries/architecture/livedata) - Data objects that notify views when the underlying database changes.
- [ViewModel](https://developer.android.com/topic/libraries/architecture/viewmodel) - Stores UI-related data that isn't destroyed on UI changes.
- [Room](https://developer.android.com/topic/libraries/architecture/room) - SQLite object mapping library.
- [Koin](https://insert-koin.io/) - Dependency Injection Framework
- [Retrofit 2](https://square.github.io/retrofit/) - A type-safe HTTP client for Android and Java.
- [GSON Converter](https://github.com/square/retrofit/tree/master/retrofit-converters/gson) - A Converter which uses Gson for serialization to and from JSON.
- [Picto](https://github.com/Spikeysanju/Picto/blob/master/app/src/main/java/www/spikeysanju/picto/pictoImageLoader/Picto.kt) - An Custom image loading library for Android developed by [Spikeysanju](https://github.com/Spikeysanju).
- [Material Components for Android](https://github.com/material-components/material-components-android) - Modular and customizable Material Design UI components for Android.# Package Structure
www.spikeysanju.picto # Root Package
.
βββ data # For data handling.
β βββ db # Local Persistence Database. Room (SQLite) database
| β βββ dao # Data Access Object for Room
| | |ββ database # Datbase Instance
β βββ api # Remote Data Handlers
| β βββ postapi # Retrofit API for remote end point.
β βββ |ββ retrofit # Single source of data.
|
βββ model # Model classes
|
βββ di # Dependency Injection
β βββ builder # Activity Builder
β βββ component # DI Components
β βββ module # DI Modules
|
βββ ui # Activity/View layer
β βββ main # Main Screen Activity & ViewModel
| β βββ adapter # Adapter for RecyclerView
| β βββ viewmodel # ViewHolder for RecyclerView
|
βββ utils # Utility Classes / Kotlin extensions
## Architecture
This app uses [***MVVM (Model View View-Model)***](https://developer.android.com/jetpack/docs/guide#recommended-app-arch) architecture.
## Contribute
If you want to contribute to this library, you're always welcome!
See [Contributing Guidelines](CONTRIBUTING.md).## Contact
Have an project? DM me at πDrop a mail to:- [email protected]
# Donation
If this project help you reduce time to develop, you can give me a cup of coffee :)[](https://www.paypal.com/paypalme2/spikeysanju)
## License
```
MIT LicenseCopyright (c) 2020 Spikeysanju
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.
```