现在还有多少人做 C++跨平台移动开发?

2019-11-23 11:25:18 +08:00
cyxcw11  cyxcw11
我们部门现在想用 C++做跨平台移动开发,底层业务逻辑用 C++写,上层 UI 源生。
大家有类似的经验么?有多少坑?
12395 次点击
所在节点   C++  C++
64 条回复
hkitdog
hkitdog
2019-11-23 12:01:17 +08:00
有什么好处吗
thomaspaine
thomaspaine
2019-11-23 12:04:00 +08:00
楼主可以考虑下 Qt ?
lniwn
lniwn
2019-11-23 12:05:42 +08:00
真的没有很大优势,要说某些核心模块用 C++开发还是可以的,整个底层框架全部用 C++开发,风险怕是比较高,毕竟企业做一款新产品,第一目标是尽快上线。
cyxcw11
cyxcw11
2019-11-23 12:18:01 +08:00
就是想不重复造轮子呗,逻辑写一次,然后在两个平台用
cyxcw11
cyxcw11
2019-11-23 12:18:32 +08:00
QT 能跨安卓 ios 开发吗?
missdeer
missdeer
2019-11-23 12:28:42 +08:00
进现在这公司 4 年半就是一直做这个,这项目已经存在不知道多少年了,就是你说的这种形式,我做下面的 C++部分。

个人觉得坑主要在 C++和 UI 层的接口很难设计,既要好用,又要高效,有点像鱼与熊掌。胶水代码又会增加维护难度。
然后是权责容易分不清,有些事情既也可底层 C++做,也可以上层 UI 做,会互相推诿。
再就是对 C++人员要求略高,有时候需要了解各平台的细节,比如 socket,各平台就算是相同名字的 API,行为上也有差异,而且现在 C++不好招人。
最后,感觉缺一个好用的跨平台构建工具,我们之前用的 scons,用的 python 语法,总感觉不好用,后来收购合并了另一个产品,有一部分用了 cmake,情况更复杂了。
joshua7v
joshua7v
2019-11-23 12:28:53 +08:00
Qt 可以跨安卓 iOS 的
甚至还可以 wasm
基于 Qt 的 Felgo 也可以顺便看看
missdeer
missdeer
2019-11-23 12:38:20 +08:00
Qt 可以跨 Android,iOS,但不推荐做产品(自己玩票性质的可以试试。理由:
1. 界面不够 native look feel,而且基本上至少移动端和桌面端是要分别做的,有这精力直接上 native 开发不是更好?
2. 很多东西最终还是要用 native 的代码实现,比如 mac/ios 用 objc,android 用 java,然后自己加胶水代码调用
3. 最终生成文件体积大很多,感觉不太好
4. license 商业使用需要购买,大概一年 3w 多人民币
5. Qt 这个框架大毛病没有,项目规模稍微大点后就会发现小 bug 不断,如果你没发现 Qt 的 bug 说明你要么不细心要么水平臭
janus77
janus77
2019-11-23 13:34:00 +08:00
早些年大厂有人这么搞,不过现在由于原生的支持越来越强大,基本上没这个必要了
github.com/williamwen1986/Luakit 之前鹅厂搞的这个,用 lua 桥接写的你可以参考一下
across
across
2019-11-23 13:35:59 +08:00
底层业务逻辑用 C++写 ???
一般是追求效率的算法、或特定功能模块才需要 C++吧····
不然 C++开发效率哪比得上原生语言。
cyxcw11
cyxcw11
2019-11-23 13:36:26 +08:00
我感觉 C++人员要求高,难招人,这个一个问题就已经够难受了的
FrankHB
FrankHB
2019-11-23 14:03:48 +08:00
不扯 UI,一切好说。摊上几个奇葩的平台,基本上你不用 C++也没什么备胎能选。原生?能接受哪天突然发现某个原生 API 不够用或者政策出问题不给用了缺胳膊少腿也行,否则省省吧。
UI 的话,Web 的实现本身依赖 C++。别的你要是自己没把握撸整个平台的话就算了吧。
FrankHB
FrankHB
2019-11-23 14:14:47 +08:00
@missdeer Qt 这个项目技术上最大的毛病和其它类似 C++ 项目的毛病一样,就是把用户搞傻了,框架设计人员自己本事又不到家,以至于各种选型都是次等货色,还居然被社区稀里糊涂地接受了。
(什么 moc 就不婊了,那啥 qmake 啊 qbs 折腾了多少时间又滚回 cmake 这种半吊子……不安分老实 autocrap+make,或者搞个类似 xmake 的会死?)
而且基本上 Qt 的用户是没本事推翻 Qt 框架设计内部缺陷和拾人牙慧的问题的。小 bug 多也很自然,因为就没几个有本事一开始就尽量避免小 bug 的开发者有耐心对付这个陈年破烂。
然后不用 Qt 的 C++用户某种意义上还分裂了……(虽然这主要不是技术问题。)
coloz
coloz
2019-11-23 14:54:22 +08:00
C++移动端,貌似就 QT 吧?但 QT 又不如其他方案好用,目前也没听说哪个公司用 QT 开发移动端 app。从招人的角度看,java、oc 或者混合开发的人大把,公司如果选 QT/c++开发,估计很难找到合适的人。
zacharyjia
zacharyjia
2019-11-23 15:11:55 +08:00
你提的这个方案甚至还不如 J2ObjC 靠谱,至少这个感觉半死不活的项目目前还有人在维护
iugo
iugo
2019-11-23 15:12:27 +08:00
举个例子, iOS 华为商城 App, 一些商品的购买按钮是跳转到微信小程序.
damngood
damngood
2019-11-23 15:18:32 +08:00
可以参考 dropbox 最近的一篇 blog
讲为什么他们不再继续 c++ 跨平台的方案了
crayygy
2019-11-23 15:59:17 +08:00
我们就是这么干的,我做的两个项目都是,一个已经十几年了,另一个五六年了。我自己刚做两三年,这种模式有好有坏,要有人能 hold 住才行,说白了就是要有大佬撑腰壮胆
crayygy
2019-11-23 16:12:41 +08:00
@missdeer 可以考虑 jinja2
cyxcw11
2019-11-23 17:34:31 +08:00
@crayygy 有没有新的项目还采用这种方案了?
是因为老项目没法回头了才继续采用的吧?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/622359

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX