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

flutter+go 写了个下载器,全平台可以用,支持 http 和 bt 协议

  •  
  •   monkeyWie · 2022-11-04 12:31:52 +08:00 · 3863 次点击
    这是一个创建于 752 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这个技术栈真的挺不错的,go 负责网络,flutter 负责 UI ,桌面端+手机端+Web 端全部一套代码搞定,桌面端 flutter 通过 ffi 调用 go 生成的动态库,移动端 flutter 通过 channel 调用 gomobile 生成的库,感觉浑然一体。

    有点要吐槽的是 flutter 写起来还是太麻烦了,没有 js 写 ui 那么方便,但是谁叫它能支持所有平台呢,只能用着了。

    附 github: https://github.com/monkeyWie/gopeed

    31 条回复    2023-02-13 12:06:37 +08:00
    buxudashi
        1
    buxudashi  
       2022-11-04 12:34:42 +08:00
    抵制 flutter 。

    各种环境,版本都有可能 升级或者不兼容。玩段时间你就会发现,想一通百通的东西,还要面对太多复杂的东西。
    HoshinoRei
        2
    HoshinoRei  
       2022-11-04 12:47:52 +08:00 via iPhone
    iOS 的呢?
    monkeyWie
        3
    monkeyWie  
    OP
       2022-11-04 13:38:37 +08:00
    @HoshinoRei #2 ios bt 协议好像上不了架,先不做了
    w88975
        4
    w88975  
       2022-11-04 14:23:10 +08:00   ❤️ 7
    @buxudashi 接触过那么多跨平台开发的玩意, 直到我用了 flutter 才知道 UI 交互可以这么统一, 你说的这些缺点跨平台框架都有, 你该抵制的是跨平台开发, 而不是 flutter
    likeme
        5
    likeme  
       2022-11-04 15:21:15 +08:00
    老哥搞了 flutter 多久了
    monkeyWie
        6
    monkeyWie  
    OP
       2022-11-04 15:23:16 +08:00
    @likeme 第一个项目,基本可以说是从零开始
    Rrrrrr
        7
    Rrrrrr  
       2022-11-04 15:32:42 +08:00
    牛比啊
    likeme
        8
    likeme  
       2022-11-04 15:54:20 +08:00
    @monkeyWie 老哥看什么教程学的 flutter
    monkeyWie
        9
    monkeyWie  
    OP
       2022-11-04 16:04:17 +08:00
    @likeme 基本就是看官网啊,然后掘金的一些文章
    monkeyWie
        10
    monkeyWie  
    OP
       2022-11-04 16:05:22 +08:00
    @likeme 最主要的是不要试图理解和使用官方推荐的状态库,直接用 GetX ,非常的无脑
    pansongya
        11
    pansongya  
       2022-11-04 16:32:54 +08:00 via iPhone
    大佬 go 那块编译不了 没有 mod
    monkeyWie
        12
    monkeyWie  
    OP
       2022-11-04 16:39:04 +08:00
    @pansongya 有的呀,要不进 discord 群细聊?
    likeme
        13
    likeme  
       2022-11-04 16:45:11 +08:00
    本来学的好好的,看 bloc 和另外那个状态库给我看傻了。
    huohei
        14
    huohei  
       2022-11-04 17:06:36 +08:00
    @monkeyWie GetX 太全面了, 如果只是要状态管理 Provider 就足够了 https://www.reddit.com/r/FlutterDev/comments/po1bei/why_is_getx_such_a_bad_state_management/
    huohei
        15
    huohei  
       2022-11-04 17:10:32 +08:00
    @likeme bloc 比较复杂,Provider 简单易用并且官方推荐
    Trim21
        16
    Trim21  
       2022-11-04 17:19:02 +08:00
    cli 的默认文件保存路径怎么是 ~/go/bin 😂
    monkeyWie
        17
    monkeyWie  
    OP
       2022-11-04 17:27:47 +08:00
    @Trim21 默认安装在 GOROOT 目录下的
    Trim21
        18
    Trim21  
       2022-11-04 17:35:47 +08:00
    @monkeyWie #17 我知道 go install 默认会把可执行文件安到 GOBIN 下面,这个很正常。但是用 cli 下载的其他文件的默认保存路径也是 GOBIN ,这个很奇怪啊
    Trim21
        19
    Trim21  
       2022-11-04 17:39:39 +08:00
    ❯❯ ~ gopeed.exe -h
    Usage of ~\go\bin\gopeed.exe:
    -C int
    Concurrent connections. (default 16)
    -D string
    Store directory. (default "~\\go\\bin")
    monkeyWie
        20
    monkeyWie  
    OP
       2022-11-04 17:51:08 +08:00 via Android   ❤️ 1
    @Trim21 那确实是个问题啊,我改改😂
    monkeyWie
        21
    monkeyWie  
    OP
       2022-11-04 18:49:29 +08:00 via Android
    @Trim21 要不来个 pr
    Trim21
        22
    Trim21  
       2022-11-04 20:03:52 +08:00 via Android
    @monkeyWie ui/web 会用到这个默认值吗?我本来是想提个 PR 改成默认 cwd 的,但是不确定会不会影响到其他的东西。
    monkeyWie
        23
    monkeyWie  
    OP
       2022-11-04 21:07:26 +08:00 via Android
    @Trim21 直接改 cmd 里的代码就行了,默认把 path 设置下就行,不影响其他的
    zyxk
        24
    zyxk  
       2022-11-04 22:34:34 +08:00
    你这都用 flutter 了 , Windows 怎么还用 web, 怎么不是客户端直接打开 ui
    monkeyWie
        25
    monkeyWie  
    OP
       2022-11-04 22:41:07 +08:00
    @zyxk #24 windows 有客户端的啊,web 版是另一种形式,可以做远程下载服务
    magic3584
        26
    magic3584  
       2022-11-04 22:52:34 +08:00
    大佬牛皮,点主页看发现之前早 star 过 proxyee-down 。

    我也刚用 flutter 开发了简单的 app 上架,「 viewWillAppear 」用的是 「 RouteAware 」,bloc 和 GetX 都没看,想着少用第三方库,但是传值回调略痛苦。

    想学一点后端来着,Java 看了点,不知道 Go 学起来怎么样。
    monkeyWie
        27
    monkeyWie  
    OP
       2022-11-05 10:46:12 +08:00
    @magic3584 #26 面向工作的话建议 java ,不是的话可以直接上 go 啊
    pansongya
        28
    pansongya  
       2022-11-08 16:21:15 +08:00
    @magic3584 你名字打错了吧 没找这个软件 「 viewWillAppear
    magic3584
        29
    magic3584  
       2022-11-08 17:18:26 +08:00
    @pansongya #28
    大佬误会了,「 viewWillAppear 」是 iOS 里 Controller 生命周期的一个方法,顾名思义就是在页面每次刷新的时候调用
    HungryOrangeCat
        30
    HungryOrangeCat  
       2023-02-13 09:13:17 +08:00
    flutter 是怎么调用起来 go 的呢,靠 http 前后端分离那种模式?还是有更 native 的
    monkeyWie
        31
    monkeyWie  
    OP
       2023-02-13 12:06:37 +08:00
    @HungryOrangeCat #30 可以用 ffi ,但是为了更通用现在用的 http 前后端分离
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5661 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 09:08 · PVG 17:08 · LAX 01:08 · JFK 04:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.