新年,新你 Portfolio Challenge:另一面
Source: Dev.to
Introduction
这是为 Google AI 主办的 新年·新你作品集挑战 所提交的作品。
我叫 Robert Ishoka,我想打造的东西不只是一个网站,而更像是一个空间。我是一名拥有四年经验的移动开发者,专注于流畅的交互和用心的用户体验。
挑战恰好在《怪奇物语》完结后出现,让我思考平行世界、现实的隐藏层面,以及看似微不足道的力量如何彻底改造空间。我希望我的作品集能够捕捉这种感觉——一个可以根据你的交互方式而变化、转变的作品。
Concept
我不想用传统的方式呈现信息。与其让用户滚动浏览技能列表,我想让他们在一个空间中移动。这要求我重新思考作品集的每一个部分:布局、滚动物理、颜色、排版和过渡。每个元素都必须有生命感,几乎像是拥有自己规则的世界,这样从 Reality(现实)切换到 The Other Side(另一侧)时,感觉像是穿过传送门,而不是单纯加载新页面。
这个项目成为了用代码进行世界构建的实验。受《怪奇物语》中平行世界的启发,我使用了:
- 意想不到的颜色变化
- 微妙的运动物理
- 隐藏的交互彩蛋
- 动态过渡,使环境感觉响应且充满活力
从滚动物理到秘密的 “Konami” 开发者模式,每一个选择都是为了打造一个可以探索的空间,而不仅仅是阅读信息。
Live site: THE OTHER SIDE (if the embed above doesn’t load)
Technical Details
- Framework: Flutter (Web)
- State Management:
flutter_riverpod(v2+) - Deployment: Google Cloud Run (Docker + Nginx)
The Struggle
Flutter Web 并不是传统的网页框架,这一点你会立刻感受到。最大的挑战不是功能,而是手感。
- 滚动、动量以及维度之间的过渡需要显得沉重、刻意且具备物理感。
- 我进行了多轮优化,并在深夜里反复调试物理曲线和渲染时机。我拒绝在感觉像是穿过传送门之前发布作品,只是单纯在页面之间切换是不够的。
我使用 Antigravity(Google 的高级代理 AI)作为配对编程助手。它在以下方面特别有帮助:
- 为整体架构进行头脑风暴
- 调试在早期 Cloud Run 部署中反复出错的 Nginx 配置
有了 AI 来帮助分析失败原因,迭代速度大幅提升。
Secret Konami Code
我忍不住加入了一个秘密。输入经典的 Konami Code:
↑ ↑ ↓ ↓ ← → ← → B A
即可解锁隐藏的 Matrix 风格开发者覆盖层。它授予系统根访问权限,并允许你下载我的简历的原始 JSON 解析版本(PDF)。这是一个小彩蛋,旨在奖励好奇心——尤其是来自其他开发者的好奇心。
在按下按钮的瞬间,整个应用会发生变异:
- 颜色系统
- 排版
- 布局物理
- 交互行为
所有这些都会瞬间改变,且不会掉帧。在 Flutter Web 上优化如此全局的变异是项目中最困难的技术挑战之一——但看到它流畅运行,一切都值得。
Invitation
这个项目把我推到了舒适区之外——不仅在技术上,也在创意上。如果你相信网页可以超越页面和表单,我非常期待你踏入 The Other Side。