大三下总结
前言
从2月份短暂实习结束回到学校已经过了3个月了
希望借这篇博客回顾一下这3个月的学习生活
编程
Swift on Server Side
- 重新跟着这本书 practical-server-side-swift-using-vapor-4-book 系统学习了一下Swift后端框架Vapor
- 初步了解了一下前端框架 TailwindCSS
Book and Course
- Combine book: https://heckj.github.io/swiftui-notes/
- SwiftUI Course: https://designcode.io/swiftui-course
MachO Header & Disassembler
- 了解MachO Header结构和dylib加载过程
- 使用Hopper进行iOS反编译练习
推荐两个实用Demo
Hacking native ARM64 binaries to run on the iOS Simulator
本文讲述了如何采用修改binary中MachO Header从而使 arm64 iOS的 library 运行在 M1 的 arm64 iOS Simulator 上
Building a class-dump in
20192020本文讲述了对ObjC和Swift的class dump实现
Apps
WerewolfSimulation
四月初去把和熊老师合作的论文项目结束了一下,修复了一下显示bug
https://github.com/Kyle-Ye/WerewolfSimulation
大学生程序设计大赛
开始被A某找到,2个美术+我一个程序,到快校内初赛向她们要素材时被告知被她们🐦了
后来被B队找到帮她们做程序(3个美术),因为已经错过报名时间,所以这次比赛最后不论拿不拿奖都是没有我名字的,但是对方承诺可以投后面其它比赛,最后产出了DragonDancing App
设计稿:https://www.figma.com/file/wJlIxTmDVAzVbIX1FtWTRg/%E7%95%8C%E9%9D%A21.0?node-id=0%3A1
体会: 算是用SwiftUI产出了一个至少非小型项目,踩到了更多坑
技术栈: SwiftUI + AVKit
watermelon
完善处理了合成大西瓜,并最后以此为codebase提交了WWDC21 Swift Student Challenge
- iOS version
- iPadOS version(支持120帧高刷模式)
- macOS version(支持TouchBar和liveResize)
- watchOS version(支持使用DigitalCrown进行操作)
- 支持各版本之间的Handoff接力
主要使用SwiftUI + SpriteKit 完成核心底层逻辑并被所有版本复用,然后为不同设备系统的交互层分开编码实现
https://github.com/Kyle-Ye/watermelon (current private repo)
MangaHelper
Apple 全平台漫画阅读器(支持Apple Watch),目前仅针对部分网站API进行了硬编码
VideoHelper(Developing)
一款可抓取不同平台视频并观看的视频辅助app(原bili-helper)
Minesweeping(Developing)
Mac上重新移植实现Windows经典扫雷游戏
准备用NSDocument + AppKit 实现
参考 https://apps.apple.com/cn/app/%E6%89%AB%E9%9B%B7-%E7%BB%8F%E5%85%B8%E7%89%88/id1475921958?mt=12 (缺陷:初始可能会踩雷,快速扫雷逻辑有bug)
Watch App 开发
参见李卓力大神的这篇的博客 WatchKit渲染原理以及SwiftUI桥接
这段时间其实做了不少Watch App的开发,虽然主要是用SwiftUI实现的,但鉴于SwiftUI的缺陷,有部分还是希望fall back到UIKit去做的,最后发现因为WatchOS 1的历史包袱,导致WatchKit在很多方面都是残废,本质是UIKit但是隐藏了大量的UIKit方法,最后还是只能用SwiftUI去曲折实现
比如对DigtalCrown的旋转回调,在WatchKit/UIKit中除了可以得到旋转角度外还可以在idle的时候得到通知
1 | // SwiftUI |
目标
- 使用Vapor(Swift) + TailwindCSS 重构博客系统,替换原来的hexo引擎模版,自己造一波轮子,体会一下前/后端开发的快乐
- 希望能更好地参与开源社区
- 参与Swift Evolution,提出自己的一份proposal
- 阅读 Blender 源码,添加 TouchBar Support
学业
大三下
这学期核心课程:信号与系统 + 计算机网络
4月份主要在准备考试周考试
6月份预计日语四级备考
虽然目前仍在保研线内(10%左右),但是应该是不准备读研了,大三下也没有为读研这方面做准备
目标
- 6.12 日语四级考试
- 暑假实习假期重温操作系统网课
工作
简历&面试
因为之前有过某厂的寒假短期实习,所以这次就只投了这家
用了内推码后只有一面,面了iOS这边很基础的Runloop和UIKit中一些底层知识,因为准备得不是很充分,平时UI拿SwiftUI写很少用UIKit,最后基本都没答上来,心态💥
不过最后还是被前Mentor捞了上来,希望这次到了之后好好表现
目标
Swift & OC 混编推进
XX for watchOS and macOS?
如果你想到了一个非常好的idea
别跟你的Mentor或者Leader说这东西多好多好
先一个人试着把它做到能让大家看到
这样所有人才能理解你的意图
💡停留在🧠里是毫无价值的
能切实地落地执行下来才有意义
游戏
第五人格
平时没课的时候除了学习就是沉迷第五人格了,然后就是3月底开始的深渊4中国大陆赛区和5月初的全球总决赛(这波上课去不了杭州看决赛,希望明年工作了可以五一有假期去线下应援一波🥺)
然后就是粉上了GG战队(🦐宝和小🐴哥)和狼队,5月份开始也会不定时在排位时间看他们的CC直播
目标
- 平时玩第五人格时注意时间控制
- 明年线下看深渊
生活
M1 Mac
实习两个月回来了打开Apple Store,选择了💰♻️计划
,入了现在在用的这台M1 MBP,不得不说相较于以前使用的Y7000黑果,生产力和工作效率有了极大的提升,而且使用场景从以前的带电源游戏本变成了轻薄本,便携性也大大提高了,同时M1的续航真不是吹的,可以在外几乎工作一整天都不用🔋,总之这次的M1 Mac对我真的帮助不少。
锻炼计划
买了 ⌚️之后运动频率确实比以前提高了不少,但是还是希望能继续加油,保持每日晚跑好习惯
目标
- 早睡早起(23:00 - 7:00)
- 有时间中午/下午去健身房锻炼(华科健身房这学期到期了,应该不用去续了,反正目前实习的地方有健身房😊)
- 一周3-5次晚跑🏃(22:00)
- 睡前运动
总结
总的来说,这3个月的学习进度是差强人意的
希望这次暑假实习期能够继续提升自我,遇见更好的自己