{"id":18784563,"url":"https://github.com/zhujiang521/flutter_play_android","last_synced_at":"2025-08-10T06:11:38.987Z","repository":{"id":108588728,"uuid":"251555124","full_name":"zhujiang521/flutter_play_android","owner":"zhujiang521","description":"Flutter版本的玩安卓","archived":false,"fork":false,"pushed_at":"2020-06-27T02:33:58.000Z","size":3879,"stargazers_count":50,"open_issues_count":0,"forks_count":16,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-05T16:42:35.743Z","etag":null,"topics":["flutter","wanandroid"],"latest_commit_sha":null,"homepage":"https://blog.csdn.net/haojiagou/article/details/105265863","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zhujiang521.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2020-03-31T09:18:46.000Z","updated_at":"2025-05-21T02:22:05.000Z","dependencies_parsed_at":"2023-04-01T03:03:06.495Z","dependency_job_id":null,"html_url":"https://github.com/zhujiang521/flutter_play_android","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/zhujiang521/flutter_play_android","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhujiang521%2Fflutter_play_android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhujiang521%2Fflutter_play_android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhujiang521%2Fflutter_play_android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhujiang521%2Fflutter_play_android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zhujiang521","download_url":"https://codeload.github.com/zhujiang521/flutter_play_android/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhujiang521%2Fflutter_play_android/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269683324,"owners_count":24458659,"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-08-10T02:00:08.965Z","response_time":71,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","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":["flutter","wanandroid"],"created_at":"2024-11-07T20:43:24.662Z","updated_at":"2025-08-10T06:11:38.979Z","avatar_url":"https://github.com/zhujiang521.png","language":"Dart","readme":"## 历时三天，完成了Flutter版本的玩安卓\n\n### 前言\n\n接触Flutter其实已经很久了，从18年下半年就开始关注FLutter了，当时使用Flutter的人还非常少，我也只是大概看了看，写了个小Demo就没再深入了，短短不到两年时间，各大博客社区移动端的文章有一大部分都是关于FLutter的，可以看到，Flutter真的火起来了。\n\n### 正文\n\n关注泓洋大神已经许久，在玩安卓上也学习了很多的知识，看着很多人写了很多版本的玩安卓客户端，有Java的、有Kotlin的、还有Flutter的。其实很早就有自己也写一个玩安卓来练练手的想法，但一直由于时间不够没有付诸实践，这回抽了几天时间，基本完成了常用的功能，比如：文章列表、项目列表、公众号列表、收藏、积分、文章搜索、登录注册等等。\n\n废话不多说，直接来看一下项目的部分截图吧：\n\n| \u003cimg src=\"images/home.png\" alt=\"\" style=\"zoom:25%;\" /\u003e | \u003cimg src=\"images/project.png\" alt=\"\" style=\"zoom:25%;\" /\u003e | \u003cimg src=\"images/wxarticle.png\" alt=\"\" style=\"zoom:25%;\" /\u003e |\n| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |\n| \u003cimg src=\"images/profile.png\" alt=\"\" style=\"zoom:25%;\" /\u003e | \u003cimg src=\"images/about.png\" alt=\"\" style=\"zoom:25%;\" /\u003e | \u003cimg src=\"images/article.png\" alt=\"\" style=\"zoom:25%;\" /\u003e |\n| \u003cimg src=\"images/coin.png\" alt=\"\" style=\"zoom:25%;\" /\u003e | \u003cimg src=\"images/collection.png\" alt=\"\" style=\"zoom:25%;\" /\u003e | \u003cimg src=\"images/search.png\" alt=\"\" style=\"zoom:25%;\" /\u003e |\n| \u003cimg src=\"images/theme.png\" alt=\"\" style=\"zoom:25%;\" /\u003e | \u003cimg src=\"images/user.png\" alt=\"\" style=\"zoom:25%;\" /\u003e | \u003cimg src=\"images/articlea.png\" alt=\"\" style=\"zoom:25%;\" /\u003e |\n\n### 依赖库\n\n看完了效果图，这里再来放一下用到的依赖库吧：\n\n- **flutter_screenutil**    屏幕适配\n- **fluttertoast**    吐司\n- **shard_preferences**    类似安卓的sp\n- **event_bus**    和安卓的eventbus类似\n- **image_picker**    图片选择\n- **http**    网络请求\n- **flutter_swiper**    轮播图\n- **flutter_webview_plugin**    webview插件\n- **pull_to_refresh**    下拉刷新、上拉加载\n\n上面的这些库大家可以进https://pub.dev/来进行搜索使用。\n\n### 遇到的问题\n\n三天时间，其实也没有遇到多少问题，说几个比较恶心的问题吧：\n\n- 首先是TabBar和TabView显示公众号的页面，自己想的是直接获取到公众号数据的同时刷新TabController并且直接请求当前公众号的文章列表，这些操作全放在了一块，当时就给我整懵逼了，然后TabView的滑动监听还有问题🤨，后来直接不自己监听了，直接交给TabBar来实现，我需要做的只有新建一个Widget，在里面完成公众号列表的实现，万物皆Widget嘛！\n- 后来写完了不需要cookie的接口后（无需登录的接口），在实现需要cookie的接口的时候差点把我弄崩溃，cookie在后台使用较多，但写安卓的时候也没有用过cookie，看泓洋大神写的用PostMan实现也能成功，但是我自己调用的时候给headers传cookie时一直不对，后来想明白了，cookie只是header的一个参数，我把用户名和密码的key学着PostMan都写成了cookie，后台肯定获取不到啊，改了之后就可以了。\n- 接下来这个应该属于flutter_webview_plugin插件的一个Bug吧，我在使用WebViewScaffold的时候，死活弹不出底部对话框，但是换成Scaffold的时候就可以弹出来，WebViewScaffold将我们的底部对话框给遮挡住了，所以弹不出来；然后就换了一个思路，直接在WebViewScaffold中的bottomNavigationBar中加上想弹出的页面不得了，然后控制好显示与否就行，具体实现项目中都有，这里不做赘述。\n\n### 总结\n\nFlutter很好用，优点就是开发成本低、速度快、效率高，但缺点也很明显，界面嵌套太多，后期维护很费劲。我也尝试着将安卓中的MVP写到Flutter中，但是效果并不是太好，所以就先放弃了，只能是多抽几个Widget了。大家如果有空也可以自己照着弘扬大神的玩安卓的api写写试试（https://www.wanandroid.com/blog/show/2），如果那块帮助到你了，万分荣幸。\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhujiang521%2Fflutter_play_android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzhujiang521%2Fflutter_play_android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhujiang521%2Fflutter_play_android/lists"}