V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lujie2012
V2EX  ›  Flutter

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

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

    今年初到现在公司使用了 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
    lujie2012
        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   ·   我们的愿景   ·   实用小工具   ·   1570 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 17:00 · PVG 01:00 · LAX 10:00 · JFK 13:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.