新年,新你 Portfolio Challenge:另一面

发布: (2026年1月18日 GMT+8 08:20)
5 min read
原文: Dev.to

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)作为配对编程助手。它在以下方面特别有帮助:

  1. 为整体架构进行头脑风暴
  2. 调试在早期 Cloud Run 部署中反复出错的 Nginx 配置

有了 AI 来帮助分析失败原因,迭代速度大幅提升。

Secret Konami Code

我忍不住加入了一个秘密。输入经典的 Konami Code:

↑ ↑ ↓ ↓ ← → ← → B A

即可解锁隐藏的 Matrix 风格开发者覆盖层。它授予系统根访问权限,并允许你下载我的简历的原始 JSON 解析版本(PDF)。这是一个小彩蛋,旨在奖励好奇心——尤其是来自其他开发者的好奇心。

在按下按钮的瞬间,整个应用会发生变异:

  • 颜色系统
  • 排版
  • 布局物理
  • 交互行为

所有这些都会瞬间改变,且不会掉帧。在 Flutter Web 上优化如此全局的变异是项目中最困难的技术挑战之一——但看到它流畅运行,一切都值得。

Invitation

这个项目把我推到了舒适区之外——不仅在技术上,也在创意上。如果你相信网页可以超越页面和表单,我非常期待你踏入 The Other Side

Back to Blog

相关文章

阅读更多 »

SSR vs SPA | 哪个该使用?

本文的目标是指导您在为您的应用选择最佳技术时的决策。当我开始职业生涯时,我使用 JSF JavaServer Faces,一个 MPA…