I’ve been trying to decide what to focus on as a second-year CS student building out my portfolio. I want something I can use for web apps but also potentially mobile. Here’s what I’ve actually learned after spending a few weeks looking at all three seriously.
Angular
Angular is Google’s full framework for building single-page web applications. It uses TypeScript as its primary language, which is JavaScript with static typing. Angular is known for:
- Two-way data binding – changes in the UI automatically update the model and vice versa. Good for complex forms and data-heavy interfaces.
- Dependency injection – a design pattern that Angular enforces across the whole framework. Makes code more testable but adds a learning curve.
- Strong opinions – Angular tells you how to structure your project. That’s good when you’re working in a large team with consistency requirements. It’s constraining if you want flexibility.
- Primary target: large-scale enterprise web apps and SPAs
If I’m honest, Angular feels heavier than it needs to be for most of what students or indie developers want to build. It’s not wrong, it’s just designed for a scale that you probably don’t need to worry about in your first few projects.
React
React is technically a library, not a full framework – though the ecosystem around it (React Router, Redux, Next.js, etc.) adds up to something framework-like. React’s core is focused on UI component building with a declarative approach. Key characteristics:
- Component-based architecture. Everything is a composable piece.
- Virtual DOM for efficient re-rendering
- Massive ecosystem and community – the most widely deployed frontend technology in the industry
- Very flexible about how you structure things – which is both a strength and a rope to hang yourself with early on
- Used extensively in web development jobs; employers know it, jobs list it
React is the pragmatic choice for someone trying to build a portfolio that gets noticed by employers. It’s the industry-standard option and the breadth of tutorials, resources, and community support is unmatched.
Flutter
Flutter is Google’s framework for building apps that target mobile (iOS and Android), web, and desktop from a single codebase. Key differences:
- Uses Dart, not JavaScript. Dart is fast and easy to pick up but a smaller ecosystem.
- Cross-platform mobile development is Flutter’s main strength – real native performance on mobile from a single codebase
- Pre-built widget library (Material and Cupertino) that gives apps a polished look quickly
- Reactive UI system – the UI rebuilds around state changes automatically
- Growing fast in mobile dev but web support is still maturing
If mobile is your priority – if you want to ship an app on the App Store and Play Store – Flutter is honestly a compelling choice. The developer experience is smooth, hot reload is fast, and you’re not maintaining two separate codebases.
My take:
If you’re picking one right now for portfolio purposes: React has the best employer recognition for web work. If you specifically care about mobile, Flutter is worth the Dart learning cost. Angular is the right call when you’re joining a large enterprise team that already uses it – not as a starting point.
Good video overview covering Angular and Flutter specifically if you want to see the two Google frameworks compared directly: