Flutter backend develop 后端开发和 Web 项目开发

2021-04-16 14:51:21 +08:00
 lujie2012

今年初到现在公司使用了 Flutter 完成了一个 POS 扫码的项目开发,我做为主力参与其中。现在基本上完成,我从 2019 年 9 月在没有太多任务的时候,投入学习 dart 开发,之后也为后面的项目快速实现打了基础。后面我研究了 Flutter nav1.0 和 nav2.0 在后面我们项目我坚定使用 Flutter 2.0 null-safety 开发。flutter 的 GUI 界面开发对我来说一点难度都没有,本来 iOS 的 stackview+Flixbe+autolayout 在 flutter 上一个套路,熟悉官方 Gallery 之后,更方便的找到需要的组件。

那么现在:我最感兴趣的是 dart 的 banckend 后端开发,还有使用 flutter 开发 web 界面,web 管理后台项目。

于是我去找了资料看看现在 dart 的 server 目前进展如果,结果上来就发现 Aqueduct 宣布不维护了!然后就是 angel,最后就是官方的 sever 库。想不到在 meduim 上有作者已经对此进行了跟进和分析: https://medium.com/flutter-community/web-server-frameworks-for-dart-197a073299eb

他也建议如果想深入和全面的了解 dart 在 server 的姿势,那么还是从官方提高的基础框架开始起步。

但是当我看了两天 dart 的 service 的文档,我已经分不清楚 dart web apps 和 flutter web 两者的区别。。。当然官方也自己说了他们的 web 开发适合三个情况:1.web app 2.潜入 web 3.多设备支持 wbe 也许这里理解有错误,大概如此。还有不同的 render 框架,会影响包大小和性能和效果

而关于 dart 的 service 开发,官方命名 command line,做为有 java 开发经验,没有发现类似 tomcat 这样的 service CGI 容器。

关于以上项目和我都记录在个人资料里面,不做宣传,因为没有营养的技术文章太多,我只是记录现在自己做的事情,没有利益瓜葛,一直想关闭,只是目前还在记录一些事情。

发帖目的:找一下有没有我和一样在研究和探索 Dart service 开发,dart 写 web 管理后台,或者 dart 写 web 页面的朋友,加我一起来互相分享和迭代呀。我只听说咸鱼在一条龙进行 dart 的技术栈。还有没有什么公司有这样的计划和执行中,可以告诉我一下?

关于技术好坏的讨论没有意义,当初前端搞 nodejs 我感觉都是要干掉 java 后端一条龙的目标,现在呢?我只是对 flutter 的技术栈和 dart 的技术栈有兴趣,个人兴趣,不扯钱和就业,大小公司都呆过。

2953 次点击
所在节点    Flutter
12 条回复
lonelymarried
2021-04-16 15:49:07 +08:00
dart 要一把梭了
lujie2012
2021-04-16 15:51:25 +08:00
@lonelymarried 目前还没有,dart 很弱鸡,不过 null-safety 2.0 开始算是进入新的世界了

付费求有 dart backend 开发经验的前辈请教!
ReysC
2021-04-16 15:56:08 +08:00
dart 作为后端?真的很少听人用这个作为后端,考虑 Java 或者 PHP 如何?
lujie2012
2021-04-16 16:02:45 +08:00
@ReysC 就是兴趣啊,不为利益啊,因为使用了 dart 开发 flutter,所以就研究 dart 做后端,不需要语言来回切换。dart 本身涉及的范围还挺广的,能兼容使用 c,借力很在行。。。
lujie2012
2021-04-16 16:26:37 +08:00
<amp-youtube data-videoid="SDE5d4GcAdc" layout="responsive" width="480" height="270"></amp-youtube>油管上还是有作者在教学,目前发现官方的 shelf 比较完善,我先使用它整一个根据不同 url 返回不同 json 的 rest service
lujie2012
2021-04-16 16:59:43 +08:00
我想我已经找到了路径,在看了这个视频之后,我自己测了 dart exmaole.dart 官方 shelf 的 demo,设置 localhost 为我的电脑 ip,然后设置手机代理请求到我的电脑 http://192.168.0.113:8080/9898x,然后 chrals 抓包,成功的获取到了全部 http 的信息,默认头部是 text/plain 。
哈哈,我想我的目标有了,先使用 shelf 开发请求协议是 text/json,写 API 做为 APP 或者 web 应用的服务端,这样简单的 HTTP+APP/WEB 就可以玩起来。另外在看一下怎么设置 HTTPS 协议,有了加密之后,在看如果在 shelf 里面访问数据库,把数据库加入进来,那么最基本的操作就有了。
之后就是 token 和 cookie 的事情,一点点的往里面填东西,一个后端的样子就齐全了。
nice !!!!
关于 shelf 的资料官方给的是太少了,另外给了很多网络库看的头晕,但是目前确定围绕 shelf 来开发是最 easy 的。
之后我把写的项目代码放到我的 github 上去吧。
DrakeXiang
2021-04-17 18:46:07 +08:00
我记得前几年的谷歌发布会里面有公司就是全栈 dart,不过 dart 现在官方定位还是用户端,这么剑走偏锋感觉不如另找成熟语言
cctrv
2021-04-23 06:55:08 +08:00
lujie2012
2021-04-23 10:03:49 +08:00
@cctrv 给你一个小红心! Cool
是的,我看 medium 分析 dart backend 文章也是说官方文档很糟糕。
我在学习 Shelf 的 POST 获取参数都话费了很久才理解使用 AsString 方法。。。
我是 iOS Flutter Dart enthusiast,只是把 dart 的知识面扩展一下,没有直接去开发后端需求的项目,我是移动端开发,主要负责 Application 的开发
lujie2012
2021-04-23 10:25:23 +08:00
sunbreak
2021-06-11 23:45:20 +08:00
加微信交流:wk2311007

# Web 前端

- Flutter Web

字节内部对 Flutter Web 做了一些探索,HtmlCanvas 做小页面,CanvasKit 做大点页面。总体来说更适合 https://rive.app 这种重渲染应用,而不是 web-like 的网页应用

- Dart Web

最早 Dart 是直接裸操作 DOM 的,后来发展出 AngularDart,目前 Google 半封闭了 AngularDart (仅对内支持),主推 Angular 。我根据 Angular 的教程 https://thinkster.io/tutorials/building-real-world-angular-2-apps,写过对应 AngularDart 版本: https://github.com/Sunbreak/angulardart-realworld-example-app

# 后端

Aqueduct 官方确实不维护了,社区自己维护的版本是 Conduit: https://www.reddit.com/r/FlutterDev/comments/nkbckn/conduit_release_meeting/?utm_source=ifttt

Shelf 资料确实比较少,参见: https://github.com/dart-lang/site-www/issues/3058

另外 Google 自己在主推 Dart on Serverless: https://twitter.com/GCPPodcast/status/1397601023099867136
lujie2012
2021-06-12 15:50:18 +08:00
@sunbreak
谢谢你的解惑,让我大概知道 Flutter web 和 Dart web 的区别。简单说 Flutter web 是使用 Flutter 的集成开发环境来讲写代码最后构建为 HTML 的 project,是基于 Canvas 的模型。而 Dart web 则和最开始的 JQuery 一样直接 dom,但是这已经是违背当前主流的前端开发思想尤其是 Vue 。Dart web 目的是提供最基本的能力,告诉大家可以这么,需要玩高级的等你来 push 。

而我问的 dart 的 backend 开发,google 提供了最基本的能力,也是告诉大家可以这么玩,需要高级的等你来 push 。

最后我说的有没有 tomcat 这样的 CGI 容器,你给我的答案是 severless,现在几大云都在做后端改革,做到动态扩容,中间件,不需要开发者自己部署和操心 server 容器的问题。

之前几年我在 iOS 的移动端开发圈圈里,前端,后端,云服务,我已经缺了很多知识和眼界。哈哈,我的知识已经成为基石了,好比打开任何 HTML 页面还是 JS 一切没有变,但是开发模式和工具早已经变了。

谢谢你的分享,让我获得了新的思路。

这是我使用 dart 写的 rest 风格的后端

https://github.com/luffyjie/pos_bankend

纯 flutter 的 APP 项目使用上面的后端
https://github.com/luffyjie/pos

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/771101

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX