抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

这是什么?

可能有一些人还不了解这个项目,不知道 MyLuaApp 是啥,哈哈。

简单的说这就是一个开发工具,能在手机上用 Lua,甚至是 Lua 混合 Java 开发安卓应用。

其实是受到了 AndroLua+ 的启发,又看到了 AIDE 这样的项目,心想怎么没有一个 Lua 编辑器能类似 AIDE 那样,提供详细的 Lua 补全,一整套更逼近电脑 IDE 的开发体验呢?所以这个项目就开始了

项目编写时期

用 AndroLua+ 编写

这个项目的第一个可运行版本是在 20 年?我也不记得了,那时候还是用 AndroLua+ 写的,整体其实和 AndroLua+ 那套差不多,基本就是换了个皮,还是用底包打包出来软件的。

用 Kotlin 重写

21 年初的时候,那时候已经有电脑了,就感觉 AndroLua+ 那样的工具不能算是 IDE,只能算是编辑器,所以就想着用 Java 重写,做一个更像 IDE 的东西。然后就有了这个提交,可以说是命令的齿轮开始转动了。

然后一直在写,中间换了一次编辑器,也开始研究 antlr (还真给我研究点东西出来了),那时候一心都是只想着为这个项目,不停的在写。

最有成果的时候

那时候应该是 22 年,我陆续研究出来了 maven 仓库的引用,用 aapt2,d8,r8,ecj 打包,对着之前那个框架一顿填充,就弄出来了当时最好的版本,也是最有成果的版本。

这个版本支持类似 aide 的那种 android 打包(包括编译 java,v2 签名,aapt2 等),自己弄的一个伪 gradle 框架(多模块打包),虽然实际上是用 lua 脚本来写的。
甚至还有弄了增量编译等等,当时的我真的是很有成就感,觉得自己好厉害,也确实是,这个版本的功能确实是很强大的。

这里

最后的重构

在那之后,我开始阅读 IDEA 的代码,以及其他类似项目的源码。发现自己的架构根本还是一团乱码,没有优秀的扩展支持,导致在写与 java lsp 连接的时候,代码写的很糟糕,很难扩展,也很难维护。

这时我不得不需要一次彻底的重构,让整个项目变成真正 IDE 的可扩展式的架构。事实说明我的决定和想法是正确的,但是我低估了弄这个架构的难度。

我开始移植 gradle 和 idea 相关的 api,但是越移植,越感到这些项目架构的庞大和复杂。举例来说,我移植 idea 其中一个
模块 的源码,就有 300 kb,几万行代码。而这只是一个模块,在 idea 中有几十个类似这样的模块,上百万行的代码。而我只是一个人,我也不可能把这些都弄明白。

后面可以看到,我在这个分支上的提交就越来越少了,从 2022 06 开始,我就没有提交过重大的东西了,因为我发现我根本弄不出来这个架构。

最终,我停止了对 MyLuaApp 的开发。

停止开发

当然,只凭借一两个理由是不足以直接让我停止开发的,在前几年的狂热时期,我是一心想真正的做好这个项目的,我下面在列举一些我停止开发的原因。

项目难度太大

做 IDE 我前面也简易描述过了,架构代码量都超乎想象,要做一个好用的 IDE,需要考虑很多细节和功能,比如代码高亮、自动补全、调试工具、项目管理、模板生成、插件系统等等。

这些功能都需要大量的编码和测试,只凭我一个人,是不足以完全做好的,我最多就只能负责其中一两个模块,而且还需要一个优秀的架构来整合这些功能。

但是我发现我根本没法从 IDEA 移植出来这个架构,这些 IDE 架构真的很庞大,一个人没法搞定。

在这 2 年半的开发里,一直都是我一个人在写。说实话这真的是一个很难的事情,我也不知道我怎么坚持了这么久,可能是因为我一直都在想着,我只要把这个架构搞定,就可以做出一个很好用的 IDE,所以我一直都在坚持。

但是在最近这一年里,我又在思考,下面的这些原因。最终让我决定停止开发。

ALua 圈子的的现在与未来

在 19 年,20 年的时候,ALua 圈子还是很活跃的,虽然相比 16-18 年,已经逐渐有了衰退的迹象 (开始有一些编辑器停止了更新),但在那时候还是很活跃。

当时的 ALua 相关群,Fusion App 群 一片热火,群里群友们都在分析源码,解决问题。给人一种欣欣向荣的感觉。

但是到了 21 年,这种感觉就不再了,群里的消息也越来越少,AndLua,AppLua 这些都停止了更新。特别是有那几次用 AndroLua 开发恶性应用的事件[1][2]。更加促进了圈子的衰退。

现在的 ALua 圈子基本处于半死不活的状态了,再也没有前几年一堆 ALua 应用上架到酷安的这种状态。

这不止是 Lua 圈子的衰退,其他类似的圈子,比如 IAPP 圈子,也是一样的。经济的发展让越来越多人可以使用甚至是拥有 PC,不在局限于手机那块小屏幕来编程。应用软件的上架也越来越严格,整体上对个人开发者都不利好。随着手机系统的越发完善,用户在稳定不折腾刷机的情况下,也不再需要安装这么多由 Lua 开发的应用。

未来的 ALua 生态可能会继续衰退,或者保持不变。当然了,某些人用 ALua 开发外挂,这又是另外的事情了。

手机开发的未来

上面的 AndroLua+ 及其衍生的 ALua 系都属于手机开发的一部分,手机开发的未来也是不可预测的。

  1. 手机开发在国内也没有得到足够的重视和支持,他们的作品往往被忽视或者贬低。很多开发者也没有足够的资源和渠道来推广和维护自己的作品,他们很难获得收入或者回报来坚持下去。

  2. 手机开发的监管越来越严格,需要更多的合规、审查、备案等,而手机上的开发工具很难遵守这些规则,容易引起监管部门的注意和质疑。
    image.png

  3. 手机开发不是主流的开发方式,使用 PC 可以用更多的开发工具,有更完善的支持,也有更多的人用。当遇到问题时也可以更好的解决,用搜索引擎都可以解决大部分问题了。手机开发则更困难一些,遇到问题需要去相关的论坛,群聊询问他人来解决问题。在加上 PC 的普及,手机开发的圈子终究是会越来越小。

  4. 手机开发不适合中大项目,当开发者使用手机开发项目,随着维护时间的增长项目会越发庞大,不适合维护。手机开发目前知名的开发工具对重构(方法重命名等)的支持都不够完善,因此使用手机开发中大项目并不是合理的选择。

  5. 手机开发就如同踏板一般,圈子里的人总是想着学习更多的技能,即使现在在用手机开发,将来也还是会有很大可能用 PC 来继续开发。得益于先前的经验,这能让他们快速上手 PC 的相关开发工具,最终停止手机开发,让圈子越来越小。

我认为手机开发未来也会像 ALua 圈子这样,继续衰退或者保持不变。手机开发终究是小众的,不是大众的开发方向,在 PC 上的工具远比这些手机开发工具要完善的多。

总结

我低估了项目的难度,没有其他人和我一起开发,以及不看好手机开发的未来。这些叠加在一起共同使得我放弃了 MyLuaApp 的开发。

结语

最后,我要感谢所有曾经支持过 MyLuaApp 的用户和朋友们。你们的鼓励和肯定是我坚持到现在的动力。虽然 MyLuaApp 已经结束了,但是我希望它能够给你们留下一些美好的回忆和收获。我也要感谢 AndroLua+,Fusion App 等开发工具,让我用手机编程,并且对编程产生了兴趣。

是序,这也是开始。有开始,当然就会有结束;而结束,是下一段旅程的开始。

评论