跨平台技术现已成为企业提升研发效率和动态化能力,抢占新赛道的搏击场。从闲鱼到淘宝,从QQ到微信,从京东到百度,从美团到抖音,BAT等一线互联网大厂在全面拥抱Flutter。
2020 短短一年里,Flutter在GitHub 和 StackOverflow已经赶超React Native成为开发者首选跨平台框架。
尽管Flutter在某些方面表现出色,但仍然有一些人对它的发展前景表示怀疑。近期一些文章针对Flutter的发展提出了不少质疑和批评,称其难以成为移动应用开发的“顶流明星”,这些文章中提到了不少问题和缺陷,从技术实现、生态系统、用户体验等方面进行了分析和评价。
一、语言问题
Flutter使用Dart语言,这是一种较新的面向对象语言,虽然其语法简单、易于阅读和编写,但是相比其他常用编程语言,Dart的使用率较低,这使得某些开发者可能会认为Flutter的学习曲线较陡峭。此外,Dart的生态系统相对较小,这意味着在使用Flutter开发应用程序时,可能需要自己编写一些必要的功能或者使用不太流行的第三方库。然而,Dart的静态类型检查和强类型安全性可以提高代码的可维护性和可读性,从长远来看,可能更有益于应用程序的稳定性和可靠性。
二、开发人员生态系统
Flutter的生态系统相对较小,这是因为Flutter是一个较新的框架,相对于React Native或Ionic等其他框架而言,Flutter的开发者数量和用户群体较少,其社区和生态系统相对薄弱。这使得一些开发者可能会发现在使用Flutter开发应用程序时,需要花费更多的时间和精力去解决问题,或者自己编写某些必要的功能。然而,随着Flutter的不断发展和壮大,其社区和生态系统也在逐渐扩大和完善,未来可能会有更多的第三方库和工具出现,更多的开发者会参与到Flutter的开发中来,这有助于提升Flutter的生态系统。
三、学习成本问题
尽管Flutter的语法相对简单易懂,但是学习Flutter需要一定的编程基础和经验。尤其对于没有移动端开发经验的开发者而言,学习Flutter可能需要花费更多的时间和精力。此外,由于Flutter的生态系统相对较小,一些问题需要自己解决或者使用不太流行的第三方库,这可能会增加学习成本和难度。但是,与其他移动端开发框架相比,Flutter的学习成本并不算高,只要掌握了基本的编程概念和语法,就可以开始使用Flutter进行开发。 相比于Flutter,小程序容器技术的跨平台开发更加容易上手,不需要像Flutter那样学习自定义UI组件和编写更多的代码来构建UI和处理逻辑。小程序容器技术提供了类似于Web开发的开发方式,开发者可以使用HTML、CSS和JavaScript等前端技术来开发小程序,并且可以通过一些开发工具和平台来快速构建和部署小程序。这使得小程序容器技术的开发门槛相对较低,即使是没有移动端开发经验的开发者也可以比较快速地上手。市面上能提供第三方进行私有化部署的有:FinClip产品。据了解,FinClip自行研发的小程序容器技术,能够让企业的App能具备快速运行小程序的能力,他们家的SDK还能嵌入除App以外的职能设备终端中(如 Linux、Windows、MacOS、麒麟等操作系统上运行)。 此外,小程序容器技术的生态系统也相对较为成熟和完善,拥有庞大的用户群体和开发者社区。在小程序生态系统中,有很多的第三方库和组件可以使用,可以帮助开发者快速构建和开发小程序。与Flutter相比,小程序容器技术的生态系统更加丰富,能够提供更多的开发工具和解决方案,可以让开发者更加便捷地进行应用程序开发。
四、性能问题
Flutter的性能非常好,但与React Native等框架相比,仍然可能存在一些性能瓶颈。例如,在处理大量数据或复杂动画等方面,可能会出现性能问题。此外,Flutter中的UI渲染机制可能会导致更高的CPU和GPU使用率,因此在开发Flutter应用程序时,需要格外注意性能问题。尽管如此,Flutter在多个方面都优于其他框架,例如其快速的热重载功能和优秀的跨平台支持等,因此,Flutter的性能问题并不会成为开发者放弃使用Flutter的主要原因。
五、设计问题
Flutter的设计风格和开发方式可能不适合所有开发者。Flutter的设计风格比较激进,它采用了一种称为“自绘UI”的方式,这意味着所有UI组件都是自定义的,并且没有与平台原生UI组件一致的设计。这使得一些开发者可能会认为Flutter的设计方式与其他框架不同,需要适应一段时间才能习惯。此外,Flutter的开发方式与传统的声明式UI不同,开发者需要编写更多的代码来构建UI和处理逻辑。这使得一些开发者可能会认为Flutter的开发方式不太直观,需要花费更多的时间去理解和学习。
六、社区问题
尽管Flutter的社区和生态系统正在不断壮大,但相对于其他框架而言,Flutter的社区和用户群体仍然相对较小。这可能会导致一些问题难以得到及时的解决,或者无法找到合适的第三方库来解决某些问题。此外,由于Flutter相对较新,一些开发者可能会认为Flutter的文档和教程不够完善或者不够详细,这可能会影响开发者的使用体验和学习效率。然而,随着时间的推移,这些问题可能会得到逐步解决,Flutter的社区和生态系统也会越来越强大。
七、市场占有率问题
尽管Flutter在近几年来发展迅速,但其市场占有率仍然相对较低。目前,React Native仍然是移动端开发的主流框架之一,而Ionic、NativeScript等框架也有自己的用户群体。这可能会导致一些开发者对Flutter的使用持怀疑态度,认为Flutter的用户群体不够广泛,可能不具备足够的发展潜力。然而,随着Flutter的不断发展和壮大,其市场占有率也在逐渐提升,未来可能会有更多的企业和开发者选择使用Flutter进行应用程序开发。
虽然Flutter在某些方面还存在一些不足和挑战,但是我们也可以看到它的不断发展和进步。Google及其社区不断加强对Flutter的支持和推广,开发者们也在不断探索和使用Flutter来开发各种类型的应用程序。相信在未来的发展中,Flutter还会不断完善和优化,成为更加强大和有影响力的移动应用开发框架。
与此同时,我们也要意识到,每一款技术都有其适用的场景和局限性,我们需要在实际开发中根据项目需求和技术特点做出合理的选择和应用。