Delphi 11.1 试用报告
Delphi 11.1发布已一月有余,从3月16日发布就一直使用,感触颇深,尤其是开发Android应用方面,更是体会颇多!
言归正传,咱先挑优点说,不然你可能就跑了!
这个版本,一个字:丝滑!处处是丝滑!一但你上手,就有种欲罢不能的感觉!
IDE启动
首先是IDE的启动速度,无论是你安装后第一次启动,还是安装了常用的控件、插件,都会让你感觉到启动飞快,这一点很重要啊,回想旧版本,看着长时间的启动界面,真的让人烦!
打开项目速度
然后呢,是打开项目的速度,无论多大的项目,简直是秒开,这要归功于LSP初始化的速度,正如官方说,这一点上比旧版提升30倍以上的速度,这次真不是吹,切切实实让我感受到了。
新建空白项目
测试一个空白的FMX项目,从编译到运行到实机上,也与旧版本有天壤之别,同样是丝滑!不得不说,这次对于Android的优化与提升,落到了实处。从默认附加的jar库上看,已经丢弃了原来的包,完全是新的jar,默认加了一堆,都不知道是什么了?有朋友在群里问,都干什么的,我也想知道呢?
实操项目
最后,做一个实际的小项目,看一下运行速度,万万没想到啊,这次在实机上运行的速度,提升的更是明显,内心不得不感叹!这才是原生App该有的速度啊!回顾以往的旧版本,在这方面确实让人悍然,较as开发来的原生,在速度方面还是有差别的,嘿嘿,这次可以挺起腰杆做人了,你说是不是?
IDE细节
再说说IDE可视化设计Form,哇,细节之处体现更多,比如,增加了VCL设计时的控件对齐的标线,打开控件较多的Form的速度,编译提示信息用不同的颜色来显示,方方面面,处处能感受到这次在IDE上官方的投入是最认真的一次!
同旧版比较
回想去年D11发布时,我也是立即进行试用,不到三天我就放弃了,为什么呢?就因为让我感受不到成熟,处处是半成品的感觉,当时都想,如果我是公司的老总,一定把开发团队统统关小黑屋,这种半成品拿出来给用户,这不是丢人现眼吗!我大胆的猜想,对于D11,公司老总一定发飙了,不然也不会有D11.1这么大的提升!
组件与代码兼容
安装第三方组件,我常用的UniGUI,kbmMW,uniDAC等,没有遇到问题,同样让人感到丝滑,平稳升级,这难以让人想象,对组件的兼容性会这么好!当然,原有项目代码也不是百分百不用改,我发现这个版本,重新定义了枚举类型的定义标准。看看下面我随便找来两个D11.1中的定义,估计你一眼就看出,枚举值取消了前缀,如原来的alTop,改成了Top,其实,早该这样!
TFormStyle = (Normal, Popup, StayOnTop);
TAlignLayout = (None, Top, Left, Right, Bottom, MostTop, MostBottom, MostLeft, MostRight, Client, Contents, Center, VertCenter, HorzCenter, Horizontal, Vertical, Scale, Fit, FitLeft, FitRight);
还有我遇到的权限请求的接口重新定义,看下面我用的代码:
{$IF CompilerVersion >= 35} //Delphi 11 procedure(const APermissions: TClassicStringDynArray; const AGrantResults: TClassicPermissionStatusDynArray) {$ELSE} procedure(const APermissions: TArray<string>; const AGrantResults: TArray<TPermissionStatus>) {$ENDIF}
其他改动我不清楚,估计还会有,但我没遇到。
平台支持
最新的Android 12,iOS 15,Windows 11,Mac OS 12在这个版本中均得到支持!由于我只专注于Android app的开发,查看支持的Android SDK API 版本号,支持到30,在开发过程,对于平台的兼容性没有遇到问题,顺利过关,而提到的其他平台,没有试用的机会,暂时也无法有什么结论。
更多细节
上述内容,都是我实际操作过的具体感受,而对于这一版本,更多更新的细节,可以看官方Macro Cantu发表的文章:宣布RAD Studio 11.1 Alexandria的可用性。
试用结果
截止今天是4月23日,从发布到现在,因为疫情原因,居家隔离,全天基本就是在D11.1泡,现在升级完一个生产的项目,同时还开发一个小App,期间也遇到坑,但这不影响大局,已经顺利交工,这说明D11.1的成熟,投入生产是完全没有问题的。
优点写了不少,我想你已经心动,也想装上来试试,但下面的问题你也要知道,其实,我最近写了不少在升级到这个版本的过程中遇到的问题。总结来说有以下几方面的问题:
IDE兼容性
当使用IDE打开旧的项目,对于Android平台来说,你要手工处理默认加载的Jar,记住,只能自己处理,不然无法编译过去,因为默认加载的Jar全变了,另外,打开旧的窗口,很容易出错,把IDE搞崩溃了,这时候,显得ide很不稳定,脆弱的不行不行的,卡死,闪退,希望你不要被吓到。我想,在这方面,官方没有经过实践就发品了。原来的IDE在打开一个窗口时,如果上面有控件的属性被当前版本改了,会提示错误并能够正常打开这个窖口,现在则不行,一般遇上,就完蛋了!因此说,ide在兼容旧窗口方面,简直让人无语,准备好承受这带来的苦难吧!
Android平台
当你编译旧的项目前,一定把原来的输出目录android删除,因为ide的编译结果不保证结果,运气好正常,运气不好则会掉进无尽的深渊。我就遇到了。
Bug、Bug
这个版本,Bug还是大量的存在,通过QC上面用户的反馈可以看到。但对我来说,遇到下面几个算是影响项目升级进展的,有的克服了,有的还在等官方解决。
1.jar编译不过去,卡死ide
2.65536错误,当引用多个jar时,可能会遇到,无法编译通过。这个还好,官方给了个临时方法(patch 1解决)
3.listview继承的问题,现在被这个问题卡住,等解决(patch 1解决)
其他用户反馈的问题暂时我还没用到,无所谓了!
如果你想了解更多的细节,可以参看我以前写的内容,也许能帮上你。
最后,我想,在你充分了解了Delphi 11.1的优缺点,还是会和我一样,升级,来体验Delphi 11.1带给我们的丝滑!Delphi 11如果你装了,删除吧,对Delphi 11.1来说,已经没有意义!
4.26 官方发布了patch 1,用过之后,觉得让Delphi 11.1进一步上升个台阶!在本文中遇到的问题,也都解决!具体参阅:
RAD Studio 11.1 Alexandria Patch 1发布了