我的第一次全栈黑客马拉松:构建移动应用程序的经验教训
这篇文章已经在我的草稿中搁置了几个月,积满了灰尘。最后,我准备让它重见天日,并与大家分享我的第一次全栈黑客马拉松的经验。
我将透露我是一名自学成才的开发者,这次黑客马拉松是我第一次构建全栈应用程序。
本次黑客马拉松的任务是为房屋公司构建一个移动应用程序,并实现发送房屋报告、房屋申请、查看租金报表、查询帮助和查看常见问题解答等基本功能。
我是 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中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

JavaScript是现代Web开发的基石,它的主要功能包括事件驱动编程、动态内容生成和异步编程。1)事件驱动编程允许网页根据用户操作动态变化。2)动态内容生成使得页面内容可以根据条件调整。3)异步编程确保用户界面不被阻塞。JavaScript广泛应用于网页交互、单页面应用和服务器端开发,极大地提升了用户体验和跨平台开发的灵活性。

Python和JavaScript开发者的薪资没有绝对的高低,具体取决于技能和行业需求。1.Python在数据科学和机器学习领域可能薪资更高。2.JavaScript在前端和全栈开发中需求大,薪资也可观。3.影响因素包括经验、地理位置、公司规模和特定技能。

如何在JavaScript中将具有相同ID的数组元素合并到一个对象中?在处理数据时,我们常常会遇到需要将具有相同ID�...

学习JavaScript不难,但有挑战。1)理解基础概念如变量、数据类型、函数等。2)掌握异步编程,通过事件循环实现。3)使用DOM操作和Promise处理异步请求。4)避免常见错误,使用调试技巧。5)优化性能,遵循最佳实践。

实现视差滚动和元素动画效果的探讨本文将探讨如何实现类似资生堂官网(https://www.shiseido.co.jp/sb/wonderland/)中�...

JavaScript的最新趋势包括TypeScript的崛起、现代框架和库的流行以及WebAssembly的应用。未来前景涵盖更强大的类型系统、服务器端JavaScript的发展、人工智能和机器学习的扩展以及物联网和边缘计算的潜力。

深入探讨console.log输出差异的根源本文将分析一段代码中console.log函数输出结果的差异,并解释其背后的原因。�...
