百科问答小站 logo
百科问答小站 font logo



小米股价再度破发第 35 天,该公司未来发展前景如何? 第1页

     

user avatar   allen-xu-3 网友的相关建议: 
      

大盘就这B样,谁也别想好过。

公司前景跟股价有关系的话,AMD 早 TM 破产解散了,哪有今天意气风发的 Ryzen 系列。

看人、看业务,哪天雷总说我不玩手机了专心造车,那小米估计可以寄了——不过雷总好歹也是过了 n 多年还接手金山的主儿,这种事儿做不太出来。

很久以前跟二级市场的朋友聊过小米,不看好的点一个是利润率低另一个是品牌没立住。

反正现在也没有发生趋势逆转,之前的红利(主要是华为制裁)交出去了,那就接着做呗,又不是两三年就倒闭了。

长期前景这种所谓价值投资者才看的东西,跟破发 35 天这么短的时间段放一起,怎么看怎么搞笑。


user avatar   xiaosuanmiao 网友的相关建议: 
      

小米的股票下跌,一半原因肯定是大盘影响,恒生指数最近整体的大盘行情就是向下的。

但问题在于,大家最初对小米的预期是继续大涨,因为小米所有的故事都是,我们在急速成长,也就是说,小米就算是横盘,也不会是很好的故事。

更何况恒生指数跌了30%,但小米跌了60%,用30%去解释60%的跌幅,显然是不合理的。那么,这另外的30%就肯定是大盘之外的了。

小米2021年整体的销量表现还是不错的,2021年小米卖了1.9亿台手机,AIOT整体的表现都不错。

叠加小米新能源造车业务的展开,在这样的态势下,小米依然大幅度跑输大盘,这只能说明,小米的成绩表现依然低于资本市场的预期。

这种预期的不达标,我觉得最核心的其实是两个,一个是利润预期,另一个是接下来的成长性。

销量代表的是规模,但规模不决定企业的资本价值,决定资本价值的是盈利能力,包括当下的盈利能力,以及未来的预期盈利能力。

年出货量接近2亿,这个是非常牛逼的成绩,在中国手机品牌行列,只有华为做到了更好。

但同时,小米的盈利能力和苹果,和三星,包括和华为,相去甚远。

盈利能力的差,一方面是小米整体的极致性价比策略,更重要的是品牌高端化成绩不够。

在华为以外的几家里,高端化的开局,小米是做得最好的,尤其是2020年的小米10的爆发,这个爆发的成绩是相当漂亮的,要知道,那个时候华为的极限制裁还没有来,华为P40系列至少在国内还是满血状态。

华为的极限制裁是2020年中,九月份的Mate40开始才正式显现。

按道理说,小米10在P40的压力下能做到这个成绩,那么随着华为极限制裁的到来,Mate40开始受芯片影响,P50系列无法正常发布的情况下,小米11应该是大踏步前进的。

可惜,事与愿违,因为各种原因,小米11的整体预期做得甚至不如小米10。

这是一个很可怕的事儿。


市场环境在大幅度变好,但小米的高端化却在走下坡路,尤其是mix4的失败。线下最好的机会,结果开了一年的店,份额没有增长。整个市场对于小米的高端化和线下之路开始持怀疑态度,我觉得这是资本市场对小米抱否定态度的根本所在。

华为受制裁的市场空出,成为小米从15年小米note折戟之后,形势最好的一年,这个利好包括如下几个部分:

第一、国际市场华为的全面退场,尤其是欧洲的退场,给了小米国际化关键的机会

小米的国际化是从印度开始爆发的,但印度市场本身的特性决定了,赚吆喝居多,产品低端化,市场不稳定,导致很难赚钱。

但欧洲不同,全球三大市场,中美欧,北美因为政治因素一时半时大家都没机会,所以欧洲是必争之地。而华为在被制裁之前,欧洲市场急速崛起,已经超过了苹果,并且快速拉近和三星的距离。

这是2019年Q1,华为被制裁之前欧洲的情况,市场份额25.39%,同比暴增66%,如果不是制裁,华为2020年在欧洲登顶是没什么意外的。

第二、华为的退场,成为小米线下突破极佳的窗口期

15年小米note的折戟,让小米充分认识到了线下渠道的意义和价值所在,从2016年开始,小米正式开启了线下渠道拓展之路,但这么多年,兜兜转转,小米的线下始终没有实质性起色。主打线下市场的产品系列从note到X到CC,一直不行。

在行业竞争态势日趋激烈的状态下,小米能保住基本盘都很难了,拓展这个事儿是很难的。

华为被制裁,中国市场短暂回归蓝海,市场对于小米来说,从存量厮杀变成了增量扩展。市场环境的变化,终于让小米有了精力去全力拓展线下了。

第三、华为的退场,成为小米高端化突破的极佳机会

2020小米10的成功,让小米拿到了一个非常漂亮的高端化开局,彼时华为Mate30&P40系列依然是满血输出的状态,在高端市场和iPhone 二分天下。

小米10在华为满血状态下打开局面。那么在华为退场之后,小米应该会迎来一轮新的爆发。

而在华为因素之外,小米造车也是一个大的利好。

新能源已经成为确定的未来,多年来格局稳定的汽车行业迎来剧变,新势力急速崛起,汽车市场重新洗牌。

汽车是一个比手机大得多的市场,但在正常情况下,这个市场是没有新势力机会的。和手机市场不同,汽车行业更多的是传统巨头的天下,走量的两田一众,高端的BBA。

但现在,新能源带来的行业革命给了新玩家从未有过的机会,特斯拉一飞冲天,比亚迪急速爆发,蔚小理高端化稳步推进,如果小米能够分一杯羹,那么未来天赋值必然有一个质的提升。

然而,一年之后,小米交出的答卷,显然是不让市场满意的。

国际化进程做得相当可以,欧洲市场趁势崛起,这个是利好,但高端化占比依然不够。小米即便是把300欧(相当于国内1500左右)以上定义为高端机,但占比依然太低。且,这个增长大概率到顶了。

线下集中力量全力突破,但结果却有些事与愿违。小米最初的目标是门店数量做到10000家以上,初步完成线下覆盖,线下份额有一个实质性的提升。可惜,1万家店开出来了,但线下份额原地踏步,这个事儿挺可怕的。

高端化窗口期结束,成绩极差。小米10是在华为的压力下打出来的一片天,但小米并没有在小米11上取得关键性突破,甚至还导致了口碑倒转,小米mix4&小米mix Fold更是口碑和市场双折戟。

汽车业务的想象力越来越小。新势力成长速度超过预期,比亚迪急速封神,华为正式下场,传统势力加速转型。到了2024年小米汽车推出的时候,市场环境到底如何,不容乐观。

小米2021年初的利好助推股价飙升,但一年后预期没有兑付,估值回落,这个其实是独立于大盘之外的逻辑。在这样的态势下,哪怕大盘平稳,小米的股价也很难保住,更别说大涨了。

而接下来,对于小米来说,最重要的其实是,小米2021年的利好变利空之后,这个利空有没有出尽?

我们群里的观点是,小米的利空依然在持续,至少到Q1结束或者Q2结束的时候,格局才会真正明朗。现在的小米,依然处在利空未出尽的阶段。


从小米12开始,小米真正走上当初定下的策略,坚定向上溢价,做全渠道。

问题在于,小米的线下体系在整个2021年并没有培育起来。

线下门店突破一万家,但线下份额没有实质性增长,这个事儿是很可怕的。资本市场会问小米,你这一万家店到底开出了什么?

小米给出的回答是,养店。

但资本市场不认可这个,养店这东西,在手机渠道是没有过的概念,是个伪命题。开店就是为了赚钱,养店是什么东西?

小米开了1万家店,结果中国区的销量跌到了第五,被苹果超过就算了,还被荣耀超了,这个事儿怎么回答?

小米没法回答,所以大家也看到了,小米12系列三台机子除了最初的所谓18亿战报之后,再无消息,100万台的战报至今没发,可能已经超了,可能还没超,但不如小米11基本上没什么悬念了,比11更好的成绩,小米没理由藏着掖着。

小米20年末的上涨预期就是华为制裁,小米吃饱。后面的故事是荣耀起不来,无论是荣耀脱离华为没有品牌力,还是荣耀也可能继续被制裁,这都是小米的利好。

可惜,这两个事儿都没有发生。

荣耀的回归超出了市场预期,以及,目前来看,荣耀似乎不会被美国针对了。

当然,这也很好理解,美国为什么要针对一家荣耀这样的手机厂商?没有意义。

这两个预期没有发生,对于小米就是最大的利空。

一方面,荣耀的加入,线下ovh的竞争激烈化,导致小米的线下拓展面临阴影;另一方面,荣耀是线上起家的,最擅长的还是线上的打法,那么在荣耀线下站稳脚跟之后,线上怎么打?

小米中国区2021年的爆发,本质是老荣耀和华为退出,小米一家独大,但随着荣耀的回归,和iQOO、realme和OV的不断激进,小米线上能不能守住,是个未知数。

2022年开局,小米12的整体表现是不如小米11的,尤其是线上,这个事儿我上午的想法说过:

红米K50肯定是大杀器,但在小米12这样的表现下,K50能做到什么程度?甚至是能保持K40的成绩么?实际上,K50游戏版顶着“小米第一台核心价位段骁龙8G1”的明天,成绩依然相当一般。

小米线上做第一不叫预期,小米线上做到2021年这样的一骑绝尘才叫预期。

2021年对于小米来说,本来是绝佳的机会,可惜小米没有把握住,那么2022年,市场从短暂的蓝海回归红海之后,小米的突破点在哪里?

小米现在的故事是手机+AIOT双引擎,叠加互联网营收。但AIOT营收占比迟迟无法突破30%,依然是小头。互联网营收的核心是手机业务,且是中国区的手机业务。

所以中国区的表现直接影响小米的盈利预期。

以及,国际市场,2021年小米表现很好,但这个很好的关键是三星受限于东南亚疫情导致供货困难,以及OV的国际化做得不够好,整个大华为的国际化基本宕机。

但2022年不是了。

realme国际市场全面爆发,2021年出货量6000万台,2022年冲着破亿去的,OV的省代做国际化导致资源不集中,无法取得实质性的突破问题正在解决。荣耀国内稳固之后,必然在国际市场发力,GMS的问题已经解决了。

这样的背景下,小米国际市场别说继续突破,能够保持2021年的水准就很难了。

高端化遇阻,国内市场份额跌到第五,线下打不开局面,线上很难守住,AIOT依然无法成为真正的大腿,国际市场压力倍增,以及造车。

小米造车的核心优势是手机行业积累的品牌知名度和智能家居带来的座舱体验。

但一方面,造车新势力,以及比亚迪的市场爆发超出预期。华为全面介入,使得手机品牌造车这个概念的价值被稀释。

小米第一台车2024年出,届时,华为的造车业务能做到什么程度?新势力以及比亚迪能做到什么程度?传统车企能做到什么程度?吉利极氪和大众ID已经证明了,传统势力真正转型新能源的时候,速度是极快的。

这样的背景下,小米的造车预期有多大?

很难说。

且,小米的造车业务有很大概率是分拆独立上市的。

虽然雷军极力否定这个,坚定认为小米的造车不会拆分。

但只要可行性在,资本市场必然会担忧这个。

就像余承东承诺华为不造电视,但智慧屏出来了;华为承诺3年不造车,但问界M5出来了。

小米如果真的有一天拆分汽车业务上市?

资本市场能做什么?

说雷军背信弃义?

钱落袋了,骂声有什么用?


user avatar   cheng-feng-po-lang-de-ye-ye 网友的相关建议: 
      

远看是AAPL,再走近一看原来是002127。


user avatar   baiming007 网友的相关建议: 
      

其实高端梦破碎,不仅仅是小米破,而是所有安卓手机的高端梦都已经碎了。

早前counterpoint公布的数据显示三星、OPPO、vivo的手机均价都在1600多元人民币,根据小米的业绩推算则是手机均价为1100多元人民币,如此一对比就就可以看出不仅是小米靠千元机,而是所有安卓手机都在靠千元机罢了,只不过小米更低端一些。

安卓手机变成如今模样,拥有安卓系统的谷歌应该负上最大的责任,由于安卓手机是否属于高端手机与谷歌关系不大,谷歌只是从安卓手机企业圈来的用户中赚取广告费以及APP下载等收入,因此谷歌才不在乎安卓手机是否占据高端手机市场,所以谷歌在安卓手机中强制塞入越来越多的安卓应用,导致如今的安卓手机变得越来越辣鸡,臃肿非常。

安卓手机企业当中,三星曾在高端手机市场中占有不小的市场份额,但是近三年来三星的高端手机Galaxy S系列已从全球热销手机TOP10中消失,其他安卓手机企业的高端手机更从来没有任何一款手机进入热销TOP10中,三星尚且在高端手机市场衰败,更别谈其他安卓手机企业了。

最终的结果就是小米OV和三星合计占有全球手机市场54%的市场份额,这是苹果占有18%市场份额的三倍,但是它们合计取得的手机销售额竟然比苹果还少近200亿美元,由此可见安卓手机在高端手机已几乎没有希望了。


user avatar   zombiewriter 网友的相关建议: 
      

小米股价腰斩的逻辑其实很简单,就是成长性没了。

为啥小米股价之前可以35.9呢,大家是觉得小米可以把华为终端的盘子都接过来。

35.9的小米啊,这可是7300亿市值,当时比美的还高。

接下来的事情我们也看到了,2021年上半年,在友商集体海内外发展不力的情况下,小米的中国区的高端有了一些进展,海外市场也有一些进步。

但是到了第三季度,荣耀一发力,小米就开始涨不动了。

当然这里面不全是荣耀的努力,只是说荣耀发力是一个关键节点。

事实上小米从第三季度开始,周边的环境发生了很多变化。

首先是iPhone全系降价升配,根本性地改变了市场格局,甚至可穿戴都开始下潜价位。

vivo高端机发力,有ISP的X70Pro+改变了很多事情。

iQOO在中国区完全站稳,完全没被小米打掉。

Reno系列踏入正轨,一度在2500价位具有统治级的战斗力。

荣耀V40-50-60销量一代比一代好。

OPPO海外策略发生变化,总部逐渐开始准备接手。

realme开始复刻小米国际打法,快速打开国际市场,国内市场V系列非常稳健,GT系列对于均价拉升巨大。

最令小米痛苦的还是华为死了这么久都没死透,还搞了个华为智选出来,可以说是换了个姿势打算一直死下去。

现在荣耀还拿到GMS许可了,小米都快指着美国的鼻子骂了,你到底想不想制裁了你?

以上只是手机。


在小米另一个大块收入上。

笔电领域,传统笔电厂商大发力,极大挤压了小米的生存空间。

家电领域,整个家电行业都跌了一年了,这个行业的预期就不用多说了,房地产都在下行,家电也肯定不行。

小米传统强项彩电,也在线上被传统品牌反攻了,海信甚至一整个季度的线上销售额都超过了小米。

而小米的老对手华为已经在线下市场展开了局面,小米依然毫无建树。

小米的互联网收入就更惨了,这两年互联网广告的整治越来越频繁,我感觉这一块不往下大跌就已经是胜利了。


而在汽车上面,小米似乎更没啥优势。

蔚小理增长强势,哪吒汽车用完全Redmi的打法冲出重围,五菱宏光更是比小米更小米。

研发方面汽车领域有比亚迪全栈自研自产,还有一个同样全栈自研的华为虎视眈眈,长城吉利都不是省油的灯,小米更谈不上啥研发优势可言。

研发研发不行,商业模式也已经有创新,小米除了搞搞米粉经济,目前似乎看不到什么杀招。


所以综上所述,小米股价从35.9跌到现在14块钱是很正常的,成长性凋亡地太快了。

手机领域竞争激烈,大盘萎缩。

家电领域竞争激烈,大盘萎缩。

汽车领域倒是在成长,但是竞争更激烈,小米毫无优势。

缺芯的大背景下,消费电子也拿不到啥好的估值。

从小华为到大拉胯,小米从2021年年初的超级大顺风局,一路平推,到2021年稍微遇到一点阻力就推不动了,也让市场看清楚了这家公司的抗压能力。

在环境急剧收缩的时候,只能说希望小米更多的投入到研发里面,形成自己真正的核心竞争力,早日让投资者可以回本。


user avatar   wang-jia-48-31 网友的相关建议: 
      

几个核心问题:

1小米为什么跌这么多?

2小米和其他中概股比怎么样?

3未来会怎么样?

第一个问题,跌这么多因为整个互联网板块都在下跌,不用多讲了。

第二个问题,这需要界定一下时间范围

2020年疫情开始是一个重要的时间点,在2020年全年,全球的互联网相关行业都是利好的,出不去门,消费者要更多依赖互联网平台工作生活。

2021年初,互联网中概股开始下跌,包括小米在内的绝大多数企业都在下跌,猛烈下跌。

当我们把这一轮次的涨跌放在一起看的时候,小米——处于一个平均水平。

阿里、腾讯这种龙头企业涨幅跌幅不如拼多多、美团这样的小龙头,他们的体量更大,股价的弹性相对较小。涨的时候更慢、跌起来幅度相对也小一些。

小米严格来说市场不太认为是纯的互联网公司,虽然历次财报和新闻都在往互联网的特征上说,市场仍然有一部分人认为小米还是以硬件为主的公司。

只能说每个人都有自己的理解吧,至少我看到的报告里确实一些人认为小米的互联网程度不如上面这些公司那么纯粹。

如果按照硬件+互联网的估值,那么弹性不如纯互联网公司也是应该的。

第三个问题,未来会怎样。

互联网公司面对的未来,和一个硬件公司面对的未来是不同的。

互联网平台们要面临的是在监管政策下,行业商业模式会发生变化,比如佣金降低、比如不能横向发展,所以在政策细节出台之前,互联网公司的发展和股价都看不太清楚。

硬件则不同,在任何一个目前小米生态的硬件领域,小米都距离垄断这个词比较遥远。所以他所面临的主要还是基本面:

  • 消费能力的变化。消费行业这两年出现的一个大问题是,之前认为疫情影响消费,从去年开始变成了消费者收入、收入预期影响了消费。小米能不能抓住这个机会,要看redmi一类的产品表现。
  • 竞争环境及对手的表现。消费电子领域竞争还是很激烈的,每个单品或者爆品都决定着当年度市场份额,比如手机领域,荣耀的冲击到底有多大,是小米要关心的问题。

我并不是消费电子领域的分析师,所以给不出答案,但是在大消费领域,今年新经济公司都绕不开上面两个问题。

有一件事情是确定的。

当下的阶段是板块性趋势下跌,所以虽然我们知道小米受到政策影响相对较小,也不应该下重手。

不要在压路机前面捡硬币。


以上,供参考


user avatar   liu-bo-28-94 网友的相关建议: 
      

以我多年的体制内工作经验告诉你,用人单位所谓被举报绝对是假的,目的是骗你自己放弃,好让别人顶替,因为省属事业单位招录是由省级组织人事部门组织,有问题也应该由组织人事部门通知你,如果考录过程中涉及到受贿问题,则属于重大事件,纪委部门必然介入,不可能由用人单位调查,而且没有证据的非实名举报是没有效用的,也就是说不可能影响你的录用结果,下一步你可以再到用人单位心平气和地沟通一次,目的是录音掌握证据,然后迅速到组织人事部门说明情况,要求上岗,既便没录到音也要去,因为可能组织人事部门早就通知你,是用人单位在两边骗,到一定时间你不到岗,就对上汇报你是自动放弃,如能上岗又掌握证据,迅速向省纪委举报,不要到用人单位纪检组,至于事后穿小鞋的问题,基本不用考虑,一来铁饭碗自己不作真不是领导能拿掉的,二来只要立案这些领导基本也当到头了,三来他们已经把你当傻子了,你不维权他们会继续当你傻,苦活累活等着你,提拔重用你靠边,体制内可不是一味委曲求全就可以的。

补充一句,用人单位所谓的调查,居然你这个当事人事先不知道,不需要你配合,这个调查也太假了吧?


user avatar   qiu-yu-chen-xi-meng 网友的相关建议: 
      

以我多年的体制内工作经验告诉你,用人单位所谓被举报绝对是假的,目的是骗你自己放弃,好让别人顶替,因为省属事业单位招录是由省级组织人事部门组织,有问题也应该由组织人事部门通知你,如果考录过程中涉及到受贿问题,则属于重大事件,纪委部门必然介入,不可能由用人单位调查,而且没有证据的非实名举报是没有效用的,也就是说不可能影响你的录用结果,下一步你可以再到用人单位心平气和地沟通一次,目的是录音掌握证据,然后迅速到组织人事部门说明情况,要求上岗,既便没录到音也要去,因为可能组织人事部门早就通知你,是用人单位在两边骗,到一定时间你不到岗,就对上汇报你是自动放弃,如能上岗又掌握证据,迅速向省纪委举报,不要到用人单位纪检组,至于事后穿小鞋的问题,基本不用考虑,一来铁饭碗自己不作真不是领导能拿掉的,二来只要立案这些领导基本也当到头了,三来他们已经把你当傻子了,你不维权他们会继续当你傻,苦活累活等着你,提拔重用你靠边,体制内可不是一味委曲求全就可以的。

补充一句,用人单位所谓的调查,居然你这个当事人事先不知道,不需要你配合,这个调查也太假了吧?


user avatar   yang-xiao-9-87 网友的相关建议: 
      

怎么说呢。作者原意是先主起兵的时候还很弱小。先主筚路蓝缕,创业艰难。


user avatar   wang-yue-97-94 网友的相关建议: 
      

很少有人不基于框架直接写GUI界面啦,我这个回答就从GUI框架反过来推什么语言做GUI合适。(只聊桌面端GUI编程框架)

Qt

几乎是C++领域最流行的跨平台桌面端软件开发框架了,这个框架是两个挪威人在1995年创建的,发展至今可以说历史相当悠久,稳定性也很有保障。很多大公司都在用它做界面比如金山的WPS。

它内置了自绘引擎,也就是说界面上的一个按钮,一个文本框,都是Qt的引擎自己画的,这保证了基于Qt开发的软件界面在不同操作系统上看起来是一模一样的。

它提供了大量的与界面无关但与软件开发息息相关的API,比如、网络、文件系统、剪切板等,而且让这些API在不同的操作系统下都有效,这极大的节省了开发人员的时间。

但它也有一些缺点,比如在处理一些特殊需求上很不方便,比如:目前Qt有没有比较好解决高分屏下缩放显示的方案?Qt没有真正完美的无边框解决方案吗?等,在一些组件的渲染上也会出一些隐藏的较深的问题(QListItem),一旦遇到,就很难解决。

Qt近年来不太专一,qml,qtquick等,搞了很多,而且这些新玩意儿一直不温不火,有些模块做了又废弃了,比如:qt script,搞来搞去,搞的模块繁多且复杂,用起来不是很舒服。

Qt有界面描述语言(XML描述界面),可以通过设计器拖拽空间设计界面,编译期界面描述语言被转义成C++代码,性能上没啥损失。

Qt商业授权不太友好,开发商业应用一定要谨慎,之前听说有公司为此付出了高额的版权费。个人开发者可以免费使用。Qt的免费版本不允许静态链接,会有版权上的限制,但开发者还是可以通过一些特殊的编译方法静态连接Qt的库的。

除了使用C++开发Qt应用外,开发者还可以使用其他语言开发Qt应用,最流行的就是使用Python基于PyQt做Qt应用了,其他语言的绑定不是很成熟,但PyQt仍然有版权的问题。

GTK

GTK是1997年创建的,也非常成熟稳定,是C语言开发的,但有很多语言的绑定,比如官方支持的JavaScript、Rust等,当然用C++语言操作GTK也很方便,它也有自绘引擎(Cairo),也提供了大量系统相关的API,商业授权也非常友好,基于GTK开发商业软件不用担心收到律师函的问题,虽然它是一个跨平台桌面软件,但它似乎只在Linux操作系统领域流行,有非常多的Linux桌面软件都是基于GTK开发的。

这也直接导致GTK的维护者很重视Linux领域的发展,而忽视Windows和Mac领域。这个框架提供的很多API,只在Linux下有,Windows和Mac下没有。这样的API数量众多。甚至在Windows下编译一下GTK的源码都要比Linux下难很多。而且GTK的渲染引擎在Windows下性能表现也不如在Linux下好。

GTK在Windows上也没办法静态连接,它到不是因为版权的问题,而是它依赖MSYS2的一些库,这个库用于在Windows上模拟Linux环境,这也是为什么GTK在Windows上表现不佳的原因之一。

另外,由于GTK是C语言开发的,所以开发风格也很C语言化,这对于部分开发者来说可能觉得繁琐。

wxWidgets

wxWidgets是1992年英国的一个大学教授开创的跨平台GUI软件,也非常成熟稳定,商业授权非常友好。它没有自绘引擎,而是对不同平台下的界面API做了整合和封装,这样开发者在Windows下开发的软件看起来就是Windows窗口风格、Linux开发的软件看起来就是Linux窗口风格,这对于某些软件来说,正是他们想要的,但要想搞一些花哨的特效就没那么容易了。它同样也提供了大量的系统相关的API供开发者使用。

它是C++开发的,所以对C++开发者非常友好,除此之外它还支持静态连接,也就是说开发个应用不用分发给用户一大堆dll,当然Qt也支持静态连接,但是你得自己编译Qt的源码(不是很方便),而且Qt的授权规则也不允许普通开发者这么做。

它会有些小问题,比如我之前提的:wxEVT_NOTIFICATION_MESSAGE_DISMISSED event emit twice,但总体来说还是非常稳的。除了开发的界面比较死板外,没啥大的问题。目前使用这个框架开发软件的人越来越少了。

FLTK

fltk是1998年创建的跨平台开源GUI框架,历史悠久,商业授权友好,而且C++之父也用它,它非常轻量级,支持静态连接,一个简单的应用编译后只有500K左右,非常赞,

它有自己的自绘引擎,没记错的话用的是OpenGL,但它的重绘机制是按区域重绘的,如果组件A所在的区域上存在组件B,那么A组件重绘时,会把B组件的给重回掉,开发者必须自己写代码处理这种情况。想象一下,如果你想实现一个A组件fade out的同时B组件fade in的效果,就会非常麻烦。

FLTK提供的一些组件样式都比较刻板,绘图API也比较少,你想实现一个漂亮一点的圆角按钮(它内置圆角按钮的圆角大小是不能改的),必须自己画,而且还得借助一些非常奇葩的手段才行(如果你想知道,可以联系我)

它是C++开发的,但API不够现代,用起来总体还算舒服的,它有Rust绑定:fltk-rs。它的用户比前面三个都少。它提供了一些与界面无关的操作系统API,但非常少,几乎可以忽略。

Duilib

是2010年国内一个开发者开发的GUI开发框架,因为底层基于DirectUI开发,所以只支持Windows平台,不支持跨平台,开源协议友好,商用没有任何问题(需要附加Lincence文件),国内有很多大厂基于这个技术做桌面端应用,比如网易、腾讯、百度,这个框架是基于C++开发的,对C++开发者友好。但框架本身还有一些问题,比如对高分屏支持不佳、特殊控件绘制上也有一些小问题,除了界面相关的API外,几乎没有提供系统级的API,作者纯粹是用爱发电来开发这个框架,所以更新不是很及时。

相对来说网易基于Duilib开发的分支更完善一些:NIM_Duilib_Framework,添加了高分屏支持、多国语言、整合了多线程处理的支持,但环境搭建相对比较麻烦。如果开发者要用这个框架,一定要用develop分支下的代码,master分支下的代码问题很多,这个框架看上去也是作者一个人努力的成果。

Sciter

Sciter是2006年创建的跨平台闭源GUI框架,足够稳定,商业授权不友好,但个人开发者可以随便用(只能用动态链接库),一旦公司规模超过3人,就得买版权了(有权静态连接)。

它内部封了一个浏览器核心,让开发者使用HTML,CSS,JS来创建界面,但对这个浏览器核心做了大量的精简,不像Electron和NW.js动辄上百兆的体积,它只要6M就够了。当然这也意味着有些浏览器特性它是不支持的,比如CSS3的flex布局,它就不支持(但它提供了自己的flex布局实现方式)。以前它使用自研的一个脚本语言(和JavaScript很像),自从集成了Fabrice Bellard大神的QuickJs之后,就全面支持JavaScript了。它还对一些特殊的场景做了内置的支持,比如渲染大列表。

它使用C++开发,对C++开发者很友好,有Rust、go、Python等语言的绑定,但都是社区提供的,质量堪忧。有很多知名厂商都用这个库做界面,比如360、teamviewer、赛门铁克等。

RmlUi和Sciter很像,可以看成Sciter的替代框架,但RmlUi这个项目有三界作者,一个一个的弃坑不知道新任作者会不会弃坑,目前还不是很成熟,比如我正在尝试帮作者解决的CJK输入法的问题,目前还不推荐大家使用这个框架。

CEF

CEF是2008年创立的,基于Chromium的跨平台GUI框架,稳定且商业授权友好,国内很多大厂都用的CEF:比如微信桌面端、网易云音乐桌面端、QQ桌面端、微信桌面端、MATLAB、FoxMail、OBS Studio,装机量破亿。

由于它几乎封了一个完整的Chromium,所以体积非常大,但支持所有的HTMLCSSJS特性,它几乎不提供任何与操作系统相关的API,创建个托盘图标、读写个文件啥的,都要开发者自己完成,它是C/C++开发完成的,对C++用户非常友好,它有gopythonjava等语言的绑定,但都是社区提供的,质量值得担忧。

它对Chromium封装的很好,避免了开发者直接与Blink、V8、Chromium等复杂的代码打交道,很多功能都有默认实现方式,遵从约定由于配置原则,有经验的C++开发者可以很轻松的驾驭CEF框架。

由于Chromium是版本弟,所以CEF版本发布也非常频繁,很多被标记为稳定的版本,还是会出一些莫名其妙的问题,选一个好的版本非常重要。

与Electron一样,它也是分主进程和渲染进程的,所以开发者要非常娴熟的运用跨进程通信的技术,虽然CEF提供了跨进程相关的API,但复杂度还是有点高的,使用的时候要认真细心。

MAUI

这是微软的跨平台GUI框架,不仅仅支持桌面端,还支持移动端,但官方并不支持Linux的桌面端(黑人问号,感觉与微软近些年向开放、开源的大方针相悖),这个框架新的狠,至今还没发布稳定版。目前还没什么人用。而且不知道将来会不会被微软放弃。

它是.NET平台下的GUI框架,有自绘引擎,对C#开发者很友好,界面依然是用XAML描述的,可能很多人一听到XAML就直接弃坑了。XAML表现力确实弱一些,我觉得WPF没火起来跟XAML有直接关系。

使用这个框架开发桌面应用得封一个.NET框架给用户,当然有了.NET框架应用程序访问一般的系统级API也就不成问题了。

Compose Multiplatform

这是JetBrains搞的跨平台GUI框架,也非常新,前段时间刚刚推出1.0.0版本,但这个版本还不是很稳,至少比Flutter Desktop的第一个稳定版要差很多。同样也几乎没什么人用。

它的自绘引擎用的是Google的skia,这个自绘引擎稳的很,Chrome和Flutter都是用的它,所以排版、绘制、渲染之类的工作不太会出问题。比Java生态圈里的Swing和JavaFx要好很多。

JetBrains的东西当然对Kotlin开发者友好啦,Java生态下的很多东西你都能用,访问系统级API也没啥大问题,同样也得考虑封一个JRE给用户。

flutter-desktop

这是谷歌的跨平台开发框架,开源、免费、文档齐全、投入力度大且持久,同样也新的很,Windows版本刚刚发稳定版,Mac版本还没稳定。

如果你完全没搞过移动端的flutter,想用这个框架开发桌面应用,那么意味着你要学的东西还挺多的。好在dart和flutter入门都不是很难,学习曲线比较平缓。

由于flutter在移动端积累了很多年,所以界面上的一些东西在desktop端都比较稳(skia自绘引擎),与操作系统相关的东西还不成熟,生态也不太好,比如你想订制一下窗口的标题栏,想访问一下注册表这类工作可能得自己想办法。不过它有类似FFI的支持,跟C/C++语言打交道很方便。

开发者直接使用Dart语言描述界面,这会导致众多大括号嵌套在一起的问题,可能很多开发者不习惯。

webview2

这是微软Edge浏览器团队推出的跨平台GUI引擎,是闭源的,目前只支持Windows,对C#和C++开发者友好,如果使用C#开发,就得考虑把.NET运行时分发给用户,如果使用C++开发,就得自己处理系统级API的操作,webview2本身是不对系统级API做封装的。

这个框架推出也没多久,很多API也还不稳定,更值得担忧的是这个团队,他们前不久刚刚放弃了自己的浏览器核心转而使用Chromium浏览器核心,不知道他们会不会放弃webview2这个框架。

它的优势是可以复用系统当中已存在的webview2二进制资源,也就是说它虽然封了一个Chromium浏览器核心,但如果你可以确定客户电脑已经存在了基于webview2开发的应用,你的安装包体积可以足够小。

它也是多进程架构,甚至比Electron还要多一个进程(为了复用二进制资源),资源占用比较多。

webview

这个库使用操作系统的浏览器引擎来达到减小安装包体积的问题,Mac上使用Cocoa/WebKit,Linux上使用gtk-webkit2,Windows 10上使用Edge(也就是上一个小节里提到的webview2),它应该是不支持Win7的。开发者要考虑前端代码浏览器兼容的问题。

开源且免费(MIT)有go、Rust、Python等语言的绑定,不过官方支持的是go语言,C和C++,操作浏览器的API非常少,不支持自定义scheme,更别提系统级API了。

TAURI

采用的技术方案与webview类似,所以安装包也足够小,非常新,还没发布稳定版,开源免费。webview框架碰到的问题TAURI都有,

使用Rust开发,将来会支持Deno,作者说将来会直接使用webview的技术来支持多平台,

NW.js

NW.js最早把Chromium和Node绑定到一起,用前端知识做界面,用Node技术访问操作系统,最早叫node-webkit,在2012年创建。NW.js基于MIT开源,可以无忧使用。没记错的话,微信小程序开发工具是用NW.js开发的。作者是英特尔的员工,英特尔的一些工具也是用NW.js开发的。

除了Chromium和Node的能力外,NW.js自己也封装了一些系统级API,类似托盘图标、剪切板、系统菜单这种,但数量明显比Electron要少。

NW.js可以在多个窗口间共享同一个Node.js上下文,而且还可以通过配置让Node的上下文和Dom上下文混合,这给开发者带来了很多便利。心智负担减少很多。不像Electron要时刻想着进程间通信,哪些模块当前进程不能用这类问题。

NW.js虽然起步早,但奈何没有杀手级应用,周边的生态和工具链没发展起来。用的人越来越少,维护的投入也不如Electron大,再加上Chromium更新非常频繁,导致NW.js的有些API也不是很稳,恶性循环加剧。

Electron

Electron的作者曾经在NW.js团队工作过(NW.js项目贡献第二多的人就是Electron的作者),后来辗转到了github公司,于2013年在创建了Electron,也是个开源免费的产品。由于VSCode、slak等国际型产品都选择了Electron,所以从者甚众,生态和周边工具链也完善的多。虽然开发方式上有点蹩脚的地方(多进程架构及模块归属进程),但瑕不掩瑜。

Electron每创建一个窗口都会多一个进程,这使Electron创建窗口的效率不高(秒级),NW.js有复用进程的机制,即使新窗口加载完全不同域的页面也不会创建新的进程(毫秒级)。这也是为什么很多基于Electron开发的应用都使用Dom模拟弹窗的原因。

无论是浏览器相关的API,还是系统级API,Electron提供的都比NW.js多。

--------2022-02-25更新--------

这些框架除了对开发者使用的编程语言有要求外,还有一个重要的差异就是有没有独立的界面描述语言(也就是UI DSL),这非常重要,涉及到一个框架表达业务的重要能力。

类似XAML、qt的ui文件、HTML+CSS都是界面描述语言,下面这种也可以算界面描述语言,但我感觉它不够纯粹(flutter、qml和Compose Multiplatform都是类似这样的):

       panel {   row {     checkBox(...)     row {       textField(...) // indented relatively to the checkbox above     }   } }     

但无论如何,显而易见的是,没有任何一个界面描述语言能比的上HTML+CSS组合。想想看:HTML里各种花里胡哨的语义化标签和Dom操作技巧,CSS里的布局方式、伪元素、动画描述...,对比之下你就会觉得XAML、qml直流都是弟弟。

除此之外,一个优秀的GUI框架还有两个重要的需求,这里我简单聊聊:

强大的事件处理机制必不可少。

想想这些:鼠标事件、键盘事件、触屏事件...界面加载完成、媒体播放结束、元素大小改变...网络状态变更、数据段传输完成...另外,还得处理事件冒泡、事件捕获、事件分发吧...

qt的开发者曾经说过qt的SIGNAL和SLOT机制是有性能问题的(但影响很小)

强大的异步处理机制必不可少

你不能在用户处理业务逻辑的时候,让界面渲染工作阻塞,这就需要一个强大的异步处理机制,让开发者自己去开线程去完成业务处理,无疑是又麻烦又会增加开发者的心智负担。

我记得很早之前在C# WinForm应用中,点击一个按钮,如果不用Invoke执行逻辑处理的话,界面就会卡死。

这么看来,在你的GUI应用里包一个浏览器核心还是挺有必要的,这样你就可以用HTML+CSS强大的能力来描述你的界面,用JavaScript强大的事件处理机制和异步处理机制来完成用户交互。

可能有人会想,这会带来很多问题呀,比如应用体积会增大的100M以上、会占用更多的CPU和内存资源,还会更耗电等等。

确实,目前来看这些都是问题,但仔细想想,这些问题应该不会持续太久,网络会变的更快,用户的磁盘和内存会变得更大,CPU处理能力也会更好,耗电的问题当然会持续存在,甚至会愈发耗电,但电的供应会持续增长呀。

web相关的技术之所以胜出,并不是这些技术的设计者有多厉害,而是这20多年间,有大量的人涌入了这个领域,前赴后继的推动着它前进。其他任何一个领域都没有这么热火朝天的景象。推荐大家看看我的另一个回答:

------------2022-02-27更新----------

用Web相关的技术做GUI应用的优势是,让开发者可以把大部分精力投注在业务本身上,而不是处理与GUI相关的技术细节。

实际上所有的框架,都应该是这个目的,比如ORM框架,目的应该是让开发者把大部分精力投注在业务与数据之间的关系上,而不是管理关系型数据的技术细节。

当然这肯定是有损耗的,在性能、稳定性、资源消耗上,都会有所削减。而且,因为有框架的存在,开发者很难深入到框架内部做一些特殊的事情。比如,我们该如何修改HTML的排版渲染机制呢?

所以,有些框架注重性能,有些框架注重开发效率,开发者做选择题的时候也应该衡量这两个问题,你的应用对哪些方面要求多一些呢?

你如果要开发一个视频监控系统,没多少业务功能,但要24小时不间断的记录视频数据,随时调取某一段时间的视频数据,这种应用可能Qt是最好的选择。

你如果要开发一个类似飞书的团队协作应用,业务逻辑复杂的一塌糊涂,而且要在短时间内满足更多用户的需求,占领更多的市场,那么Electron可能是更好的选择(目前飞书已经不再用Electron了,他们自己编译了Chromium核心,自己封了一个类似CEF的框架)

目前微软、谷歌、JetBrains等公司都非常重视桌面端开发框架,也在推各自的框架产品,说明桌面应用领域并没有没落,反而应该更加受到重视。

虽然移动端应用大行其道,但我认为,只有生活、社交、轻娱乐等方向上的应用在移动端有较好的发展。文档协作、大型游戏、开发工具、专业管控软件等应用还是在PC端发展的更好一些,毕竟PC端有更多样的输入输出设备、更广阔的显示和交互的空间,更强的存储和计算能力。

希望桌面软件开发领域的从业者都能获得幸福。

满屏荒唐言,一把辛酸泪,一把辛酸泪,一把辛酸泪...





     

相关话题

  有这说法不,小米10发布以后荣耀V30更香了? 
  如何看待自媒体“财经无忌”发表的针对小米的万字长文? 
  如何看待小米电视大师降价行为,从 49999 降价 29999,19999,甚至 9999? 
  炒股十年以上的老股民,有没有什么好的建议给新韭菜小白的? 
  在国内小米手机的销量为什么卖不过OV?算上智能家居,在未来能否和华为平分天下? 
  20210401股市分析和20210402股市预测怎么样? 
  股票跌了可以死撑到它涨到成本价以上吗? 
  小米的游戏业务未来前景如何? 
  小米手机目前是否已经超过华为手机? 
  小米10一直没货,是停产了吗? 

前一个讨论
如何看待2月份京东智能手机销量前20小米上榜11款,小米8gen1机型占总量60%,股票却持续崩盘?
下一个讨论
有什么是你去了广州才知道的事情?





© 2024-05-17 - tinynew.org. All Rights Reserved.
© 2024-05-17 - tinynew.org. 保留所有权利