LCUI 2.1.0 发布了。(站群域名注册:www.wzgame8.com整理)LCUI 是一个用 C 语言编写的图形界面开发库,可用于构建简单的桌面应用程序。
更新概要
本次更新共计支出 90 美元用于悬赏,合并了 4 个拉取请求,参与的贡献者有:vbalyasnyy、jduo。此外,LCUI 在 OpenCollective 上新增了一位赞助者,共计获得 50 美元捐款。
问题修复
wasm-ld: error: duplicate symbol: self (2b0424c)
display: rect_array 未被释放 (224c433)
gui: 部件销毁后未标记无效区域 (8e1f136)
gui: TextView_SetTextW() 段错误 (#195) (a10df88)
ime: 设置输入框文本光标时段错误 (0b644e1)
linux: 在窗口处于最小尺寸时渲染会出现段错误 (#200) (#201) (fa23f89)
mainloop: 将事件触发器从 OpenMP 并行循环中移出以解决主线程阻塞问题 (#204) (#205) (6978f46)
新功能
添加 settings 接口 (#191) (#211) (#212) (1b8c6e6)
Android 支持计划
作者已确认将 Android 支持列入开发计划,但由于作者并不是 Android 开发者,也不打算学习 Android 开发,所以,这项工作将由开源社区中的 Android 开发者完成,当然这并不是无偿的,完成这项工作的开发者将会获得一定数额的奖金。
之所以选择以悬赏的方式吸引贡献者,是因为在此前的几次版本更新中,有不少开发工作是以悬赏任务的形式交给其他开发者完成的,效果还不错,这也足以证明开源社区中有很多潜在的贡献者,他们有能力为开源项目做贡献,只不过是缺少足以驱使他行动的理由,而悬赏则是满足理由的最为简单直接的一种方式。
LCUI 在此之前一直是个人项目,可能是因为大家考虑到作者时间和精力有限,除了在 OSCHINA 评论区发点评论外,很少有除此以外的有实际意义的互动,例如:提出功能需求、改进意见、贡献代码。这种状态不利于开源项目的长期发展,因此,作者想借此机会尝试推动 LCUI 转变为由社区驱动的项目,让更多人能够推动项目发展,而不只是作者一个人。
接下来以问答的形式进一步说明。
为什么决定添加 Android 支持?
相信有些人也有相似的体会,安卓的某些应用占用存储空间和内存很大,明明它的界面很简单,性能却非常差,用起来着实让人火大,喷它也没意义,所以,为搞清楚原因,作者想基于 LCUI 写个 Android 应用来体验实际效果,以便确认是 Android 开发者技术水平的问题,还是他们用的 UI 框架有问题,又或者只是因为硬件配置低。
添加 Android 支持有什么意义?
拓宽 LCUI 的受众范围
让作者可以写 Android 应用
给 C 开发者多一种消遣方式,无聊时可以用 C 写个 Android 应用来打发时间
给 Android 开发者多一种选择,虽不能正式用在生产应用中,但可以用来研究和折腾
悬赏奖金有多少?
估计需要 1000 美元,除去 10% 的平台服务费和转账手续费,实际能获得 900 美元,奖金大部分由赞助者提供,也就是说实际奖金有可能超过 1000 美元,也可能低于 50 美元,如果你能完成这项工作但觉得奖金少的话,可以利用自己的知名度、人脉以及各种途径去推广,吸引更多的人赞助这项工作,毕竟能够拉到赞助也是一种能力。
那你这不就是炒作吗?
具体得看实际情况,如果有开发者要求的赏金低于 500 美元的话,作者会考虑直接全额支付赏金,当然,如果都要求 1000 美元以上那就只能等作者资金充足的时候再考虑了。
服务费这么高,为什么不考虑国内的赞助平台?
因为国外的赞助平台有很多流行开源项目在使用,积累的开发者也很多,在上面发布悬赏更容易推广吸引贡献者。而国内的话,某知名开源代码托管平台对这方面的支持欠缺,只有简单的打赏功能,虽然近期有举办过悬赏的活动,但活动奖金固定且活动只持续一小段时间,无法满足现在这种需求。至于其它类似平台,作者不了解。
如果我想负责这项工作,需要做什么准备?
先在 issuehunt.io 上提交你的期望奖金,然后在 issue#210 页面中发评论表示愿意负责这项工作,等一段时间后由作者决定由谁负责。如果你有相关问题需要咨询,也可以写在评论中。
如何为这项工作赞助资金?
在 issuehunt.io 上追加奖金即可,如果你想为 LCUI 的未来开发工作提供资金赞助,也可以在 OpenCollective 上进行赞助。
如果这项工作一直没人赞助怎么办?
现在的主要目的是找到有意向做这项工作的开发者,了解到他们期望的奖金数额,至于赞助的事情要等之后再考虑。
做这项工作能获得什么好处?
获得一定奖金
积累 C 和 Android 开发经验
向开源社区的开发者展示你的技术水平
你的名字和链接将被展示在 README 文档和官网首页中
从上述的几个好处来看,这项工作最适合时间充足、有一定编程能力但需要积累实战经验的计算机专业学生,能让他们在锻炼编程能力的同时顺便赚点零花钱。
这项工作的内容是什么?
工作清单如下:
驱动
视频驱动
触屏驱动
键盘驱动
主循环(UI 线程)
接口
DPI 获取接口
屏幕分辨率获取接口
系统信息获取接口
…
文档
技术文档,介绍安卓端支持技术实现方案
开发文档,介绍如何基于 LCUI 开发 Android 应用,以及如何调试
示例
添加 Android 示例项目,移植现有的 helloworld 示例程序即可
CI 服务
编译 Android 示例项目为 apk,并将其上传到 GitHub Actions 制品列表 (Artifacts) 以供下载
在 Android 模拟器安装运行 apk,并将截图发送到 commit 页面的评论中,或 GitHub Actions 制品列表中
其它
代码结构合理,命名规范,易于阅读和维护,至少能让作者看懂
关于 Android 端的驱动,可以参考 SDL 的源码:
https://github.com/SDL-mirror/SDL/tree/master/src/video/android
这点程度的 Android 支持还不够,后续还有其它计划吗?
先等这项工作完成后再考虑,届时将会规划项目发展路线图。