Truffle Shuffle es una libreria de un componente de Android UI de una galeria de tarjetas con una animacion divertida. La galeria es muy facil de personalizar y es derivada de los datos basado en la cantidad de objetos de una coleccion y el contenido dentro de dichos objectos. La galeria de tarjetas utiliza un Android ViewGroup personalizado con vistas de atributos personalizados para especificar el tamano de las tarjetas individuales como el porcentaje del tamano del ViewGroup. Esta galeria de tarjetas es usada en la aplicacion mobil de TurboTax. Truffle Shuffle esta escrita al 100% en Kotlin!
Para ejecutar el proyecto de ejemplo, clona el repo y ejecuta la aplicacion de Android via Android Studio en un Emulator. Puedes jugar con el ejemplo de las siguientes maneras
- Cambiando el diseno dentro de las tarjetas en app/src/main/res/layout/card_layout.xml
- Cambiando el numero de tarjetas en la coleccion en getCardDetails() en app/src/main/kotlin/com/intuit/truffle/shuffle/MainActivity.kt
- Cambiando los porcentajes del group de vista o "view group" en app/src/main/res/values/card_view_group_percentages.xml
Para contribuir a este proyecto, asegurate que el codigo realizado corresponde con los estandares de formato de este proyecto.
Para reformatear o chequear que el codigo realizado es conforme, sigue uno de las siguientes opcines:
Use tareas de Gradle (recomendado - ktlint docs):
./gradlew ktlint
Use este comando para chequear que las reglas de formato hayan sido cubiertas
/gradlew ktlintFormat
Use este comando para reformatear codigo que no cumple con las reglas de formato de este proyecto.
Use ktlint engine (ktlint docs):
ktlint
Use este comando para chequear que las reglas de formato hayan sido cubiertas
ktlint "src/**/*.kt" "!src/**/*Test.kt"
Chequee solo ciertas locaciones (Prefije ! para invalidar el patron)
ktlint -F
Use este comando para reformatear codigo que no cumple con las reglas de formato de este proyecto. (si algunos errores no pueden ser arreglados automaticamente, seran impresos a stderr)
ktlint -F "src/**/*.kt"
Chequee solo ciertas locaciones (Prefije ! para invalidar el patron) . (si algunos errores no pueden ser arreglados automaticamente, seran impresos a stderr)
ktlint --install-git-pre-commit-hook
Instale git hook para chequear archivos y buscar violaciones de estilo en el commit.
Para agregar esto a su propia aplicacion de Android, siga los siguientes pasos:
- Agruegue la dependencia al archivo del build.gradle de su proyecto bajo "dependencies" o dependencias:
dependencies {
implementation 'com.intuit.truffleshuffle:truffleshuffle:1.0.0'
}
Asegurese que jcenter() sea anadido al build.gradle de su aplicacion
repositories {
jcenter()
}
- Agregue com.intuit.truffleshuffle.CardViewGroup al archivo xml donde quiera ubicar la galeria de tarjetas, como en app/src/main/res/layout/activity_main.xml
- agregue los porcentajes que desee a los atributos personalizados del CardViewGroup en el archivo xml
- custom:dashboardCardHeightPercentage, custom:widthPercentage, custom:topSpacingPercentage, custom:bottomSpacingPercentage
- agregue los porcentajes que desee a los atributos personalizados del CardViewGroup en el archivo xml
- Agregue un xml layout (card_layout.xml) para los contenidos de sus tarjetas similar a app/src/main/res/layout/card_layout.xml
- Cree una carpeta cardGallery con 2 archivos:
- CardContent similar a app/src/main/kotlin/com/intuit/truffle/shuffle/cardGallery/CardContent.kt
- Este es su objeto de datos para los contenidos de las tarjetas
- CustomizeAdapter similar a app/src/main/kotlin/com/intuit/truffle/shuffle/cardGallery/CustomizeAdapter.kt
- El constructor deberia toma un ArrayList y deberia extender CardContentAdapter
- Anule la funcion getViewContent() para establecer el contenido de data en el cardContent a las vistas en su card_layout.xml, ie. estableciendo el texto en un textView
- CardContent similar a app/src/main/kotlin/com/intuit/truffle/shuffle/cardGallery/CardContent.kt
- En la Activity donde usted estara usando este compnente de UI,
- Instancie el CustomizeAdapter que acaba de definir y pase en un arrayList de CardContents y el recurso de id de adentro de la tarjeta ie. R.layout.card_layout
- Use el metodo setupAdapter() en el CustomizeAdapter que acaba de crear con el CardViewGroup usando findViewById()
- Ahora el componente UI TruffleShuffle esta listo para usar!
- Si usted necesita ayuda, abra un "github issue"y agrege el tag
help wanted
. - Si usted encontro un error, abra un "github issue"y agrege el tag
bug
. - Si usted tiene una solicitud de una nueva funcionalidad, abra un "github issue" y agregue el tag
feature
. - Si usted desea contribuir, por favor referirse a la documentacion "Contributing documentation" y envie un pull request.
- Para enviar un pull request, por favor haga "fork" a este repo y envie un PR (pull request) del repo que hizo "fork".
- Incluya un mensaje detallado con informacion acerca de los arreglos/mejoras/cambios que proporciona su PR.
- Cada PR debe tener aprobacion antes de fucionar.