{"id":19909300,"url":"https://github.com/kauemurakami/app_version_update","last_synced_at":"2026-02-05T20:13:28.391Z","repository":{"id":59409021,"uuid":"537139159","full_name":"kauemurakami/app_version_update","owner":"kauemurakami","description":"[Flutter package] An easy and quick way to check if the local app is updated with the same version in their respective stores (Play Store / Apple Store ).","archived":false,"fork":false,"pushed_at":"2025-03-20T01:50:31.000Z","size":333,"stargazers_count":32,"open_issues_count":5,"forks_count":24,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-27T06:01:39.732Z","etag":null,"topics":["android","applestore","dart","flutter","flutter-package","playstore"],"latest_commit_sha":null,"homepage":"https://pub.dev/packages/app_version_update","language":"Dart","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/kauemurakami.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}},"created_at":"2022-09-15T17:36:10.000Z","updated_at":"2025-07-22T10:09:05.000Z","dependencies_parsed_at":"2024-04-13T22:28:17.867Z","dependency_job_id":"266b74db-f5bd-42aa-b22b-dcd99024d925","html_url":"https://github.com/kauemurakami/app_version_update","commit_stats":{"total_commits":47,"total_committers":5,"mean_commits":9.4,"dds":"0.23404255319148937","last_synced_commit":"1f01465c994204716877f410cdf930084622656b"},"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"purl":"pkg:github/kauemurakami/app_version_update","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kauemurakami%2Fapp_version_update","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kauemurakami%2Fapp_version_update/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kauemurakami%2Fapp_version_update/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kauemurakami%2Fapp_version_update/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kauemurakami","download_url":"https://codeload.github.com/kauemurakami/app_version_update/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kauemurakami%2Fapp_version_update/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29133197,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T19:36:52.185Z","status":"ssl_error","status_checked_at":"2026-02-05T19:35:40.941Z","response_time":65,"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":["android","applestore","dart","flutter","flutter-package","playstore"],"created_at":"2024-11-12T21:15:00.226Z","updated_at":"2026-02-05T20:13:28.375Z","avatar_url":"https://github.com/kauemurakami.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Star on GitHub](https://img.shields.io/github/stars/kauemurakami/app_version_update.svg?style=flat\u0026logo=github\u0026colorB=deeppink\u0026label=stars)](https://github.com/kauemurakami/app_version_update)  \n\nRetrieve version and url for local app update against store app\nAndroid and iOS  \n\n## Features\n Using as reference packages like [in_app_update](https://pub.dev/packages/in_app_update) , [version_check](https://pub.dev/packages/version_check).\n\nCompares local version with the respective store version for the purpose of detecting user-side version updates.\n\nIt also provides widgets like dialog , bottom sheets and pages for you to display the update option to the user.\n\n## Getting started\n\n```\n$ flutter pub add app_version_update\n```\nor add in your dependencies\n```\ndependencies:\n  app_version_update: \u003clatest\u003e\n```\n\nto use this app you need to have the app hosted in stores.\n\nTo test, you can manually downgrade your pubspec.yaml from your ```version:``` , when you run your ```local version``` it will be different from the ```store version```\n\n## Usage\n\nInternet permission Android:\n`\u003cuses-permission android:name=\"android.permission.INTERNET\" /\u003e`\n\nInternet permission iOs:\n```dart\n\u003ckey\u003eNSAppTransportSecurity\u003c/key\u003e  \n\u003cdict\u003e  \n  \u003ckey\u003eNSAllowsArbitraryLoads\u003c/key\u003e\u003ctrue/\u003e  \n\u003c/dict\u003e  \n```\n\n```dart\nfinal appleId = '284882215'; // If this value is null, its packagename will be considered\nfinal playStoreId = 'com.facebook.katana'; // If this value is null, its packagename will be considered\n\nawait AppVersionUpdate.checkForUpdates(\n            appleId: appleId, playStoreId: playStoreId)\n        .then((data) async {\n            print(data.storeUrl);\n            print(data.storeVersion);\n            if(data.canUpdate!){\n              //showDialog(... your custom widgets view) \n              //or use our widgets\n              // AppVersionUpdate.showAlertUpdate\n              // AppVersionUpdate.showBottomSheetUpdate\n              // AppVersionUpdate.showPageUpdate\n              AppVersionUpdate.showAlertUpdate(\n              appVersionResult: data, context: context);\n            }\n         });\n```\n\nCustomize the Alert Dialog\n\n```dart\n// you also have some options to customize our Alert Dialog \nAppUpdateVersion.showAlertUpdate(\n    {BuildContext? context,\n      AppVersionResult? appVersionResult,\n      bool? mandatory = false,\n      String? title = 'New version available',\n      TextStyle titleTextStyle =\n          const TextStyle(fontSize: 24.0, fontWeight: FontWeight.w500),\n      String? content = 'Would you like to update your application?',\n      TextStyle contentTextStyle =\n          const TextStyle(fontSize: 16.0, fontWeight: FontWeight.w400),\n      ButtonStyle? cancelButtonStyle = const ButtonStyle(\n          backgroundColor: MaterialStatePropertyAll(Colors.redAccent)),\n      ButtonStyle? updateButtonStyle = const ButtonStyle(\n          backgroundColor: MaterialStatePropertyAll(Colors.green)),\n      String? cancelButtonText = 'UPDATE LATER',\n      String? updateButtonText = 'UPDATE',\n      TextStyle? cancelTextStyle = const TextStyle(color: Colors.white),\n      TextStyle? updateTextStyle = const TextStyle(color: Colors.white),\n      Color? backgroundColor = Colors.white})\n```\nCustomize the our bottom sheet\n\n```dart\nAppUpdateVersion.showBottomSheetUpdate(\n      {@required BuildContext? context,\n      @required AppVersionResult? appVersionResult,\n      bool? mandatory = false,\n      String? title = 'New version avaible',\n      Widget? content}) async {\n    await showModalBottomSheet(\n        isDismissible: !mandatory!,\n        context: context!,\n        builder: (context) =\u003e BottomSheetUpdateVersion(\n              appVersionResult: appVersionResult,\n              mandatory: mandatory,\n              content: content,\n              title: title,\n            ));\n  }\n```\n\nCustomize the Page\n```dart\n// you also have some options to customize our Page\nAppUpdateVersion.showPageUpdate(\n    {@required BuildContext? context,\n    @required AppVersionResult? appVersionResult,\n    bool? mandatory = false,\n    Widget? page}) async {\n     Navigator.push(\n        context!,\n        MaterialPageRoute(\n            builder: (context) =\u003e\n                page ??\n                UpdateVersionPage(\n                  mandatory: mandatory,\n                  appVersionResult: appVersionResult,\n                )));\n  }\n  \n \n```\n\n## Additional information\n\n| Next Updates                 | status      |\n|------------------------------|-------------|\n| Mandatory or optional update | released    |\n| Create TestMode              | development |\n| Bottom sheet widget          | released    |\n| Page widget                  | released    |\n| Handle Exceptions            | development |\n| New options custom widgets   | released    |\n| Automatic country detection  | released    |\n| Modularize files             | listed      |\n\nThis project is at an initial level, more functions will be included as\n\nSo any suggestion and contribution is welcome.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkauemurakami%2Fapp_version_update","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkauemurakami%2Fapp_version_update","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkauemurakami%2Fapp_version_update/lists"}