{"id":13989535,"url":"https://github.com/florent37/Carpaccio","last_synced_at":"2025-07-22T11:30:41.449Z","repository":{"id":35213231,"uuid":"39472279","full_name":"florent37/Carpaccio","owner":"florent37","description":"Data Mapping \u0026 Smarter Views framework for android","archived":true,"fork":false,"pushed_at":"2018-01-04T13:00:30.000Z","size":31263,"stargazers_count":414,"open_issues_count":5,"forks_count":70,"subscribers_count":22,"default_branch":"master","last_synced_at":"2024-11-29T08:39:16.530Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://github.com/florent37/Carpaccio/wiki","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/florent37.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-07-21T22:07:36.000Z","updated_at":"2024-03-17T05:19:32.000Z","dependencies_parsed_at":"2022-06-27T13:34:36.804Z","dependency_job_id":null,"html_url":"https://github.com/florent37/Carpaccio","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/florent37/Carpaccio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/florent37%2FCarpaccio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/florent37%2FCarpaccio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/florent37%2FCarpaccio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/florent37%2FCarpaccio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/florent37","download_url":"https://codeload.github.com/florent37/Carpaccio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/florent37%2FCarpaccio/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266483449,"owners_count":23936344,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-09T13:01:43.755Z","updated_at":"2025-07-22T11:30:39.416Z","avatar_url":"https://github.com/florent37.png","language":"Java","funding_links":["https://ko-fi.com/A160LCC'"],"categories":["Java","Libs"],"sub_categories":["\u003cA NAME=\"Framework\"\u003e\u003c/A\u003eFramework"],"readme":"# Carpaccio\n\n[![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-Carpaccio-brightgreen.svg?style=flat)](http://android-arsenal.com/details/1/2211)\n[![Join the chat at https://gitter.im/florent37/Carpaccio](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/florent37/Carpaccio?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\n\n\u003ca href=\"https://goo.gl/WXW8Dc\"\u003e\n  \u003cimg alt=\"Android app on Google Play\" src=\"https://developer.android.com/images/brand/en_app_rgb_wo_45.png\" /\u003e\n\u003c/a\u003e\n\n\nDeveloped to facilitate integration on Android ( Designers can thanks me :D )\n\n![logo](https://raw.githubusercontent.com/florent37/Carpaccio/master/screenshot/carpaccio_small.png)\n\n**Data Mapping \u0026 Smarter Views framework for android**\n\nWith Carpaccio, your views became smarter, instead of calling functions on views, now your views can call functions !\nYou no longer need to extend a view to set a custom behavior\n\nCarpaccio also come with a beautiful mapping engine !\n\n# Usage\n\n```xml\n\u003ccom.github.florent37.carpaccio.Carpaccio\n        android:id=\"@+id/carpaccio\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"match_parent\"\n        app:register=\"\n            com.github.florent37.carpaccio.controllers.ImageViewController;\n            com.github.florent37.carpaccio.controllers.TextViewController\n        \"\u003e\n\n        \u003cImageView\n               android:layout_width=\"match_parent\"\n               android:layout_height=\"150dp\"\n               android:scaleType=\"centerCrop\"\n               android:tag=\"url(http://i.imgur.com/DSjXNox.jpg)\" /\u003e\n\n        \u003cTextView\n            android:layout_width=\"match_parent\"\n            android:layout_height=\"wrap_content\"\n            android:textSize=\"20sp\"\n            android:tag=\"\n                font(Roboto-Thin.ttf);\n                setText($user.name);\"/\u003e\n\n\u003c/com.github.florent37.carpaccio.Carpaccio\u003e\n```\n\n![url](https://raw.githubusercontent.com/florent37/Carpaccio/master/screenshot/sample_crop.png)\n\n# Download\n\n\u003ca href='https://ko-fi.com/A160LCC' target='_blank'\u003e\u003cimg height='36' style='border:0px;height:36px;' src='https://az743702.vo.msecnd.net/cdn/kofi1.png?v=0' border='0' alt='Buy Me a Coffee at ko-fi.com' /\u003e\u003c/a\u003e\n\nAdd into your **build.gradle**\n\n[![Download](https://api.bintray.com/packages/florent37/maven/Carpaccio/images/download.svg)](https://bintray.com/florent37/maven/Carpaccio/_latestVersion)\n\n```groovy\ncompile ('com.github.florent37:carpaccio:(lastest version)@aar'){\n    transitive=true\n}\n```\n\n------------\n\n# DataBinding\n\n```xml\n\u003cTextView\n       android:tag=\"\n            setText($user)\n       \"/\u003e\n\n\u003cImageView\n       android:tag=\"\n           url($user.getImageUrl())\n       \" /\u003e\n\n\u003cImageView\n       android:tag=\"\n            url($user.imageUrl)\n       \"/\u003e\n\n\u003cTextView\n       android:text=\"$user.name\"/\u003e\n```\n\nIn your activity / fragment :\n\n```java\nCarpaccio carpaccio = (Carpaccio)findViewById(\"R.id.carpaccio\");\ncarpaccio.mapObject(\"user\",new User(\"florent\", \"www.\"));\n```\n\n![set_text](https://raw.githubusercontent.com/florent37/Carpaccio/master/screenshot/set_text.png)\n\n------------\n\n## RecyclerView Mapping\n\nYou dreamed it, Carpaccio did it ! You can now bind a List with a RecyclerView !\n\n**WORKS WITH ANDROID STUDIO PREVIEW !!!**, don't hesitate to refresh your preview\n![url](https://raw.githubusercontent.com/florent37/Carpaccio/master/screenshot/refresh.png)\n\n![recycler](https://raw.githubusercontent.com/florent37/Carpaccio/master/screenshot/recycler_small.png)\n![recycler_preview](https://raw.githubusercontent.com/florent37/Carpaccio/master/screenshot/recycler_preview_small.png)\n\n\nR.layout.activity_main_recyclerview_mapping\n```xml\n\u003ccom.github.florent37.carpaccio.Carpaccio\n        android:id=\"@+id/carpaccio\"\n        app:register=\"\n            com.github.florent37.carpaccio.controllers.RecyclerViewController;\n            com.github.florent37.carpaccio.controllers.ImageViewController;\n            com.github.florent37.carpaccio.controllers.TextViewController;\n        \"\u003e\n\n        \u003candroid.support.v7.widget.RecyclerView\n                    android:layout_width=\"match_parent\"\n                    android:layout_height=\"match_parent\"\n\n                    android:tag=\"\n                        addHeader(header,R.layout.header_user);\n                        adapter(user,R.layout.cell_user)\n                    \"\n                    /\u003e\n\n\u003c/com.github.florent37.carpaccio.Carpaccio\u003e\n```\n\nR.layout.cell_user\n```xml\n\u003cLinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"100dp\"\n    android:gravity=\"center_vertical\"\n    android:orientation=\"horizontal\"\u003e\n\n        \u003cImageView\n            android:layout_width=\"100dp\"\n            android:layout_height=\"match_parent\"\n            android:layout_marginRight=\"20dp\"\n            android:tag=\"\n                enablePreview();\n                previewUrl(http://lorempixel.com/400/400/);\n                url($user.image);\n                \" /\u003e\n\n        \u003cTextView\n            android:layout_width=\"match_parent\"\n            android:layout_height=\"wrap_content\"\n            android:tag=\"\n                setText($user.name);\n                setFont(Roboto-Black.ttf);\"\n            /\u003e\n\n\u003c/LinearLayout\u003e\n```\n\nFinally, in your activiy/fragment you just have to indicate the List to map !\n\n```java\nsetContentView(R.layout.activity_main_recyclerview_mapping);\nCarpaccio carpaccio = (Carpaccio)findViewById(\"R.id.carpaccio\");\ncarpaccio.mapList(\"user\", this.users);\ncarpaccio.mapObject(\"header\", this.headerObject);\n```\n\n------------\n\n# ViewControllers\n\nCarpaccio provide some awesome ViewControllers, you can use them directly into your project.\n[Read the Wiki to have a list of all provided viewControllers](https://github.com/florent37/Carpaccio/wiki)\n\n------------\n\nTextViewController can set a custom font (from assets/fonts/) to a TextView and provide text binding\n\n**WORKS WITH ANDROID STUDIO PREVIEW !!!**\n\n![font](https://raw.githubusercontent.com/florent37/Carpaccio/master/screenshot/custom_ttf_small.png)\n\n```xml\n\u003ccom.github.florent37.carpaccio.Carpaccio\n        app:register=\"\n            com.github.florent37.carpaccio.controllers.TextViewController;\n        \"\u003e\n\n        \u003cTextView\n             android:tag=\"\n                 font(Pacifico.ttf);\n                 android:text=\"$user.getName()\"\n             \"/\u003e\n\u003c/com.github.florent37.carpaccio.Carpaccio\u003e\n```\n\n------------\n\n## ImageViewController\n\n```xml\n\u003ccom.github.florent37.carpaccio.Carpaccio\n        app:register=\"\n            com.github.florent37.carpaccio.controllers.ImageViewController;\n        \"\u003e\n\n        \u003cImageView\n             android:tag=\"\n                 url(http://i.imgur.com/DvpvklR.png)\n             \" /\u003e\n\u003c/com.github.florent37.carpaccio.Carpaccio\u003e\n```\n\n![url](https://raw.githubusercontent.com/florent37/Carpaccio/master/screenshot/url_small.png)\n\n**WORKS WITH ANDROID STUDIO PREVIEW !!!**, don't hesitate to refresh your preview\n![url](https://raw.githubusercontent.com/florent37/Carpaccio/master/screenshot/refresh.png)\n\nPreview an url image\n\n```xml\n\u003cImageView\n     android:tag=\"\n        enablePreview();\n        url(http://i.imgur.com/DvpvklR.png);\n     \" /\u003e\n```\n\n![url](https://raw.githubusercontent.com/florent37/Carpaccio/master/screenshot/preview_image_url_small.png)\n\nAnd some awesome customisations\n\n\n![circle](https://raw.githubusercontent.com/florent37/Carpaccio/master/screenshot/circle_small_2.png)\n![blur](https://raw.githubusercontent.com/florent37/Carpaccio/master/screenshot/blur_small.png)\n![greyscale](https://raw.githubusercontent.com/florent37/Carpaccio/master/screenshot/greyscale_small.png)\n\n```xml\n\u003cImageView\n      android:tag=\"\n\n           circle();\n           blur(); OR willBlur();\n           greyScale(); OR willGreyScale();\n\n           url(http://i.imgur.com/DvpvklR.png);\n      \" /\u003e\n```\n\n[![Video](http://share.gifyoutube.com/mGz9OZ.gif)](https://youtu.be/A0eyvpNh5wM)\n[![Video](http://share.gifyoutube.com/vpMYjp.gif)](https://youtu.be/4b84gswKGkA)\n\n\n```xml\n\u003cImageView\n      android:tag=\"\n           animateMaterial(6000);\n           kenburns();\n           url(http://i.imgur.com/DvpvklR.png);\n      \" /\u003e\n```\n\n# Community\n\nLooking for contributors, feel free to fork !\n\nTell me if you're using my library in your application, I'll share it in this README\n\n# Dependencies\n\n* [Picasso][picasso] (from Square)\n* [KenBurnsView][kenburnsview] (from flavioarfaria)\n* [Android-Observablescrollview][android-observablescrollview] (from ksoichiro)\n\n# Credits\n\nAuthor: Florent Champigny\nwww.florentchampigny.com/\n\n\n\u003ca href=\"https://goo.gl/WXW8Dc\"\u003e\n  \u003cimg alt=\"Android app on Google Play\" src=\"https://developer.android.com/images/brand/en_app_rgb_wo_45.png\" /\u003e\n\u003c/a\u003e\n\n\u003ca href=\"https://plus.google.com/+florentchampigny\"\u003e\n  \u003cimg alt=\"Follow me on Google+\"\n       src=\"https://raw.githubusercontent.com/florent37/DaVinci/master/mobile/src/main/res/drawable-hdpi/gplus.png\" /\u003e\n\u003c/a\u003e\n\u003ca href=\"https://twitter.com/florent_champ\"\u003e\n  \u003cimg alt=\"Follow me on Twitter\"\n       src=\"https://raw.githubusercontent.com/florent37/DaVinci/master/mobile/src/main/res/drawable-hdpi/twitter.png\" /\u003e\n\u003c/a\u003e\n\u003ca href=\"https://www.linkedin.com/profile/view?id=297860624\"\u003e\n  \u003cimg alt=\"Follow me on LinkedIn\"\n       src=\"https://raw.githubusercontent.com/florent37/DaVinci/master/mobile/src/main/res/drawable-hdpi/linkedin.png\" /\u003e\n\u003c/a\u003e\n\n\nLicense\n--------\n\n    Copyright 2015 florent37, Inc.\n\n    Licensed under the Apache License, Version 2.0 (the \"License\");\n    you may not use this file except in compliance with the License.\n    You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n    Unless required by applicable law or agreed to in writing, software\n    distributed under the License is distributed on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n    See the License for the specific language governing permissions and\n    limitations under the License.\n\n\n[picasso]: https://github.com/square/picasso\n[kenburnsview]: https://github.com/flavioarfaria/KenBurnsView\n[android-observablescrollview]: https://github.com/ksoichiro/Android-ObservableScrollView\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflorent37%2FCarpaccio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflorent37%2FCarpaccio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflorent37%2FCarpaccio/lists"}