zoukankan      html  css  js  c++  java
  • 用antd和webview打造一款大数据客户端程序

    要想提高工作效率,必须得有好的工具。大数据有很多组件,但是邪了门儿的就是,竟然没有一个好用的客户端程序。
    没办法,我只好用antd+webview自己做了一款跨平台的桌面应用。

    先看下效果。

    preview

    这是github地址:https://github.com/CJSoldier/whitepawcat。我一个人做有点孤单,还有点累,希望能跟大家一起玩。

    为什么要做成桌面应用,做成web服务,用浏览器不好吗?

    我觉得不好。因为我经常打开太多tab页了,到时候就不知道哪个tab也是咱们的大数据客户端程序了。而且当我们把右边所有的tab都关闭时,很可能会把我们的大数据客户端也关了。还有一个不好的地方就是没办法用alt+tab来切换应用。

    做成web服务的形式不是不可以,但是比较尴尬。首先它会占用一个端口,我不喜欢看到“端口冲突” 的错。
    更重要的是,做成web服务的话,jar包冲突怎么解决? 就算自定义一个classloader,每次加载不同的jar包。但是这个http服务什么时候开启呢?
    在双击程序之后就立马启动还是提前部署到某个地方?

    要知道这是桌面应用诶,桌面应用不应该是一双击就能用的吗?

    为什么不用electron?

    因为打包后文件太大,而且启动速度太慢。VS Code启动速度很快呀。 对,但它是微软出品的。一般情况下用electron打包的程序启动很慢的。我试过。

    为什么不用bootstrap+jquery?

    因为react可以做成单页面,这样看起来更像桌面程序。而且,似乎react渲染的更快一些。

    为什么用自定义一个classloader来加载Jar包?

    这是为了解决jar包冲突的问题。试想一下,我要连接两个版本的Hbase,一个是0.94,一个是1.2.0,如果jar包都放在一起冲突了怎么办?

    为什么Java代码不做成服务的形式

    我不想占用用户的端口。而且我觉得这是个真·桌面程序,不想让它看起来像一个web程序。

    webssh不还是用了bootstrap+jquery?不还是要占用一个端口?

    问的好。 我自己没本事做一个ssh客户端程序。只好把huashengdun/webssh直接拿来用了。 这个我也是无奈。如果你有心,你可以用react-xterm+java来做一个ssh,感激不尽。

    为什么有很多硬编码?

    约定大于配置,我是这样安慰自己的。

    为什么代码看起来很矬?

    Keep it simple stupid,我是这样安慰自己的。

    为什么没有Linux版本的?不是号称跨平台嘛?

    问的好。因为webview在linux下编译需要安装gtk-webkit。我没装成功。
    这是zserge/webview的地址: https://github.com/zserge/webview.
    你可以按文档说的试一下,其实不难的。

    感觉开发起来好复杂

    乍一看是复杂,我在写README的时候就感觉到了。 仔细一想其实不复杂。 C代码不用动,第一步就不用编译了。webssh我也已经编译好了。除非你修改了需要重新编译,否则直接从release里拷贝一份就可以了。 剩下的就跟开发web应用一模一样了。

  • 相关阅读:
    【poj1008】Maya Calendar
    【CodeVS4093】EZ的间谍网络
    2016.6.19 模拟考试
    【poj1129】Channel Allocation
    【poj2676】Sudoku
    Java 2D API
    Java 2D API
    IntelliJ IDEA
    IntelliJ IDEA 使用说明(For Eclipse user)
    IntelliJ IDEA
  • 原文地址:https://www.cnblogs.com/ahau10/p/9668003.html
Copyright © 2011-2022 走看看