news 2026/8/10 3:58:42

2026年初,我们用Avalonia做了款跨平台绘图工具

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2026年初,我们用Avalonia做了款跨平台绘图工具

前言

2025年,对我和团队来说,是被挫折反复捶打的一年。

年初时,我们揣着满满的干劲规划全年目标,想着大干一场。可现实很快泼了冷水——接二连三的合同被退,让我们疲于应对;年底,一个跟进了半年多、投入了大量心血的项目,完成度达90%的项目,最终还是因意外流标。

有朋友不解:“没签合同,怎么就贸然动手了?”其实背后的苦衷,做企业服务的同行大概都懂:一来是合作多年的熟客,彼此有信任基础;二来是行业现状,如今很少有项目能等签完合同再启动。

更让人焦虑的是回款难题。有个项目的款项,我催了四个多月,每次开口都觉得为难,可公司要运转,员工要吃饭,实在别无选择。那段时间,我不止一次感慨:做企业定制化项目,真的太难了。看似是做产品,实则都是“一单一议”的定制服务,不仅累,还毫无可复制性,推广起来举步维艰,赚的完全是辛苦钱。

困在原地只会更被动。我心里渐渐生出一个念头:需要改变。AI的发展只会让B端软件产品的价格越来越低,与其在B端定制的红海里挣扎,不如转向C端市场,用订阅制的模式做通用产品——既弥补企业订单下滑的缺口,也给自己和团队找一条新出路。

目标虽远,但路要一步一步走。可具体做什么作为开始呢?我陷入了思考。

2025年做项目时,我们经常需要读取CSV文件,把两三列数据整合起来画成曲线图,通过简单交互分析数据变化。可就是这样一个“刚需小功能”,我们找了一圈,竟没找到一款趁手的软件——要么功能冗余复杂,要么收费高昂,要么不支持多格式文件。

“找不到,那就自己做个!” 这个念头一冒出来,就再也压不下去。我们决定:第一个C端产品,就从这款“解决实际痛点”的绘图软件开始。

它的功能不算复杂,几句话就能说清:支持Excel、CSV、Parquet、TSV多种格式文件读取,选好X轴和Y轴数据就能生成曲线图,还能交互式放大缩小、做标记;在此基础上,我们又加了多文件对比绘图、批量出图、公式绘图这些实用功能。

有人说“功能这么简单,能有市场吗?”,说实话,我也不知道。但我们始终相信:不积跬步无以至千里,不积小流无以成江海。转型的路上,最重要的不是一开始就做出多么完美的产品,而是勇敢迈出第一步。希望这款看似简单的绘图软件,就是我们突破困境的第一步。

产品方向定了,接下来就是技术选型——这直接决定了软件的体验和未来的发展空间。我们给软件定了四个核心目标,也围绕这些目标筛选了不少技术方案:

  1. 要“小”:一是安装包体积小,几百兆的软件,谁都没耐心下载安装;二是功能聚焦,规划时我们砍了很多无关功能,就怕贪多嚼不烂,把产品做成“四不像”;

  2. 要“快”:面对大文件时不能卡顿,我们计划用采样算法保证速度,放大查看时再根据数据范围实时细化,既不影响流畅度,也不耽误用户看细节;

  3. 要“简”:上手就能用,不用查手册、不用学教程,普通人看一眼就知道怎么操作;

  4. 要“跨平台”:Windows、macOS、Linux都能跑,而且体验要一致,不能在这个系统好用,换个系统就出问题。

一、技术选型:在纠结中找到最适合的路

1.1 桌面端技术筛选:排除了所有不合适,终于遇见“对的它”

做桌面端跨平台开发的技术有很多,我们逐一试错、筛选,走了不少弯路:

  • QT:性能好、跨平台能力强,是成熟的C++原生框架,但开发速度慢。我的C++只有入门水平,团队也没有相关经验,硬上只会拖慢进度,只能忍痛排除;

  • Electron:基于Chromium+Node.js,本质是“网页套壳”,开发效率高、界面能做得很漂亮,前端同学就能上手。但最大的问题是打包体积太大,随便就100多MB,和我们“小而精”的目标相悖,也排除;

  • Tauri:作为Electron的替代方案,用Rust替代Chromium,体积小、内存占用低,本是备选之一。但我学了一段时间Rust后还是放弃了——学习曲线太陡,语法习惯也很难适应,对我们来说上手成本太高。

就在我们快要陷入僵局时,2025年的一个项目给了我们灵感:当时我们用WPF开发系统,偶然发现原来.NET也能做跨平台,还了解到了Avalonia这款开源跨平台.NET UI框架。

有了WPF的基础,再学Avalonia就特别轻松,几乎没有学习成本;后来又找到了SuKiUI这个漂亮的开源UI库,界面美观度的问题也解决了。没纠结多久,我们就敲定了技术方案——就用Avalonia!

1.2 注册支付:把“麻烦”留给自己,把便捷留给用户

既然是订阅制产品,就必须有简单易懂的注册和支付体系。我平时下载软件时,最烦的就是繁琐的注册流程:填手机号、收验证码、填邮箱、设密码……一套下来,下载的兴致都没了。

所以这次我们下定决心:要让注册和支付“零门槛”。最终接入了微信登录,用户只需用微信扫码,一秒就能完成登录,不用填任何信息;支付也是一样,微信扫码就能完成订阅,全程不超过3步。

不过说实话,微信登录和支付的申请流程,以及后台代码的编写,比我们想象中复杂得多。幸好团队里有位同事有过支付开发的经验,靠着他的专业和耐心,一步步攻克了所有难题,完美实现了PC端的微信扫码登录和支付功能。

again,有人质疑“功能这么简单,没人会买吧?” 我们并不焦虑。这款软件对我们来说,更像是一个“试水产品”——成功了,我们能收获第一批用户和市场反馈;就算失败了,我们也搭建起了C端产品的注册、支付体系,为后续的开发积累了宝贵经验。

毕竟,每一次尝试都有意义:成功了收获结果,失败了收获成长。

二、软件最终效果

2.1 单文件绘图效果展示

根据所选列自动生成曲线图,支持对关键数据点做竖线标记、数字标记、曲线标记,还能对曲线上的亮点进行测距,精准满足数据查看需求。

2.2 多文件对比绘图效果展示

支持同时加载多个文件,选择需要对比的列,就能一键生成对比图,方便直观地查看不同数据集的差异。

2.3 批量制图

只需选择数据所在目录,设置好绘图规则,就能批量生成符合要求的图表,大大节省重复操作的时间。

2.4 公式绘图

支持输入简单的数学公式,一键生成对应的曲线图,满足基础的公式可视化需求。

2.5 暗黑配色

内置暗黑模式,长时间使用也不刺眼,适配不同使用场景和用户习惯。

2.6 英文界面

支持英文界面切换,方便海外用户使用。

三、想对你说的话

这款软件,是我们从B端困境中突围的第一次尝试,它不完美,功能也还有很大的优化空间。

如果你是程序员,觉得这款软件有可以改进的地方,欢迎提出你的宝贵意见;如果你正好需要一款绘图软件,却发现我们的产品缺少你需要的功能,也请告诉我你的需求;如果你在工作中遇到了数据可视化的痛点,急需一款工具提升效率,同样欢迎和我们交流。

最后,附上软件的下载地址:https://dealen.cn/foxplot/download
(温馨提示:MacOS系统暂时仅支持Intel芯片架构)

欢迎你看到这里,也期待你的尝试和反馈~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/2 18:08:33

Obsidian模板终极指南:从知识混乱到高效整理

Obsidian模板终极指南:从知识混乱到高效整理 【免费下载链接】Obsidian-Templates A repository containing templates and scripts for #Obsidian to support the #Zettelkasten method for note-taking. 项目地址: https://gitcode.com/gh_mirrors/ob/Obsidian-…

作者头像 李华
网站建设 2026/8/9 5:55:07

HunterPie实战指南:重新定义你的怪物猎人游戏辅助体验

HunterPie实战指南:重新定义你的怪物猎人游戏辅助体验 【免费下载链接】HunterPie-legacy A complete, modern and clean overlay with Discord Rich Presence integration for Monster Hunter: World. 项目地址: https://gitcode.com/gh_mirrors/hu/HunterPie-le…

作者头像 李华
网站建设 2026/8/8 16:36:09

如何快速搭建智能茅台预约系统:零基础完整教程

如何快速搭建智能茅台预约系统:零基础完整教程 【免费下载链接】campus-imaotai i茅台app自动预约,每日自动预约,支持docker一键部署 项目地址: https://gitcode.com/GitHub_Trending/ca/campus-imaotai 还在为每天手动抢购茅台而疲惫…

作者头像 李华
网站建设 2026/7/31 10:00:38

AutoCAD字体管理新方案:FontCenter智能插件全面解析

AutoCAD字体管理新方案:FontCenter智能插件全面解析 【免费下载链接】FontCenter AutoCAD自动管理字体插件 项目地址: https://gitcode.com/gh_mirrors/fo/FontCenter 还在为AutoCAD图纸字体显示异常而烦恼?传统的字体管理方式不仅效率低下&#…

作者头像 李华
网站建设 2026/8/8 12:59:46

AutoDock-Vina分子对接:7个实战技巧帮你避开常见陷阱

AutoDock-Vina分子对接:7个实战技巧帮你避开常见陷阱 【免费下载链接】AutoDock-Vina AutoDock Vina 项目地址: https://gitcode.com/gh_mirrors/au/AutoDock-Vina 还在为分子对接结果不理想而苦恼?AutoDock-Vina作为当前最流行的开源分子对接工具…

作者头像 李华
网站建设 2026/8/6 20:38:13

TradingView策略优化工具:让技术分析变得更简单高效

TradingView策略优化工具:让技术分析变得更简单高效 【免费下载链接】tradingview-assistant-chrome-extension An assistant for backtesting trading strategies and checking (showing) external signals in Tradingview implemented as a Chrome browser extens…

作者头像 李华