{"id":32296364,"url":"https://github.com/obaa10/future-list","last_synced_at":"2026-02-20T22:01:36.426Z","repository":{"id":320303290,"uuid":"697658236","full_name":"Obaa10/future-list","owner":"Obaa10","description":"Effortlessly display paginated lists from any URL with Future List, Explore shimmer effects, advanced features, and seamless pagination for captivating app experiences.","archived":false,"fork":false,"pushed_at":"2023-10-08T08:38:01.000Z","size":19693,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-23T04:04:27.995Z","etag":null,"topics":["flutter","listview","package","pagination","remote-data","shimmer-effect"],"latest_commit_sha":null,"homepage":"https://pub.dev/packages/future_list","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Obaa10.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-09-28T07:57:38.000Z","updated_at":"2024-11-14T08:09:51.000Z","dependencies_parsed_at":"2025-10-25T01:30:25.381Z","dependency_job_id":null,"html_url":"https://github.com/Obaa10/future-list","commit_stats":null,"previous_names":["obaa10/future-list"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/Obaa10/future-list","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Obaa10%2Ffuture-list","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Obaa10%2Ffuture-list/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Obaa10%2Ffuture-list/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Obaa10%2Ffuture-list/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Obaa10","download_url":"https://codeload.github.com/Obaa10/future-list/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Obaa10%2Ffuture-list/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29666421,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-20T19:49:36.704Z","status":"ssl_error","status_checked_at":"2026-02-20T19:44:05.372Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["flutter","listview","package","pagination","remote-data","shimmer-effect"],"created_at":"2025-10-23T04:02:42.618Z","updated_at":"2026-02-20T22:01:36.420Z","avatar_url":"https://github.com/Obaa10.png","language":"C++","readme":"# Future List\n\nFuture List is a powerful Flutter package that simplifies the process of displaying dynamic lists in\nyour Flutter applications. With Future List, you can effortlessly generate list views from a single\nURL, complete with automatic pagination, shimmer effects, and a range of advanced features.\n\n\n## Live demo\n\n\u003cdiv   style=\"text-align:center\"\u003e\n  \u003cvideo height=\"350\" src=\"https://github-production-user-asset-6210df.s3.amazonaws.com/70761777/273432578-8731a2aa-11fb-4997-8045-09e43d676de7.mp4\"\u003e\u003c/video\u003e\n\u003c/div\u003e\n\n## Features\n\n- **Effortless Pagination**: Future List takes care of pagination for you, automatically fetching\n  and displaying new data as the user scrolls, ensuring a seamless browsing experience.\n\n- **Shimmer Effects**: Enhance the visual appeal of your list views with built-in shimmer effects,\n  making the loading process more engaging and user-friendly.\n\n- **Customizable**: Future List provides a range of options to customize the appearance and behavior\n  of your list views, allowing you to tailor them to fit your app's unique design and requirements.\n\n- **Error Handling**: Handle errors and fallback scenarios gracefully with Future List's error\n  handling capabilities, providing a smooth user experience even in case of network or data issues.\n\n- **Flexible Integration**: Integrate Future List into your existing Flutter projects with ease,\n  thanks to its intuitive and straightforward API.\n\n## How to use\n\nAdd the following line to your `pubspec.yaml` file:\n\n```yaml\ndependencies:\n  future_list: ^1.0.5\n```\n\n```dart\nimport 'package:future_list/future_list_builder.dart';\n```\n\n## Examples\n\n### Simple example\n\n```dart\n  FutureListBuilder\u003cBook\u003e(\n    url: \"https://example.com/get/data\",\n    httpMethod: HttpMethod.get,\n    converter: (json) {\n     //Function to convert from json to Book Object.\n    },\n    itemBuilder: (data) {\n     //Function to return card widget for the data Book.\n    },\n    dataPath: ['data'],  //The data path in the json response body.\n    shimmerBuilder: () =\u003e ShimmerCard(width: 200, height: 100),\n  )\n```\n\nIn this example we get data from https://example.com/get/data\nwith Http get method. \u003cbr\u003e\nand we user the build in ShimmerCard you can read more about it in the docs, \u003cbr\u003e\nIn this example the response body should be\n\n```json\n{\n  \"data\": [\"item1\", \"item2\"]\n}\n```\n\n### Full example\n\nIn this example we will get a list of locations we will use: location object, shimmer effect and\npagination \u003cbr\u003e\n\n- The location object class\n\n```dart\nclass Location {\n  String textLocation;\n  String id;\n\n  Location({\n    required this.textLocation,\n    required this.id,\n  });\n\n  factory Location.fromJson(Map\u003cString, dynamic\u003e json) =\u003e\n      Location(\n        textLocation: json[\"text_location\"],\n        id: json[\"_id\"],\n      );\n}\n```\n\n- The Location card widget\n\n```dart\n  Widget LocationCard(Location location) {\n  return Container(\n    padding: const EdgeInsets.symmetric(horizontal: 12.0, vertical: 8.0),\n    margin: const EdgeInsets.symmetric(horizontal: 10.0),\n    decoration: BoxDecoration(borderRadius: BorderRadius.circular(50)),\n    child: Row(\n      children: [\n        Text(location.textLocation),\n        const SizedBox(width: 8.0),\n      ],\n    ),\n  );\n}\n```\n\n- The FutureList widget\n\n```dart\n  FutureListBuilder\u003cLocation\u003e\n(\nurl: \"https://example.com/get/locations\",\nhttpMethod: HttpMethod.get,\nconverter: Location.fromJson,\nitemBuilder: LocationCard,\ndataPath: ['data'], //The data path in the json response body.\ncountPath: ['total_count'], //The total count path in the json response body.\nshimmerBuilder: () =\u003e ShimmerCard(width: 1,height:100,fillWidth: true),\npagination: true,\nonError: (errorMessage){\nprint(\"Error: $errorMessage\");\n},\n)\n```\n\nIn this example the response body should be\n\n```json\n{\n  \"data\": [\"item1\", \"item2\"],\n  \"total_count\": 20\n}\n```\n\n## Properties\n\n### FutureListBuilder\n\n| property                    | description                                                            | default                 |\n| --------------------------- | ---------------------------------------------------------------------- | ----------------------- |\n| url                         | the url of the data                                                    | required                |\n| httpMethod                  | http request method instance of HttpMethod                             | required                |\n| converter                   | function to convert from json to object                                | required                |\n| itemBuilder                 | function to get card widget from object                                | required                |\n| dataPath                    | path of the data list in the response body                             | required                |\n| itemBuilder                 | function to get card widget from object                                | required                |\n| header                      | json object                                                            | null                    |\n| body                        | json object will use only with getWithBody and post HttpMethod         | null                    |\n| scrollDirection             | instance of Axis                                                       | Axis.vertical           |\n| shimmerBuilder              | function return the shimmer card                                       | null                    |\n| shimmerCardsCount           | number of shimmer card when loading                                    | 3                       |\n| paginationShimmerCardsCount | number of shimmer card with pagination                                 | 3                       |\n| onError                     | callback function with error message \u003cbr\u003e (String) =\u003e void             | null                    |\n| callBack                    | callback function with list of object responses \u003cbr\u003e (List\u003cT\u003e) =\u003e void | null                    |\n| pagination                  | support pagination                                                     | false                   |\n| skipKey                     | the skip key which will be use in the header                           | skip                    |\n| limitKey                    | the limit key which will be use in the header                          | limit                   |\n| skip                        | the skip value which will be use in the header                         | 1                       |\n| limit                       | the limit value which will be use in the header                        | 6                       |\n| successStatusCode           | the success status code in the response                                | 200                     |\n| countPath                   | path of the total count number in the response body                    | null                    |\n| scrollPhysics               | scroll physics for list the list view                                  | BouncingScrollPhysics() |\n\n### ShimmerCard\n\n| property       | description                                              | default        |\n| -------------- | -------------------------------------------------------- | -------------- |\n| width          | shimmer card width                                       | required       |\n| height         | shimmer card height                                      | required       |\n| fillWidth      | if set true shimmer card will expand to fit screen width | false          |\n| baseColor      | base color                                               | Colors.grey    |\n| highlightColor | highlight color                                          | Colors.black12 |\n\n## Screenshots\n\n\u003cp float=\"left\"\u003e\n\u003cfigure\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/Obaa10/future-list/main/media/screenshot_1.png\" width=\"200\"\u003e\n\u003cfigcaption\u003eFig.1 - Shimmer effect while get data.\u003c/figcaption\u003e\n\u003c/figure\u003e\n\u003cfigure\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/Obaa10/future-list/main/media/screenshot_2.png\" width=\"200\"\u003e\n\u003cfigcaption\u003eFig.2 - Show result After get data.\u003c/figcaption\u003e\n\u003c/figure\u003e\n\u003cfigure\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/Obaa10/future-list/main/media/screenshot_3.png\" width=\"200\"\u003e\n\u003cfigcaption\u003eFig.3 - Shimmer effect while pagination.\u003c/figcaption\u003e\n\u003c/figure\u003e\n\u003c/p\u003e\n\n## Suggestions and Feedback\n\nWe value your suggestions and feedback to enhance this project.\u003c/br\u003e\nIf you have any ideas, feature requests, bug reports, or general feedback, we would love to hear from you. Your input is important to us, and it helps us improve the project for everyone.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fobaa10%2Ffuture-list","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fobaa10%2Ffuture-list","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fobaa10%2Ffuture-list/lists"}