之前没有接触过 dart 语言,因为学校有个课程安排是「给定数据和选题,限时完成一个 app 的实现」,不限具体技术,考虑到要跨平台基本上没什么好的选择就选了 flutter ,没有后端,只用了 firebase 做简单的数据源和 auth 。
具体需要做到以下的内容:
给定的时间是一周,然后做出来的效果大概是这样:
注册 /登入放在同一个界面,输入完邮箱后自动检测是否已经注册来判断接下来进入注册还是登入(感觉可以进一步完善,不过时间不足就没仔细设计了)
程序内部的界面大概是这样,这里我额外花了点时间改掉数据源和 UI 上的文字,用的是世界文化遗产的那个 open data 。
实际上作为课程要求给定的数据源比起世界文化遗产的 open data ,数据结构要混乱许多,也花了不少时间去处理 nullable 的情况。倒是 flutter 有类似 kotlin 的 null coalescing ,帮助减轻了不少处理负担。
carousel 、fab 、地图 api 还有大头钉,还有分享到第三方功能用的是第三方库来实现的。搜索框里面想到了用标签分隔关键词的想法,在 stackoverflow 上找到了一些代码片段,不过还是花了不少时间来适配,而且第一个片段有 bug 用不了,还好那个问答下有好几个方案所以最后还是弄出来了。用 fab 而不是抽屉因为感觉这样更方便,也更适合跨平台的场景。
ListView 的的溢出方面,因为一开始完全不懂,花了不少时间去处理错误然后慢慢也理解了该怎么 debug 一个 flutter 的 widget ,虽说现在还是不能很熟练的一次写出不溢出的 widget 就是了。
在架构上,虽然听说 flutter 并不是为 mvvm 设计的,不过还是专门花了一点时间基于 provider 来捏了个 mvvm 的骨架,感觉用 mvvm 的最直观的好处就是增添新功能或者改数据流的时候改起来很方便,可能是因为解耦合的原因。
大体上就是这样,然后作为课程小结的展示会上也看了别人的作品,似乎并没有做的更好的(比如说 fab 和基于标签的搜索就没人做出来)。
当然这边的学校并不是什么很出名的学校,其他的学生也没感觉很厉害,可能在国内好点的学校可以看到更好的作品吧。
所以也想问一下,大概在没学过 flutter 和 dart 的前提下,花一周时间做出这个玩意,能够赶得上国内正规学校大四学生的平均值嘛。
一个 typical 的大四学生做类似的项目,一周时间的话,大概需要做到什么样的效果呢(不限制具体使用什么技术栈)?
源代码就不发了,毕竟也不是什么很厉害的东西,也是为了避免出现隐私问题。
1
userdhf 2022-12-05 05:45:51 +08:00
头条刷过一个短视频,讲国外程序员面试八股基本全军覆没,所以盲猜,国内相关专业理论基础应该教的是比较全面的,而且通过闭卷考试的话学生对计算机基础知识、操作系统、网络、数据结构与算法掌握的应该还是比较扎实的,国内一本的代码能力应该也还是可以的,几大计算机 /软件工程名校出来的学生基本 t5/p5.5 起步了(盲猜没谱)。
所以楼主如果对基础知识比较扎实,对 dart 语言特征比较了解的话,还是很不错的。 |
2
yimiaoxiehou 2022-12-05 08:28:19 +08:00
肯定过平均了
|
3
HuPu 2022-12-05 08:55:14 +08:00
我中游 985cs 学校 你吊打我
|
4
polobug 2022-12-05 09:11:15 +08:00
没有后端= =?? 答辩怎么说。。感觉会被 dui 。。
|
5
Danswerme 2022-12-05 09:43:46 +08:00
我之前学 flutter , 学了一周还在绕 dart 的鬼畜嵌套语法,你吊打我
|
6
AoEiuV020CN 2022-12-05 09:56:17 +08:00
平均是一周从入门到放弃,能做出东西就很好了,
国内情况应该基本是有明确指定刚学的某种或某些编程语言再要求实现什么,不会太宽泛的要求自学, |
7
Donahue 2022-12-05 09:56:19 +08:00
厉害了
|
8
hellojay 2022-12-05 09:56:38 +08:00
你已经很厉害了!
|
9
Veneris 2022-12-05 09:57:20 +08:00
一周时间做出一个简易的 app 对于一个大四学生来说可能有些困难。Flutter 是一个移动应用开发框架,它可以让开发者使用 Dart 语言快速开发跨平台的应用。Flutter 本身并不难学,但是要想在一周内做出一个简易的 app ,您需要具备一定的编程能力和经验。如果您是一名初学者,可能需要更多的时间来学习和练习。
|
10
whyrookie 2022-12-05 10:00:27 +08:00
很厉害了
|
11
foufoufm 2022-12-05 10:06:13 +08:00
你之前的相关技术呢?
|
12
icedx 2022-12-05 10:07:10 +08:00
是大佬, 我死了
|
13
lookStupiToForce 2022-12-05 10:13:53 +08:00
一周时间?放全国所有普通高校是 0.1%,放 985211 是 5%,就算是顶级名校也是 10%
|
14
bigdude 2022-12-05 10:31:32 +08:00
炫耀贴,鉴定完毕
|
15
7gugu 2022-12-05 10:46:08 +08:00
毕设可能会简单了一点,但作为课设肯定是绰绰有余了,这种就是老师瞄一眼你就知道你肯定过了那种。
|
16
elonmask 2022-12-05 10:59:09 +08:00
凑合吧,一周时间挺长了。我曾经半天学了 kotlin ,然后晚上开始写 app ,一天半实现一个星座运势 app 请求别人付费接口,第二天晚上直接上架卖 3 快,后来挣了几百块 ,不过我多年前会 java 也开发过半年 Android ,后来忘了。
|
17
40EaE5uJO3Xt1VVa 2022-12-05 11:44:57 +08:00
是大佬, 啊,我死了
|
18
fyacc 2022-12-05 19:11:50 +08:00 via Android
很厉害了,我们也有个类似的结课项目,不过后端要自己写,用 erlang 写的聊天室。时间不够,做出来的也比较粗糙。
|
20
tgwl 2022-12-06 01:28:10 +08:00 via Android
看楼主之前的帖子 15 年就已经开始在论坛发布问题了,很厉害的大佬
|
21
netabare OP 谢谢各位的回复和鼓励~说实话我对自己的能力挺没信心的,毕竟本身也不是理科生,平时看别人分享的很漂亮的作品也会挺自卑的(
@userdhf 印象中,国内学生对算法和基础知识的掌握确实是国外的教学没法比的。感觉最重要的一点反而是因为国内有各种竞赛也很重视算法方面的教育吧,国外的话……在没有竞赛氛围的前提下,很少有学生会对算法感兴趣想要在这方面做点什么,参加算法比赛的也是凤毛麟角了。 不过几大经典课程,包括操作系统、网络和编译原理,国外也是有的,而且印象中这些科目也挂了不少人。比较羡慕国内的主要是感觉国内许多课程的展开方式比较有新意,比如说用 rust 讲操作系统或者用 tapl 来讲编译原理这样,然后这边学校的老师都是比较老资历的不指望他们会做出很创新的课程出来就是了( @polobug 一个是因为 firebase 本身带有数据库、auth 和 notification 的功能,另一个是不想有事没事就上 spring 全家桶吧。只有一周时间,要做出大而全的项目肯定是不切实际的。这边的想法大概是,比起做一个啥都有但啥都一般般的,还不如在前端多花点时间,至于后端的话,看以后的安排,如果还有兴趣重拾的话自然是可以考虑的,不过也不一定非要上 spring 那种重型框架就是了。 @Veneris 这个一定是 AI 吧( @foufoufm 之前倒是杂七杂八的了解过一些别的语言,比如说 Kotlin 、C#、Scala 、OCaml 之类的,但是只写过 cli 小工具级别的东西……图形化客户端,然后 MVVM 的,确实还是第一次接触。 @elonmask 确实,一周时间还是蛮长的,虽说实际上因为第五天下午就要展示所以实际上只有 4.25 天( 不过一天半实现一个 app 上架感觉还是很厉害了>< @fyacc erlang 似乎是个很有趣的语言?时间不够的话确实要妥协很多东西的,我都感觉哪怕再给多一天就可以多做许多东西了。 虽说如果时间充足的话可能会想找个更合适的项目而不一定要做学校里面的选题。 聊天室感觉也是个挺有趣的题材,或许哪天也试试这个好了。 @tgwl 不是大佬啦,而且那时候也没想到自己会学计算机,回过头看感觉挺班门弄斧的。 虽说那时候就对计算机和编程有点兴趣,但是艺术生的话顶多就学点网页(还是 Dreamweaver 那种),只是靠自己杂七杂八的学乱七八糟的东西还是没入门,大概还是太笨了。后来艺术没学下去转了计算机,慢慢才走上正轨的。 |