Overview
An internship project at Fidelity Investments: rebuilding the mobile app's interface in SwiftUI. The app covers markets, portfolio value, and financial planning, screens millions of customers rely on daily. (The code is private to the company, so there's no public repository for this one.)
The Problem
The previous UI had grown clunky, it didn't look or behave like a modern iOS app, and the interface patterns fought the platform instead of working with it. The goal was to make the app fit naturally into the iOS ecosystem: native navigation, typography, and interactions that feel immediately familiar to iPhone users.
My Role
Software engineering intern on the iOS team. I redesigned and rebuilt the interface myself, end to end, using Swift and SwiftUI.
Development Process
I started by auditing the existing screens against Apple's Human Interface Guidelines to catalogue where the old UI fought the platform. Then I rebuilt the interface in SwiftUI, replacing custom one-off controls with native components, adopting standard iOS navigation patterns, and using SwiftUI's declarative layout to keep screens consistent, iterating with feedback from the team along the way.
Key Features
- Portfolio view with account value, daily change, and an interactive performance chart
- Markets overview with live index summaries (S&P 500, DOW, NASDAQ)
- Planning screens for net worth, savings goals, and retirement tracking
- Native iOS look and feel: standard navigation, system typography, and platform-consistent interactions
Challenges & Solutions
Rebuilding a large, established app's interface without losing functionality customers depend on.
Worked screen by screen, treating the existing app as the functional spec: every feature was preserved while the presentation layer was rebuilt cleanly in SwiftUI.
Making a dense financial product feel simple and native on a phone.
Leaned on iOS conventions instead of custom chrome, standard lists, headers, and charts, so complex information reads clearly and the app behaves the way iPhone users already expect.
