Style blink-182 x Pleasures Merch: How to Buy on Complex The Los Angeles streetwear brand is celebrating blink-182 Day. Kris Seavers · 2 days ago
import SwiftUI
// PortfolioStage.swift — this site, rendered in Swift
@main struct PortfolioApp: App {
var body: some Scene {
WindowGroup { PortfolioStage() }
}
}
struct PortfolioStage: View {
@State private var phase: StagePhase = .hello
@State private var unlock: CGFloat = 0
@Namespace private var zoom
var body: some View {
ZStack {
CodeRain(source: .thisFile) // you are reading it
iPhone17Pro(finish: .silver) {
switch phase {
case .boot:
AppleLogo().transition(.opacity)
case .hello:
HelloSheet(progress: unlock)
case .home:
HomeScreen(apps: Project.allCases)
case .app(let project):
AppWindow(project)
.matchedGeometryEffect(id: project.icon, in: zoom)
}
}
.rotation3DEffect(
.degrees(phase == .boot ? -360 : 0),
axis: (x: 0, y: 1, z: 0),
perspective: 0.6
)
}
.onScrollPhase { p in
phase = choreography(at: p)
unlock = easeInOut(p / 0.08)
}
}
}
struct HelloSheet: View {
var progress: CGFloat
var body: some View {
AppleHello() // the original lettering
.trim(from: 0, to: progress)
.stroke(.white, style: StrokeStyle(lineWidth: 60, lineCap: .round))
.background(WallpaperGradient())
}
}
struct HomeScreen: View {
let apps: [Project]
var body: some View {
VStack(spacing: 15) {
ProfileWidget(
name: "Fynn Rohrmann",
role: "Senior iOS Engineer",
stack: [.swift, .uiKit, .swiftUI]
)
LazyVGrid(columns: .adaptive(4)) {
ForEach(apps) { app in
AppIcon(app)
.onTapGesture { open(app) }
}
}
Dock(apps: [.contacts, .messages, .safari, .mail])
}
}
func open(_ app: Project) {
withAnimation(.spring(duration: 0.68, bounce: 0.12)) {
selection = app // window grows out of its icon
}
}
}
enum Station: CaseIterable {
case scout // Founding iOS Engineer · 2020
case stockx // Vision Pro with Apple · 2021
case complex // Senior iOS Engineer · 2024
}
struct CareerCalendar: View {
let years = 2019...2026
var body: some View {
ScrollView {
ForEach(years, id: \.self) { year in
YearGrid(year)
.overlay(StationMarkers(in: year))
}
}
.scrollPosition(driven: .byPageScroll)
}
}
actor InventorySync {
private var items: [Item] = []
func sync() async throws {
let fresh = try await api.fetchInventory()
items = merge(items, fresh)
}
}
final class DropViewModel: ObservableObject {
@Published var drops: [Drop] = []
func stream() async {
for await drop in api.liveDrops() {
withAnimation { drops.insert(drop, at: 0) }
}
}
}import SwiftUI
// PortfolioStage.swift — this site, rendered in Swift
@main struct PortfolioApp: App {
var body: some Scene {
WindowGroup { PortfolioStage() }
}
}
struct PortfolioStage: View {
@State private var phase: StagePhase = .hello
@State private var unlock: CGFloat = 0
@Namespace private var zoom
var body: some View {
ZStack {
CodeRain(source: .thisFile) // you are reading it
iPhone17Pro(finish: .silver) {
switch phase {
case .boot:
AppleLogo().transition(.opacity)
case .hello:
HelloSheet(progress: unlock)
case .home:
HomeScreen(apps: Project.allCases)
case .app(let project):
AppWindow(project)
.matchedGeometryEffect(id: project.icon, in: zoom)
}
}
.rotation3DEffect(
.degrees(phase == .boot ? -360 : 0),
axis: (x: 0, y: 1, z: 0),
perspective: 0.6
)
}
.onScrollPhase { p in
phase = choreography(at: p)
unlock = easeInOut(p / 0.08)
}
}
}
struct HelloSheet: View {
var progress: CGFloat
var body: some View {
AppleHello() // the original lettering
.trim(from: 0, to: progress)
.stroke(.white, style: StrokeStyle(lineWidth: 60, lineCap: .round))
.background(WallpaperGradient())
}
}
struct HomeScreen: View {
let apps: [Project]
var body: some View {
VStack(spacing: 15) {
ProfileWidget(
name: "Fynn Rohrmann",
role: "Senior iOS Engineer",
stack: [.swift, .uiKit, .swiftUI]
)
LazyVGrid(columns: .adaptive(4)) {
ForEach(apps) { app in
AppIcon(app)
.onTapGesture { open(app) }
}
}
Dock(apps: [.contacts, .messages, .safari, .mail])
}
}
func open(_ app: Project) {
withAnimation(.spring(duration: 0.68, bounce: 0.12)) {
selection = app // window grows out of its icon
}
}
}
enum Station: CaseIterable {
case scout // Founding iOS Engineer · 2020
case stockx // Vision Pro with Apple · 2021
case complex // Senior iOS Engineer · 2024
}
struct CareerCalendar: View {
let years = 2019...2026
var body: some View {
ScrollView {
ForEach(years, id: \.self) { year in
YearGrid(year)
.overlay(StationMarkers(in: year))
}
}
.scrollPosition(driven: .byPageScroll)
}
}
actor InventorySync {
private var items: [Item] = []
func sync() async throws {
let fresh = try await api.fetchInventory()
items = merge(items, fresh)
}
}
final class DropViewModel: ObservableObject {
@Published var drops: [Drop] = []
func stream() async {
for await drop in api.liveDrops() {
withAnimation { drops.insert(drop, at: 0) }
}
}
}import SwiftUI
// PortfolioStage.swift — this site, rendered in Swift
@main struct PortfolioApp: App {
var body: some Scene {
WindowGroup { PortfolioStage() }
}
}
struct PortfolioStage: View {
@State private var phase: StagePhase = .hello
@State private var unlock: CGFloat = 0
@Namespace private var zoom
var body: some View {
ZStack {
CodeRain(source: .thisFile) // you are reading it
iPhone17Pro(finish: .silver) {
switch phase {
case .boot:
AppleLogo().transition(.opacity)
case .hello:
HelloSheet(progress: unlock)
case .home:
HomeScreen(apps: Project.allCases)
case .app(let project):
AppWindow(project)
.matchedGeometryEffect(id: project.icon, in: zoom)
}
}
.rotation3DEffect(
.degrees(phase == .boot ? -360 : 0),
axis: (x: 0, y: 1, z: 0),
perspective: 0.6
)
}
.onScrollPhase { p in
phase = choreography(at: p)
unlock = easeInOut(p / 0.08)
}
}
}
struct HelloSheet: View {
var progress: CGFloat
var body: some View {
AppleHello() // the original lettering
.trim(from: 0, to: progress)
.stroke(.white, style: StrokeStyle(lineWidth: 60, lineCap: .round))
.background(WallpaperGradient())
}
}
struct HomeScreen: View {
let apps: [Project]
var body: some View {
VStack(spacing: 15) {
ProfileWidget(
name: "Fynn Rohrmann",
role: "Senior iOS Engineer",
stack: [.swift, .uiKit, .swiftUI]
)
LazyVGrid(columns: .adaptive(4)) {
ForEach(apps) { app in
AppIcon(app)
.onTapGesture { open(app) }
}
}
Dock(apps: [.contacts, .messages, .safari, .mail])
}
}
func open(_ app: Project) {
withAnimation(.spring(duration: 0.68, bounce: 0.12)) {
selection = app // window grows out of its icon
}
}
}
enum Station: CaseIterable {
case scout // Founding iOS Engineer · 2020
case stockx // Vision Pro with Apple · 2021
case complex // Senior iOS Engineer · 2024
}
struct CareerCalendar: View {
let years = 2019...2026
var body: some View {
ScrollView {
ForEach(years, id: \.self) { year in
YearGrid(year)
.overlay(StationMarkers(in: year))
}
}
.scrollPosition(driven: .byPageScroll)
}
}
actor InventorySync {
private var items: [Item] = []
func sync() async throws {
let fresh = try await api.fetchInventory()
items = merge(items, fresh)
}
}
final class DropViewModel: ObservableObject {
@Published var drops: [Drop] = []
func stream() async {
for await drop in api.liveDrops() {
withAnimation { drops.insert(drop, at: 0) }
}
}
}import SwiftUI
// PortfolioStage.swift — this site, rendered in Swift
@main struct PortfolioApp: App {
var body: some Scene {
WindowGroup { PortfolioStage() }
}
}
struct PortfolioStage: View {
@State private var phase: StagePhase = .hello
@State private var unlock: CGFloat = 0
@Namespace private var zoom
var body: some View {
ZStack {
CodeRain(source: .thisFile) // you are reading it
iPhone17Pro(finish: .silver) {
switch phase {
case .boot:
AppleLogo().transition(.opacity)
case .hello:
HelloSheet(progress: unlock)
case .home:
HomeScreen(apps: Project.allCases)
case .app(let project):
AppWindow(project)
.matchedGeometryEffect(id: project.icon, in: zoom)
}
}
.rotation3DEffect(
.degrees(phase == .boot ? -360 : 0),
axis: (x: 0, y: 1, z: 0),
perspective: 0.6
)
}
.onScrollPhase { p in
phase = choreography(at: p)
unlock = easeInOut(p / 0.08)
}
}
}
struct HelloSheet: View {
var progress: CGFloat
var body: some View {
AppleHello() // the original lettering
.trim(from: 0, to: progress)
.stroke(.white, style: StrokeStyle(lineWidth: 60, lineCap: .round))
.background(WallpaperGradient())
}
}
struct HomeScreen: View {
let apps: [Project]
var body: some View {
VStack(spacing: 15) {
ProfileWidget(
name: "Fynn Rohrmann",
role: "Senior iOS Engineer",
stack: [.swift, .uiKit, .swiftUI]
)
LazyVGrid(columns: .adaptive(4)) {
ForEach(apps) { app in
AppIcon(app)
.onTapGesture { open(app) }
}
}
Dock(apps: [.contacts, .messages, .safari, .mail])
}
}
func open(_ app: Project) {
withAnimation(.spring(duration: 0.68, bounce: 0.12)) {
selection = app // window grows out of its icon
}
}
}
enum Station: CaseIterable {
case scout // Founding iOS Engineer · 2020
case stockx // Vision Pro with Apple · 2021
case complex // Senior iOS Engineer · 2024
}
struct CareerCalendar: View {
let years = 2019...2026
var body: some View {
ScrollView {
ForEach(years, id: \.self) { year in
YearGrid(year)
.overlay(StationMarkers(in: year))
}
}
.scrollPosition(driven: .byPageScroll)
}
}
actor InventorySync {
private var items: [Item] = []
func sync() async throws {
let fresh = try await api.fetchInventory()
items = merge(items, fresh)
}
}
final class DropViewModel: ObservableObject {
@Published var drops: [Drop] = []
func stream() async {
for await drop in api.liveDrops() {
withAnimation { drops.insert(drop, at: 0) }
}
}
}import SwiftUI
// PortfolioStage.swift — this site, rendered in Swift
@main struct PortfolioApp: App {
var body: some Scene {
WindowGroup { PortfolioStage() }
}
}
struct PortfolioStage: View {
@State private var phase: StagePhase = .hello
@State private var unlock: CGFloat = 0
@Namespace private var zoom
var body: some View {
ZStack {
CodeRain(source: .thisFile) // you are reading it
iPhone17Pro(finish: .silver) {
switch phase {
case .boot:
AppleLogo().transition(.opacity)
case .hello:
HelloSheet(progress: unlock)
case .home:
HomeScreen(apps: Project.allCases)
case .app(let project):
AppWindow(project)
.matchedGeometryEffect(id: project.icon, in: zoom)
}
}
.rotation3DEffect(
.degrees(phase == .boot ? -360 : 0),
axis: (x: 0, y: 1, z: 0),
perspective: 0.6
)
}
.onScrollPhase { p in
phase = choreography(at: p)
unlock = easeInOut(p / 0.08)
}
}
}
struct HelloSheet: View {
var progress: CGFloat
var body: some View {
AppleHello() // the original lettering
.trim(from: 0, to: progress)
.stroke(.white, style: StrokeStyle(lineWidth: 60, lineCap: .round))
.background(WallpaperGradient())
}
}
struct HomeScreen: View {
let apps: [Project]
var body: some View {
VStack(spacing: 15) {
ProfileWidget(
name: "Fynn Rohrmann",
role: "Senior iOS Engineer",
stack: [.swift, .uiKit, .swiftUI]
)
LazyVGrid(columns: .adaptive(4)) {
ForEach(apps) { app in
AppIcon(app)
.onTapGesture { open(app) }
}
}
Dock(apps: [.contacts, .messages, .safari, .mail])
}
}
func open(_ app: Project) {
withAnimation(.spring(duration: 0.68, bounce: 0.12)) {
selection = app // window grows out of its icon
}
}
}
enum Station: CaseIterable {
case scout // Founding iOS Engineer · 2020
case stockx // Vision Pro with Apple · 2021
case complex // Senior iOS Engineer · 2024
}
struct CareerCalendar: View {
let years = 2019...2026
var body: some View {
ScrollView {
ForEach(years, id: \.self) { year in
YearGrid(year)
.overlay(StationMarkers(in: year))
}
}
.scrollPosition(driven: .byPageScroll)
}
}
actor InventorySync {
private var items: [Item] = []
func sync() async throws {
let fresh = try await api.fetchInventory()
items = merge(items, fresh)
}
}
final class DropViewModel: ObservableObject {
@Published var drops: [Drop] = []
func stream() async {
for await drop in api.liveDrops() {
withAnimation { drops.insert(drop, at: 0) }
}
}
}import SwiftUI
// PortfolioStage.swift — this site, rendered in Swift
@main struct PortfolioApp: App {
var body: some Scene {
WindowGroup { PortfolioStage() }
}
}
struct PortfolioStage: View {
@State private var phase: StagePhase = .hello
@State private var unlock: CGFloat = 0
@Namespace private var zoom
var body: some View {
ZStack {
CodeRain(source: .thisFile) // you are reading it
iPhone17Pro(finish: .silver) {
switch phase {
case .boot:
AppleLogo().transition(.opacity)
case .hello:
HelloSheet(progress: unlock)
case .home:
HomeScreen(apps: Project.allCases)
case .app(let project):
AppWindow(project)
.matchedGeometryEffect(id: project.icon, in: zoom)
}
}
.rotation3DEffect(
.degrees(phase == .boot ? -360 : 0),
axis: (x: 0, y: 1, z: 0),
perspective: 0.6
)
}
.onScrollPhase { p in
phase = choreography(at: p)
unlock = easeInOut(p / 0.08)
}
}
}
struct HelloSheet: View {
var progress: CGFloat
var body: some View {
AppleHello() // the original lettering
.trim(from: 0, to: progress)
.stroke(.white, style: StrokeStyle(lineWidth: 60, lineCap: .round))
.background(WallpaperGradient())
}
}
struct HomeScreen: View {
let apps: [Project]
var body: some View {
VStack(spacing: 15) {
ProfileWidget(
name: "Fynn Rohrmann",
role: "Senior iOS Engineer",
stack: [.swift, .uiKit, .swiftUI]
)
LazyVGrid(columns: .adaptive(4)) {
ForEach(apps) { app in
AppIcon(app)
.onTapGesture { open(app) }
}
}
Dock(apps: [.contacts, .messages, .safari, .mail])
}
}
func open(_ app: Project) {
withAnimation(.spring(duration: 0.68, bounce: 0.12)) {
selection = app // window grows out of its icon
}
}
}
enum Station: CaseIterable {
case scout // Founding iOS Engineer · 2020
case stockx // Vision Pro with Apple · 2021
case complex // Senior iOS Engineer · 2024
}
struct CareerCalendar: View {
let years = 2019...2026
var body: some View {
ScrollView {
ForEach(years, id: \.self) { year in
YearGrid(year)
.overlay(StationMarkers(in: year))
}
}
.scrollPosition(driven: .byPageScroll)
}
}
actor InventorySync {
private var items: [Item] = []
func sync() async throws {
let fresh = try await api.fetchInventory()
items = merge(items, fresh)
}
}
final class DropViewModel: ObservableObject {
@Published var drops: [Drop] = []
func stream() async {
for await drop in api.liveDrops() {
withAnimation { drops.insert(drop, at: 0) }
}
}
}
Apps anklicken — oder scrollen zum Entdecken