一次开发跨平台发布,节省开发成本的同时也可以提高平台软件的统一性,不会有ui或者操作不一致的问题,ux会特别喜欢这种开发方式。
市面上自称可以跨平台的软件特别多:javafx,flutter,swiftui、electron和qt;
刨除手机平台,跨的可以是桌面平台 windiows 、macOs、Linux;
在这些技术中, flutter和swiftui均需要学习新的语言,qt可以接受最多语言,但是授权方面比较麻烦,要做大的平台软件的话需要支付一笔不菲的授权费用。javafx和electron都是支持已经大范围支持的语言。javafx支持java语言开发,electron支持JavaScript语言开发;
因为目前票务系统已经包括了 windows7 、windows10 、Linux、Linux-lit(树莓派)、Android【多个版本】等,系统庞杂,虽然不能真的是一个技术吃遍所有的设备,但是希望桌面设备 取票机、闸机、收银机能使用跨平台开发,一次搞定多个平台。然后树莓派和Android可以做成一个跨平台,手持移动式的功能和需求不同。
原来的技术包括 c#的winfrom技术,Android原生开发 ,qt等,一个设备需要开发一次软件,ui需要重新制作,而且平台间的软件是独有的,最佳配合的嘛,所以复用性特别差。Windows平台选型用C#开发,但是因为我们有的景点是定制型的,所以我们的软件还分成完全winfrom开发的,还有一个是winfrom框架带上angular技术 ui的灵活性变高了,但是相关技术有点滞后,相关的同事会感觉调试和联合开发有点吃力。
其他的因为外接设备的问题,目前用的外接设备有个设备是选用了huasen公司的打印机 2种型号。韩国的老牌打印机公司,和国内的打印机对比,优点是稳定,耐用,缺点是文档支持差(几乎都是韩文的或者没有文档),支持的语言少(目前就支持C#,公司就给个dll自己去接),需要改动配置的时候需要专用软件配置,接口暴露的少。所以我们和这个打印机相关的都需要多多少少的C#在里面支持,而且因为之前开发的人员没有计划做打印服务然后其他程序调用接口;所以目前只能其他语言和C#合并开发;
其他的设备例如Android手持机用的是国产的内置小票打印机,接口文档和软件支持方便许多,没有的话一个电话人家会帮忙写这个调用的服务代码块。
目前疫情影响景点惨淡,所以开发换新的软件语言 不会有太大的影响。在做这方面的技术选型