(建议在PC浏览)
General
PKU Helper开发组是一个技术氛围浓厚的团队,汇集了当今校内最为活跃的开发者们。在团队里你可以同一群对开发有着异乎寻常热情的小伙伴们一起,Learn from each other,Hack everything. 加入开发组的这一年是我成长最快速的时期,也是这一段经历让我深切体会到环境对于一个开发者而言的重要性。如果你热爱开发,热爱开源与分享,并由衷的希望靠自己的一行行代码提升园子里每个人的生活体验,欢迎加入我们。
Talk is cheap. Show me the code.
相比于面试时有限的问答,我笃信代码大于一切,尤其对于一个技术而言。因此,在面试日之前,请先尝试完成后文的任务书。
你们所有的代码都将以Pull Request的形式提交,每个人的成果也都将是公开可见的。在开源盛行的当下,拆轮子与造轮子是一项重要的技能。合理的借鉴他人的代码是被鼓励的,但请一定注意保持限度,抄袭是最为程序员所耻的行为。此外,PKU Helper是一个多人维护的项目,如果你们成功加入开发组,此后的开发也将是基于Git的协作开发。因此,你们在完成任务书时相互协作的表现也将被纳入评价。
统而言之,代码提交时间、编程风格、程序正确性、协作与沟通能力、面试表现都将作为考虑的内容。但事实上,你能力的绝对值并不意味着全部,如果在完成任务书期间你表现出出色的学习能力,抑或是对参与开发PKU Helper浓厚的热忱,我都将予以考虑。对于一个技术而言,起点并不那么重要。
任务书的内容也许很多、很难,不必因此打退堂鼓。这不是一份考卷,没有必要完成全部的题目。即使你一份任务也无法全部完成,只要展现出你的能力和态度即可。
最终招募的人数也非确定的,唯一的目标是招募到足够出色或者足够热爱学习的同伴。0或是N,都是有可能的。完全不必把其余人当作竞争对手,相互合作会为自己带来更多。更何况,协作能力是一项重要的指标。
Sign up
请到本页面的托管仓库提交issue
报名。格式如下:
姓名:your_name
学号:your_iaaa_id
院系:your_department
年级:your_grade(format: 大一/大二/大三/大四/研一/研二/etc.)
微信:your_wechat_id
另请扫码加群,并修改备注为『姓名-年级』,未按格式修改或去issue中不匹配者将被请出群聊。
Tasks
LiteSyllabusView
这是目前PKU Helper for Android 3.0中课程表使用的自定义View,出于未来开源时协议选取的考虑,该模块从设计开始就从Helper中分离。这是我接手Android早期的代码,如你所见有很多冗余糟糕的写法,功能目前也有很多欠缺。请提交任何可以完善此开源库的PR,包括添加代码注释和使用文档。建议每个人都试着参与此项任务。
通知栏网关/窗口小部件
目前PKU Helper采用的通知栏网关/窗口小部件仍是2.0+版本的,请尝试自己实现网关通知栏/小部件的UI,以解决其目前存在的小部件无法自适应屏幕宽度
、通知栏看不清字
、通知栏期望添加夜间模式
等用户反馈的问题。注:仅实现UI即可,无须实现实际的连网功能。
ImageView显示本地图片
请实现如下功能:一个布局,仅含有一个固定长宽的ImageView。点击ImageView可以从本地浏览图片,选择后将图片显示在ImageView中。关闭应用,下次打开时仍加载上次选择的图片。提示:使用Glide/Picasso/Fresco等开源库可以极大的简化你的代码。
这个功能将会在3.0正式版中用做更换左侧边栏header图片,如果你实现的很出色,我会直接在正式版使用你的代码并将你纳入到contributor一栏。
树洞详情页
请重新设计树洞详情页(点击一条树洞后进入的包含回复的页面)的布局,按照Material Design设计规范,格式相同的Comment是不适合用Card表现的。楼主发言的header也可以有更加优雅的实现。请参考设计规范,自由发挥。注:仅实现UI即可。
检查更新功能
请思考如何实现app的检查更新功能。提示,获取当前app的versionCode → 从服务器获取最新版本的versionCode → 下载apk文件并自动安装。
你可以使用Beta版的接口来测试。