这篇文章已经在我的草稿中搁置了几个月,积满了灰尘。最后,我准备让它重见天日,并与大家分享我的第一次全栈黑客马拉松的经验。
我将透露我是一名自学成才的开发者,这次黑客马拉松是我第一次构建全栈应用程序。
本次黑客马拉松的任务是为房屋公司构建一个移动应用程序,并实现发送房屋报告、房屋申请、查看租金报表、查询帮助和查看常见问题解答等基本功能。
我是 Android 开发人员,其他团队成员与 Xamarin for IOS 进行了正面交锋,并为该项目构建了网站组合。
顺便说一句,不要问我为什么我们没有在所有平台上使用 Xamarin,我们是乳蛋饼爱好者。
同时,竞赛规则并未考虑到未经 Big Brothers 审核就无法分发 Apple 二进制文件的事实。
因此,我们计划构建一个 Android 应用程序,并通过 Xamarin 将其编译为 IOS 平台二进制文件。
(...我的一个队友建议了这一点 - 我不知道编译魔法是怎么回事,我之前已经构建过一种语言,并且我知道将语言包更改为另一种语言并不简单)
对于 Android,我们使用在 DroidScript 框架上运行的 Javascript,此外其他队友还参加了另一场黑客马拉松,并应我的要求实现功能。
我选择 DroidScript 是因为它以独特的方式降低 Android 上的 ui 复杂性,并在生成小型二进制文件时访问本机 api。
此外,我选择它是基于使用它进行 ui 开发的经验,我最近将 Material Design 3 库作为插件移植到了 DroidScript,因此 ui 不会成为问题。
我决定不为客户端应用程序添加 Node.js,因为 Node 太重了,但对于管理应用程序,我到处都使用带有 esm 调味剂的 Node。
我们在 4 天内完成了该项目,并在提交当天开始起草管理应用程序,但我们未能完成。
那么,结果如何呢?好吧,我们没有获胜,甚至没有进入最后一轮。事实上,我们从未收到任何反馈或更新,这令人沮丧。我不是对损失感到失望,而是对缺乏透明度感到失望。
尽管如此,这次黑客马拉松还是有一些有价值的收获:
编写测试,即使是在黑客马拉松中
由于时间限制,我们最初跳过了测试,但它又给我们带来了麻烦。测试可以帮助我们避免在开发过程中进行超过 5000 次 Firebase 调用。吸取教训。
不要低估 Android 中的 XML DOM
我们在 UI 性能方面遇到了困难,尤其是在动态添加多个元素时。 DroidScript 处理 Android XML DOM 的方式比预期的要慢。我应该使用 Enjine.IO,这是一个基于 Web 的 DroidScript 版本(由核心 DroidScript 开发人员编写),但速度更快,并且具有跨平台的优势。
关于排除 Node.js 请三思
我们认为在客户端应用程序中排除 Node.js 会节省空间,但这会消耗我们的功能。与将其用作 Node 模块相比,作为脚本集成时,Firebase 的速度要慢得多。下次,我会重新考虑权衡。
感谢您的阅读!这篇博文可能花了几个月的时间才完成,但我学到的教训将持续更长时间。
您可以在这里查看该项目:Hackathon Project。
让我知道你的想法!
以上是我的第一次全栈黑客马拉松:构建移动应用程序的经验教训的详细内容。更多信息请关注PHP中文网其他相关文章!