云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

CDN_异常生物见闻录百度云_价格

小七 141 0

宽带网速一般多少兆_怎么选择_人工智能诊断软件

移动应用现在几乎成了我们的第二天性。他们简化了我们的日常活动,使我们的工作更轻松。我们Freshworks为Freshworks套件中的每种产品提供移动应用程序版本。最初,我们在我们的本地平台上开发了所有的应用程序。然而,随着我们的快速发展,并开始向我们的套件中添加更多的产品,在不同的移动平台(Windows、iOS或Android)上复制我们丰富的功能变得越来越困难。解决这个问题的方法是跨平台开发,它使我们能够维护一个单一的代码库,并在不同的平台上应用它。然而,这是一条人迹罕至的道路,大数据,走上这条道路将带来我们产品制造方式的范式转变。这可能意味着我们失去了已经测试过的库。它也会改变我们处理问题和分析问题的方式。但另一方面,有了正确的工具,我们就能提高我们的性能和效率,并减少我们在开发移动应用程序的工具和技术上的开支。跨平台开发仍然是许多公司的梦想,但其中不少公司已经成功实现了这一梦想。例如,googleinbox在其web、Android和iOS应用程序之间共享70%的代码。我们决定调查这些公司所做的,找到最适合我们的框架。googleinbox使用java2objc,一个从Java生成Objective-C代码的工具,在他们的移动应用程序之间共享代码。Java2objc将在iOS版本中复制为Android编写的逻辑。类似地,Dropbox使用Djinni,一个可以与C++和Objtovi-C接口C++的工具;共享逻辑是用C++编写的,Djinni使java和Objtovi-C能够访问java。但似乎没有明显的领先者。因此,我们着手进行一项权衡研究,以帮助我们找到符合我们要求的框架。进行权衡研究权衡研究是一个过程,允许团队从可行方案列表中选择解决方案。我们是如何做到的:入围框架确定了对这些框架进行评级的参数消除了基于这些参数的框架,直到我们得到了一个最适合我们的框架框架:我们选择了HTML5来构建混合的应用程序。我们还确保这些框架支持代码共享,并且可以与我们的代码库共存。我们考虑的是:颤振Flutter是Google的跨平台SDK,它使用Dart编程语言编写应用程序。Flutter允许单个代码库在多个平台上创建应用程序。热重新加载可以无缝工作,并且还提供了与现有代码库进行互操作的规定。当我们评估框架的时候,颤振是在阿尔法。尽管如此,Flutter还是有很好的文档、示例和支持。本地反应Facebook的React Native与React(Facebook维护的web框架)具有相同的设计原则,并使用Javascript(JSX)来构建本地移动应用程序。React Native可以与用Objective-C、Swift或Java编写的现有视图和组件顺利工作。它也有非常好的调试工具和对热重新加载的支持。React Native为web开发人员开发移动应用程序开辟了一个全新的天地,因此受到了广泛的关注。香豆素微软旗下的Xamarin允许用户用C语言构建本地移动应用程序。Xamarin IDE允许在microsoftvisualstudio中开发原生Android、iOS和Windows应用程序。这些应用程序有一个共享的应用程序和视图逻辑,使开发人员仍然可以访问特定于平台的系统API,Xamarin还提供了一个用于用户界面开发的可视化编辑器,这在我们评估的其他框架中是缺失的。此外,Xamarin有许多帮助学习的例子——Xamarin大学有助于轻松学习C并构建跨平台移动应用程序。戈莫比尔GoMobile是Google的Golang团队开发的一个实验性框架。它的建立是为了展示Go构建移动应用程序的能力。GoMobile既可以在Go中构建一个成熟的应用程序,也可以构建一个可以与现有Android和iOS应用程序协同工作的SDK。评价:下面是我们如何评估每个框架:列出参数根据一组要求对每个参数进行评分,并附上原因/代码(如适用)对每个需求进行排序并分配权重计算最终得分(总和[权重*成绩值])性能我们进行了测试,以衡量跨平台框架与本机框架的性能。我们通过在不同的框架中构建相同的应用程序并将其与本机构建的应用程序进行比较来实现这一点。我们根据这些子参数测量性能:每秒帧数启动时间内存分配SystemApisit很明显,跨平台框架具有相似的性能数字,物联网是啥,与本机应用程序相比没有任何严重的缺点。我们想评估该框架是否支持访问系统api,如摄像头、VOIP和文件存储。我们的许多业务用例都是围绕着共享文档和协作展开的,因此对实现这一点的api的轻松访问至关重要。测试库的可用性我们检查了用于生成覆盖率报告、构建测试套件和处理模拟数据的测试库的可用性,因为我们的开发工作流的一个关键组件包括拥有测试用例的舒适性,以及在开发周期的早期发现bug和问题。我们还考虑了与现有UI测试工具的兼容性。错误和崩溃报告我们之所以热衷于这个特性,是因为跨平台解决方案通常涉及到语言之间的跳跃,而且为了调查bug和问题,很容易访问错误和语言跟踪非常重要。技术成熟度我们检查了这个框架是在alpha、beta还是在生产中。在这一类别中,国内云服务器哪家好,企业管理类软件,一个准备好的和高等级的产品将被测试。代码重用与当前代码库共存我们考虑了这个参数,大数据与云计算,看看是否可以在新框架中使用现有的库和util,并且在不需要重写现有代码库的情况下隔离特性。开发者社区与开发者幸福强大的开发人员社区使故障排除变得容易。考虑到我们将在一个新的环境中开发,检查对框架的支持以及调试工具的可用性是很重要的。我们还检查了我们是否可以访问how-to文章、博客和教程,因为我们将加入一个相当大的团队。加入一个新的团队并有语言方面的经验这个参数对我们在Freshworks的团队来说非常特殊。该团队由Java和Objective-C开发人员组成,引入一种新的语言会使团队的工作方式发生重大变化。我们的测试和部署过程也必须改变以适应框架,因此我们也必须考虑这一方面。分级和排名参数:我们研究的下一步是对参数进行分级和排序。我们给每个参数一个最低要求,并根据它们与要求的距离来分配等级。这有助于我们给每个框架一个总分,也为理解为什么选择某个框架提供了一个参考点。我们对性能、开发人员的幸福感以及与代码库共存的能力进行了非常高的排名,因为我们觉得这些参数对我们想要构建的东西和团队的运作方式有着重要的影响。这个排名会因团队的目标而有所不同。然而,我们知道这些框架在不断发展,我们计划定期重新审视这些框架并更新我们的指标。结论:经过评估,我们发现GoMobile是满足我们需求的理想的跨平台开发框架。GoMobile允许我们继续使用UI库,而对我们的工作流程几乎没有任何改变,并且允许我们在iOS和Android之间共享业务逻辑。与学习C++或理解JavaScript的细微差别相比,学习曲线也大大减少。进行权衡研究不仅有助于我们找到我们想要使用的框架,而且在多个方面都是有益的。我们会花很多时间来做决定,因为我们会花很多时间来做决定。它还将对团队的结构、任务的优先级和路线图的布局产生影响。 这个过程使我们能够考虑到不断变化的环境,如果我们遇到另一个有希望的新的跨平台解决方案,我们现在可以快速评估它。这也给我们留下了宝贵的商业教训。我们在为客户和客户选择解决方案的过程中,首先要考虑的是,我们要从技术和客户的角度来选择解决方案。相关岗位我们如何在Freshworks创建数据湖-第二部分我们如何在Freshworks创建数据湖-第一部分