Flutter backend develop 后端开发和 Web 项目开发 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lujie2012
V2EX    Flutter

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

  •  
  •   lujie2012 2021-04-16 14:51:21 +08:00 3349 次点击
    这是一个创建 1701 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今年初到现在公司使用了 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 的技术栈有兴趣,个人兴趣,不扯钱和就业,大小公司都呆过。

    12 条回复    2021-06-12 15:50:18 +08:00
    lonelymarried
        1
    lonelymarried  
       2021-04-16 15:49:07 +08:00
    dart 要一把梭了
    lujie2012
        2
    lujie2012  
    OP
       2021-04-16 15:51:25 +08:00
    @lonelymarried 目前还没有,dart 很弱鸡,不过 null-safety 2.0 开始算是进入新的世界了

    付费求有 dart backend 开发经验的前辈请教!
    ReysC
        3
    ReysC  
       2021-04-16 15:56:08 +08:00
    dart 作为后端?真的很少听人用这个作为后端,考虑 Java 或者 PHP 如何?
    lujie2012
        4
    lujie2012  
    OP
       2021-04-16 16:02:45 +08:00
    @ReysC 就是兴趣啊,不为利益啊,因为使用了 dart 开发 flutter,所以就研究 dart 做后端,不需要语言来回切换。dart 本身涉及的范围还挺广的,能兼容使用 c,借力很在行。。。
    lujie2012
        5
    lujie2012  
    OP
       2021-04-16 16:26:37 +08:00
    油管上还是有作者在教学,目前发现官方的 shelf 比较完善,我先使用它整一个根据不同 url 返回不同 json 的 rest service
        6
    lujie2012  
    OP
       2021-04-16 16:59:43 +08:00   1
    我想我已经找到了路径,在看了这个视频之后,我自己测了 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
        7
    DrakeXiang  
       2021-04-17 18:46:07 +08:00
    我记得前几年的谷歌发布会里面有公司就是全栈 dart,不过 dart 现在官方定位还是用户端,这么剑走偏锋感觉不如另找成熟语言
    cctrv
        8
    cctrv  
       2021-04-23 06:55:08 +08:00 via iPhone
    lujie2012
        9
    lujie2012  
    OP
       2021-04-23 10:03:49 +08:00
    @cctrv 给你一个小红心! Cool
    是的,我看 medium 分析 dart backend 文章也是说官方文档很糟糕。
    我在学习 Shelf 的 POST 获取参数都话费了很久才理解使用 AsString 方法。。。
    我是 iOS Flutter Dart enthusiast,只是把 dart 的知识面扩展一下,没有直接去开发后端需求的项目,我是移动端开发,主要负责 Application 的开发
    lujie2012
        10
    lujie2012  
    OP
       2021-04-23 10:25:23 +08:00
    sunbreak
        11
    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
        12
    lujie2012  
    OP
       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
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     848 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 20:15 PVG 04:15 LAX 12:15 JFK 15:15
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86