Case study · 2025

Smart Fishing

Smart Fishing logo

Anglers plan, fish and log a trip using several different apps and sources.

Smart Fishing brings location, weather and catch history into one app.

See it in use
My role
UX/UI Design
User Research
Prototyping
User Testing
AI-built app
Team
Individual project
Process
  1. Concept
  2. Research
  3. Prototype
  4. Testing
  5. Iteration
  6. Implementation
Status
Functional Flutter app
Smart Fishing map screen

The working product — Smart Fishing in use.

02The challenge

Planning a trip means checking many sources

Planning a fishing trip often involves checking different sources for fishing locations, weather forecasts, wind, water conditions, and regulations. Smart Fishing aims to bring this information together, helping anglers across Sweden make more informed decisions about where and when to fish.

03Journey 1

Where and when should I fish?

Smart Fishing displays predefined fishing spots on an interactive map. Each location is associated with a fish species and rated according to environmental conditions, helping anglers identify where conditions may be favorable for fishing.

The vision covers all of Sweden. The current version includes predefined spots around Gothenburg and its archipelago.

Where to fish · How the map rating works
Predefined fishing spot
Weather & marine forecast data
Species-specific scoring rules
↓
Result
Fishing conditions
ExcellentGoodFair

Each fishing spot is evaluated using water temperature, wind, sea level, and wave conditions. The app applies different scoring rules depending on the fish species. Locations receive an Excellent, Good, or Fair rating.

The app doesn’t track fish. It shows fishing spots and rates the conditions, but a good rating doesn’t guarantee a catch.

How the score is calculated
Predefined spot→ Forecast conditions→ Species-specific rules→ Fishing conditions

Each spot is tied to one species. Its score uses Open-Meteo weather and marine forecast data: wind speed and direction, water temperature, wave height, and sea level. The highest temperature scores fall within these ranges:

Sea trout
6–14°C
Garfish (needlefish)
12–18°C
Mackerel
11–19°C

Wind: for sea trout and garfish, wind direction is scored against a predefined shore direction; for mackerel, wind speed is scored instead.

Sea level: higher levels score better; lower levels reduce the score.

Strong wind and waves: waves of 1.8 m or more, or wind of 43.2 km/h or more, set the score to zero.

80–100
Excellent
60–79
Good
40–59
Fair
Below 40
Pin hidden

Scores are rule-based, not percentages: a score of 80 does not mean an 80% chance of catching fish.

When to fish · The Forecast tab

The Forecast tab helps anglers decide when to fish by evaluating weather and marine conditions. It also examines the next 24 hours to recommend a three-hour fishing window with more favorable wind, wave, and rain conditions, when suitable conditions and enough forecast data are available.

The Forecast tab uses its own rules, separate from the map, so the two ratings can sometimes differ.

What it checks
  • Thunderstorms
  • Wind speed
  • Wind gusts
  • Waves
  • Low water levels
Limitations & next steps
  1. The current recommendation system uses predefined fishing spots and rule-based environmental scores. It does not detect fish or learn from catch records.

  2. Map locations currently share environmental data retrieved for the map’s centre rather than receiving individual forecasts. The scoring rules also need further refinement and validation.

  3. Future development could expand fishing locations across Sweden, improve location-specific recommendations, and incorporate additional environmental and seasonal factors.

04Journey 2 — Record a catch

More than just a photo

User testing showed that anglers wanted to save more details about their catches. I redesigned the record feature so users can add and share information such as fish species, length, weight, bait or lure, location, and photos.

Before
Catch record before — generic photo post
After
Catch record after — species, weight, length, gear detail
05Learn

Knowing how to fish, not just where

Beyond location and conditions, Smart Fishing includes a Learn section covering topics such as weather and water temperature, tides, rods and reels, lures, live bait, knots, float fishing, fishing ethics, and fish species — so anglers can build fishing knowledge directly in the app.

Choose a topic
Learn about fishing main page with topic tiles
Learn a practical skill
Knots topic showing illustrated fishing knots
Explore fish species
Fish species reference list
06Testing & findings

What users showed us

01 — Unclear map signals
Before
Map markers before — unclear fish icons and arrows
After
Map markers after — clear fishing conditions badge

Users did not understand what 1, 2, or 3 fish markers meant.

Problem: Recommendation strength was unclear.

Response: Redesigned the markers and supporting information to communicate recommendations more clearly.

Implemented — needs further user testing
02 — Catch records lacked detail
Before
Catch record form before — minimal fields, weight, length, lure
After
Catch record form after — richer caption and detail

Users wanted to share more information about their catches.

Problem: The original record was too limited.

Response: Added species, length, weight, bait/lure, location, photos, and catch details.

Implemented — needs further user testing
03 — Forecast lacked fishing guidance
Before
Forecast before — plain daily weather list
After
Forecast after — fishing conditions summary with weather and marine data

A standard weather forecast did not clearly tell users whether it was a good fishing day or when to fish.

Problem: Users had to interpret weather data themselves.

Response: Redesigned the forecast around fishing suitability and suitable fishing times.

Implemented — needs further user testing
04 — More water information
New
Water level card in forecast
Water level trend chart
Best expected fishing window and next hours

More detailed water conditions were needed.

Problem: The experience lacked useful marine context.

Response: Added water level and trends, wave height, water temperature, and other marine conditions.

Implemented — needs further user testing
07Product

From prototype to product

After testing and redesigning the Figma prototype, I moved the concept into a functional mobile app to explore the experience with real data and interactions.

I used Flutter/Dart for the application and Codex as an AI-assisted development tool, while maintaining ownership of the UX, interaction design, requirements, review, and refinement. Methods throughout: design iteration, usability testing, and user interviews.

Completed
Figma prototype
User testing
Design iteration
Implementation
Review & refinement
Beta
Figma prototype
Beta
Branding
Smart Fishing app icon
Smart Fishing logo, dark on light
Smart Fishing logo, white on dark

I designed the Smart Fishing logo and used it as the basis for the app icon.

Stack
  • Flutter
  • Dart
  • Firebase
  • APIs
  • AI-assisted development with Codex
Data sources
  • Open-Meteo weather forecast
  • Open-Meteo marine forecast
  • OpenStreetMap
  • OpenSeaMap
  • Device GPS and geocoding
Code
Private repositoryCode available on request
08Current status & next steps

A working app, not yet validated

Current status

Smart Fishing is now a functional mobile app, but the redesigned experience still needs further validation.

Long-term goal

Prepare the app for potential publication on the App Store and Google Play.

Next steps
User test· Next
Analyze
Iterate
Validate
Refine
Release
09Reflection

What I learned

Smart Fishing taught me how to take an idea past Figma and into a real product, through testing, iteration, and building it. I learned Material Design 3 and worked with AI-assisted development in Codex to turn my UX and interaction design decisions into a working app.

It also taught me a lot about how UX, real data, APIs, and technical limits all affect each other in a real product.