·

Flutter、Tauri、React Native、Android原生的四次开发经历,为何最后我选择了React Native?

Published at 2025-03-21 12:39:24Viewed 101 times
Please reprint with source link

Flutter、Tauri、React Native都是目前移动端流行的跨平台开发框架,并且他们还能胜任全平台开发。React Native是最早开源的跨平台框架,而Flutter紧跟其后,并且Flutter最近几年超越React Native成为当前世界上最流行的跨平台框架。Tauri则是最近几年诞生的新跨平台框架,跟其他框架显著不同的一点是,它允许你使用任何前端框架,即你能够自由使用整个Web生态进行跨平台开发。

Flutter、Tauri、React Native、Android原生我都尝试过,接下来我说一下我分别使用他们的开发经历。

首先,我第一个使用的跨平台框架是Tauri,当时Tauri V2.0已经发布,我看它能够使用Nuxt.js或者Next.js进行开发,觉得蛮不错的。毕竟我有两个网站,一个是Nuxt写的,另一个是Next写的,这样我就只需要在原有代码基础上修改一下就行了。于是很快我就栽跟头了,首先是Nuxt的桌面端应用,我在dev模式下,没有发现任何问题,$fetch请求也能正常发送。结果build以后,发现所有的请求都废了,全是404,将url改为完整url,结果就是跨域问题。

之后我才明白,Tauri其实是一个Rust GUI框架,HTML、CSS、JavaScript都只是用来渲染画面罢了,想要发送HTTP请求还得通过Rust。于是,在Tauri官方文档中,我找到了HTTP请求的插件,最后才解决了这个问题。

这还只是个小问题,最后真正劝退我的还是写移动端的时候。之后我找到了一个Web端的手机端UI库,于是打算从零开始写一个手机端APP。刚开始一切都没问题,开发起来就跟Web端我适配手机端时一样。直到写登录功能时,我才遇到一个新问题。在Web端我们可以直接使用cookie来实现登录功能,而在Tauri似乎并没有cookie这个概念,我得使用OAuth2实现登录功能,并将access tokenrefresh token存放到安全的地方。

而这就是一切问题的起因,我查看了Tauri官方提供的插件,最后找到了两个能用来存储数据的插件——Store和Stronghold,而Stronghold就是专门用于存储敏感数据的。

于是,我直接根据官网的步骤开始使用,结果最后运行的时候rust build报错了,怎么样都修复不了。谷歌上也找不到什么有用的信息,最后我不得已去GitHub提了一下issue,没人答复。于是我只能放弃Tauri,毕竟这么简单的功能都解决不了,谁知道后面有没有更难的。

后来我也知道这是为什么了,就是Stronghold的一个依赖过时了,但没人替换掉,总之这个问题短期内是无法解决的。具体见Stronghold doesn't work

在放弃Tauri后,接着,我使用了React Native来开发。React Native虽然使用的语言是React的,但是开发体验完全不一样。并且我刚开始使用了错误的UI库Tamagui上手(具体见React Native UI库介绍与对比),加上创建项目使用的template不同,总之刚开始用了不多久,我就放弃React Native了,转而尝试安卓原生和Flutter。

说到安卓原生,我的开发时间很短,因为一开始用了没多久就把我劝退了😅。首先是很奇葩的需要将所有的string都写进一个xml文件里,这跟Web开发这么久所形成的习惯格格不入。接着就是布局组件这些,都得在xml文件里写,而函数调用那些就得在kt文件里写。接着就是实现一个ListView想不到也这么麻烦,最后根据网上找的资料,我才勉勉强强实现一个。

最后把我劝退的,是在安卓原生发送HTTP请求,我对Java或者Kotlin本身就不熟悉,结果我发现想要发送一个简单的请求居然如此麻烦,对比React Native直接一个fetch搞定,安卓原生哪怕下了OkHttp也还是那么复杂。总之,最后我觉得按这个情况下去,开发完一个APP得猴年马月。

于是,这时我第一次使用Flutter进行开发,虽然Flutter用的是dart语言,对熟悉JavaScript的Web开发者来说有些反人类设计,但其写法跟Java相似,并且跟安卓原生相比,已经简化很多了,接着还有一点就是它的官方文档十分齐全,还附有视频。

刚开始用Flutter开发也没啥大问题,基本上都克服了。Flutter的状态管理相比于React Native能够使用Zustand还是复杂很多,不过发送HTTP请求还算简单跟fetch有得一比,比安卓原生简单不知道多少倍。而Authentication的实现比React native navigation的实现过程复杂一些,但最后也是顺利实现。目前看来,我应该可以使用Flutter一直开发下去。最后是什么劝退我使用Flutter呢?答案很简单,因为我无法使用Android emulator进行测试。

前面我使用flutter都是直接用浏览器来测试的,也就是说我测试的是Web端,而Web端想要实现跨域很麻烦,反正我一直实现不了。毕竟我要开发的只是手机端,于是我直接打开安卓版,结果要么是报错,要么好不容易报错没了,结果Android emulator崩了。最后我花了不少时间,都解决不了Android emulator崩溃的问题,GitHub上也有不少人遇到这个问题,于是我只好放弃Flutter。

最后我重新使用React Native进行开发,并且弃用Tamagui,改用React native paper以后,基本上也没遇到什么大问题。一路顺利推进下去,而偶尔也会遇到一些问题,需要花很多时间来解决。就这样前前后后花了三个月,弦圈APP终于在3月1号开发完成。

0 人喜欢

Comments

There is no comment, let's add the first one.

弦圈热门内容

弦圈APP先开发到这里......

这段时间心血来潮,打算开发一下弦圈的手机端APP,这样网站和APP都齐全了。就像数学那种完美无缺的感觉一样,我一直都把弦圈当作做数学那样去做它。之前我在评论区也说过,一直以来都是我自己一个人搞,个人精力有限,因此很多事情进展会比较缓慢。这个APP也是真的难写,手机的环境和网站完全不同,我原先写的代码肯定也是用不上的了,因此也是重新写一套APP的代码。图五为弦圈APP的部分代码,用的是React native写的。我之前写弦圈用的是Vue+Nuxt写的,从零开始自学写的花了六个月时间。现在写这个APP估计也至少需要一个月的时间。写这代码比我当初敲LaTeX写论文还累,这种累主要是身体体力上的累(写代码真的是苦力活),而写论文更多是脑子比较累,因为烧脑,但是我更擅长应对脑力疲劳。毕竟十几岁开始高强度学数学,烧脑对我来说习以为常,真的没什么。除了写代码,我还得运营。这段时间一直专心写代码也没怎么运营网站和社媒了,现在得先放一放APP开发了,不然网站的人气都散了😅。

弦圈在各大搜索引擎处于隐身状态,基本搜不到

小众网站弦圈,在各大搜索引擎基本上就是处于隐身状态,可以看看我分享的几张图片。其中图四、图五为谷歌搜索的后台数据,可以看到弦圈在谷歌也基本上是消失了,那个绿色的收录逐渐清零。因此,弦圈搜是搜不到的,之前有粉丝问我找不到网站,怎么搜不到,这就是原因[哭惹R]。如今这个时代,像这种小众小平台,在搜索引擎基本上不会有任何曝光,就相当于不存在。弦圈的网址不会变:manitori.xyz,因此不用担心找不到网站,有任何变化我都会在社媒账号上说明。既然搜索引擎不给我流量,我计划以后也会ban掉所有的搜索引擎,因为现在大家训练AI都在爬别人的数据,网站暴露在搜索引擎其实也相当于给别人免费提供数据。我也不希望用户辛苦写的东西变成烂大街的东西。最后感谢大家的支持以及你们对弦圈的认可,虽然如今弦圈仍有这样那样的问题,但我相信在大家的共同努力下,弦圈会变得更好[派对R]!

频率派和贝叶斯派到底在争论什么?

看了几本教材上对概率的定义,发现都一样啊,难道用相同的定义可以建立不同的概率理论吗?

计划开发弦圈的桌面端版和APP版

由于如今是后移动互联网时代,很多人在碎片化时间基本上都是用手机,手机用户群体庞大。加上弦圈本身也有不少手机端的访客,占比有时略高于电脑端,有时略低于。而弦圈目前只兼容了移动端浏览器,并没有一个真正给手机用的APP。因此,补上弦圈APP能在一定程度上弥补手机端体验的缺失。而桌面端,只是顺带的事情。其实我一直以来都计划开发弦圈桌面端+APP,只不过原计划是在网站运营好了以后再做打算,之前在小红书也有人说想我弄个APP,我当时就说人手不够弄不了。为什么现在突然决定弄呢?其实是因为我感兴趣😂,并且这段时间也闲来无事,网站运营先放一放了,前面高强度宣传引流+更新内容,属实吃不消,而且效果也不太满意。其实当时开发弦圈网站,确实只是为了应付毕设,不过后来我逐渐对网站开发感兴趣,因此就把它做得更好了。网站的名字刚开始也不叫弦圈,而是叫诗词工作室,后来又改成兵水行,总之名字记得改过好几次。网址刚开始是poemstudio.fun,后来还买了chordspace.cn,现在才改成这个。其实刚开始我是打算做APP的(做安卓APP),不过后来忘记是啥原因了,还是觉得做网站比较合适。现在为啥又说对写APP感兴趣 ...

学基础数学可以相信“勤能补拙”吗?

知乎提问:题主是某985数学系大二,学基础方向,做基础的研究是存在很长时间的追求,很有兴趣。但是大学前期贪玩,在学业上花费时间比较少,除了上课和写作业就基本没花时间在数学上了。所以虽然专业课成绩还好看,但考试成绩没法说明学习水平,我自己明显感觉知识储备非常匮乏。在知乎上看同样学基础的同学们,大一大二甚至高中就学了这样那样的课程,而我大二快毕业了甚至还没系统修过抽象代数,前两年只是在按学校安排的课程按部就班地学。现在想专心学习不要荒废学业,突然就比较焦虑。我高中时没有条件搞竞赛训练,自学考过两次高联,高一40分,高二连市上的预赛都没过。考大学生数学竞赛(专业a)也只能拿30分,数分计算经常算不明白,高代学完很少用,现在基本上忘完。拓扑实变这种课,正常难度的课后习题不看答案自己做得至少三十分钟才能搞定一道,一两个小时是常态,更多的还是不会做。花时间少是一方面,但也感觉自己不是有天赋的人。但我偏偏又走到了今天这条路上。现在很迷茫,当初高考选数学专业是因为一脑子热血,想着人这辈子就应该要向着自己的热爱而奋斗。但现在离本科毕业越来越近,我不得不思考未来的出路。我不知道我这样资质平平的人学基础数学 ...

弦圈更新日志之提问新功能:标记疑惑、提出子问题

今天我熬夜肝出了提问的新功能,分别是标记疑惑和提出子问题。示例可见测试问题:center h1 in the middle of screen和Vertically aligning CSS :before and :after content。我就长话短说简单介绍一下。所谓的子问题,意思是你可以根据原有的一个问题,提出一个更加具体、更加细致的子问题。因为有时候一些问题和回答往往比较宽泛,不是很具体,这时子问题就发挥作用了!而标记疑惑则是你可以标记回答中某个不懂的地方。你可以通过选定回答中的某个语句,然后向答主提出你的疑惑点,答主看到后可以回复你的疑惑。目前标记疑惑还有进一步优化的空间,并且之后计划应用在文章和书上,不仅仅是回答。对了,我还顺带美化了一下提问页面的布局和样式,让它看起来更加舒服顺眼一些。晚安😇

喜欢数学但是不擅长数学竞赛怎么办?非数学竞赛生如何在数学专业生存?

知乎提问:初中根本没有学习,中考以极差的分数去了某末流重点高中(中考分数还没jumping高),高中连数学竞赛名额都没有,高三自学过物理竞赛,因为实验和学习时间短没拿省一,高中基本上没有学过数学竞赛,高考620+考上某985数院,发现周围数学竞赛生非常多,说的东西我根本没有听过,大学数学能学会,别人甚至做了竞赛数论几千道题,我甚至一点都不懂。我的回答:我就从未参加过任何所谓的数学竞赛,我自己也对应试和竞赛本身深恶痛绝,反正是一丁点提不起兴趣。我本身也不是那种应试能力强的人,但这也没影响我的数学水平、科研能力。在纯粹的数学面前,所有学生无论擅长竞赛与非,都一视同仁。会就是会,不会就是不会,有些人参加竞赛比你学得好,可能是别人天赋比较就好,或者就是别人学得比你多,付出的努力比你多,那凭啥不能比你懂。所以答案也显而易见了,题主的这种情况,只能勤能补拙。天赋不如别人好,或者自己比别人学得少、学得慢,但是还是好想学数学,怎么办?其实这都是初学者常常遇见的问题。在我看来,最好的办法就是要学会调整自己的心态,明悟心性,把注意力放回到自己身上,放回到数学本身身上,不要老跟别人比较。说实话像什么别人比我 ...

图灵奖得主写的深度学习入门教材:Deep Learning

这本书是两位图灵奖得主Ian Goodfellow和Yoshua Bengio,以及深度学习专家Aaron Courville写的入门教材。相比于更基础的Aurélien Géron人工智能入门教材:Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow,这本书所需要的基础要多一些,包括数分、线代、概率论,还有一些机器学习基础。由于我并非人工智能领域的专家,这本书也并没有怎么读,所以直接引用这本书的官方介绍。《深度学习》由全球知名的三位专家Ian Goodfellow、Yoshua Bengio 和Aaron Courville撰写,是深度学习领域奠基性的经典教材。全书的内容包括3个部分:第1部分介绍基本的数学工具和机器学习的概念,它们是深度学习的预备知识;第2部分系统深入地讲解现今已成熟的深度学习方法和技术;第3部分讨论某些具有前瞻性的方向和想法,它们被公认为是深度学习未来的研究重点。《深度学习》适合各类读者阅读,包括相关专业的大学生或研究生,以及不具有机器学习或统计背景、但是想要快速补充深度学习知识,以便 ...

center h1 in the middle of screen(示例提问)

How can I center horizontally and vertically a text? I don't want to use position absolute because I try with it and my other div getting worse. Is there another way to do that ?div { height: 400px; width: 800px; background: red; }<div> <h1>This is title</h1> </div>

写给新诗的入门者的几条建议

 我来为大家推荐几个诗人帮助大家更好地入门和学习新诗。八十年代是个文学热潮,其中诗歌发展尤为迅速,有笑话说:“一板砖下去砸晕十个大学生,九个都是诗人。”相应地,朦胧诗人在大众的世界里流传开来。  相信有许多朋友了解新诗是从海子和顾城开始的,那么在这之后,当然可以深耕这几位诗人,也可以去了解其他的诗人。我个人是非常喜欢穆旦的,而且我认为穆旦是一位非常值得后来者学习的大诗人。相较于以朦胧诗和后朦胧诗出名的一代人,穆旦处在中国新诗草创和形成的时期,语言的张力和新意象的创造都是十分直接和有力的,造成的影响也是多样的,这对于后来者的学习很有益处。而且穆旦在吸收西方现代诗歌营养的同时,也在吸收转化拜伦雪莱等浪漫主义诗人的手法,他的几首诗剧(《神魔之争》《森林治魅——祭胡康河上的白骨》等)我都喜欢,而且写的很好也很动人。晚年的穆旦的作品达到了返璞归真的境界,言语朴实,但是寄意深远。或许晚年的穆旦和旧诗更为亲切,读者入门也更简单。总之,在新诗形象的塑造、意象的表达以及技巧的展示中,穆旦毫无疑问都是上等的,再进一步讲,穆旦诗中隐现的民族、苦难的民众、分裂的祖国、迷惘的自我这一系列形 ...

Aurélien Géron人工智能入门教材:Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow

这是本手把手教你入门人工智能的教材,作者是Aurélien Géron。这本书是本畅销书,非常火,被翻译成了多国语言。本书的作者也把自己的这本书免费上传到自己的网站上,不知道现在还是不是,反正我当时下了😇。我一个做算术几何的,当初之所以会关注人工智能,一方面是当时人工智能挺火的,就连算术几何领域也有专家跟计算机科学家们合作,比如Geordie Williamson以及著名的Peter Scholze。Peter Scholze弄了个Liquid Tensor Experiment(液体张量实验),用于所谓的自动定理证明,而这个实验源自于Scholze跟Dustin Clausen在解析几何方面的合作,即将代数几何应用于解析几何。扯远了,回到正题。这本教材可以说图文并茂,配有丰富的插图,并且讲解非常通俗易懂,对初学者非常友好,基本上就需要有点数学分析的基础就可以读了。而且书中还会附上代码过程,给你随时练手,毕竟这个跟编程紧密结合的学科,还是需要编程实践才好学懂的。现在我把这本书分享给对人工智能感兴趣的人。PS:这本书总共八百多页,而且插图很多,因此体积较大。我将其分成三个压缩包分卷上传。 ...

初二,在学交代同调李代数,下一步怎么办?

知乎提问:很抱歉用这个吸引目光的标题骗人进来,但我的确很需要帮助目前我的情况是标题上提到的交代什么的学了,但是和体验卡似的,学完两三周内见题直接秒(有点夸张,但都会基本上差不多),之后就连自己在书上写的过程都看不懂了…再加上课内也没法不管主要问题其实就是时间不够加自控力不足,也就是如何更好自控和如何协调数学与课内的关系(数学扔掉是每个链都有上界的非空偏序集没有极大元,但我课内在我们学校排名才前10%左右,就这个成绩还是考前暂时不学数学备考的结果,更何况我父母要求的中考目标换算到我们学校差不多要排名前3%)总结就是数学和课内分配问题,但我数学扔不下,课内又有强制目标目前想到的解决方法有丘班,但我高数数分什么的记忆性强的全忘了(点明某三角函数的一堆积分,我得现场推),用的书又不深(同济高数+普林斯顿的两本),真要考丘班得消耗半个学期才基本上能保证应该没问题(如果只按0试(好像是一试还是什么)的难度没有较大幅度变动的话)还有生产一篇学术垃圾之后和校方交涉,但这个问题更多求点更靠谱的解决方法,谢谢!(又发了一遍是因为之前发到想法去了...我好蠢)我的回答:说实话所谓的丘班根本不是给普通家庭的学 ...

数学入门应该看哪些书?有什么入门书后看了以后能让人爱上数学?

知乎提问:有什么数学方面的入门书能让人看了后会爱上数学的?参加工作很长一段时间了,但对数学的认识和应用都一直处于很初级的水平(初中时的水平吧)。我知道这个数学世界很精彩,也很迷人,也许我会爱上它而不能自拔,但我先得找到一道进入这个世界的门我的回答:如果你对微分几何感兴趣,可以尝试读Loring W Tu微分几何经典入门教材:An Introduction to ManifoldsLoring W Tu微分几何教材:Differential Geometry Connections, Curvature, and Characteristic Classes。如果你对自己的能力比较自信可以先读陈省身的《微分几何讲义》,我以前初三高一的时候就是先看的这本书,后来才看的Loring W Tu。关于Loring W Tu的这两本书,先读第一本,第一本只需要有数分高代的基础就完全够了。有了第一本的基础后,可以读第二本。把这两本读懂后可以读 Jürgen Jost黎曼几何与几何分析教材:Riemannian Geometry and Geometric Analysis。我当初高二的时候就是因为读 ...