好吧,我过去曾经做过一些javascript开发(node.js),但是ES-6之后javascript发生了很大变化。 现在,我的主要重点是在Java和ruby(主要是RoR)中进行后端开发。 我将分享我编写第一个React本机应用程序的经验。
我决定学习本机反应并构建有用的东西,因此决定重写我和我的朋友Satyajit Sahoo早在2014年开发的一款受欢迎的应用程序Croma。Croma是一款用于组织,生成和保存调色板的应用程序,专注于简单杂乱免费设计。 我们没有时间去维护它,它是用Web视图和本机android编写的。
由于Satyajit Sahoo建议用react native重写它,因此我认为这是学习React native的好机会。 让我们看看如何构建初始版本
弄脏你的手
学习新框架或语言的最佳方法是开始构建某些东西,并一路探索和学习。 因此,我从使用EXPO的样板反应本机应用程序开始,正如文档所述,从EXPO开始更容易。
expo init
我启动了hello word示例应用程序,该应用程序已经具有一些基本功能,因此我可以立即开始进行实验。
Expo真的很容易启动,因为您可以在5分钟内设置一个工作示例应用程序,并在expo应用程序中查看实时更改。
80–20%的规则
我能够在几天之内构建大部分功能,但是当我遇到问题和最终样式时,完成整个项目变得很棘手,事实证明,与Web一起工作要比看起来困难得多。 我主要是在网络上挣扎。
在移动浏览器上,scrollview无法正常工作( 发行 )使它看起来不错,并且理解样式花了我一些时间。 存储,图标等也需要一些调试
完成100%的工作比看起来要困难得多,而最后20%的工作需要80%的时间。
玩得开心
学习新的语言或框架一开始可能会令人沮丧,因此至关重要的是不要在进行过程中思考过多和获得乐趣。 不要太担心正确处理所有细节。 我在构建Croma时很有趣,并且已将其开源,因此可以随意修复一些我已经弄错的代码。 期待向社区学习
这是我在构建croma时构建的React 本机库 。
反应本地人和学习的第一印象
随着世博会是很容易得到的成分使得startedThe概念感觉到那么容易编写可重用codeWith ES6功能,如异步等待和JSX编写JavaScript确实已经变得更加有趣并非一切都可以用做反应母语,我试图执行一个实使用Camera的颜色选择器,但性能却确实是瓶颈。 因此,最终我将不得不退出expo以在本机中实现此功能。
反应原生网络的状态不好,我很多事情在网络上都不起作用。 我仍然设法解决了大多数问题,但是您必须付出额外的努力才能使事情在Web上正常运行 。
Github操作很棒,可以自动执行构建和发布过程。 我能够使用Github页面自动进行网络发布,而使用expo publish进行android发布自动化。 如果您也尝试这样做,请参见这些工作流程 。 通过构建此应用程序,我对颜色和设计学到了很多东西,因此在进行后端开发时几乎没有机会进行工作。
您还可以在javascript中实现机器学习算法。 我实现了一种聚类算法 ,可以从图像中找出最突出的色彩,并且效果很好。 在这里尝试。
期待看到人们如何使用该应用程序。 请在此处尝试或从Playstore下载它,并随时发送PR并提出问题。 我为自己的反应之旅感到非常兴奋,并期待着向社区学习。
感谢Satyajit Sahoo和Bhuwan Joshi以及所有的帮助。
干杯!