Tisch Fishing Bistro — A Freshwater Fishing App (Android & iOS)
Tisch Fishing Bistro is a mobile app for freshwater fishing that I designed and built on my own, and it answers the question every angler asks before heading out: is today worth it, and what should I be targeting. Instead of leaving the user to piece together a weather forecast, solunar tables, river level readings and their own experience of how each species behaves, the app pulls all of those sources together and turns them into a single clear fishing score for every hour of the next seven days. It runs on Android and iOS, in fourteen languages, with no sign-up, no ads and no subscription.
The biggest addition to the app is the river level module for Croatia. Bistro pulls real measurements from the public network of gauging stations operated by Hrvatske vode, automatically finds the stations nearest the selected location and shows the river and station name, the current level in centimetres, discharge in cubic metres per second where available, the time of the last reading, the distance from the user and any published flood defence status. A single number rarely says enough, so the app also shows whether the level is rising, falling or holding steady, and a fourteen-day chart joins the past seven days of measurements to a forecast for the next seven. Stale and inactive stations are clearly flagged and never presented as a current reading, and outside Croatia the app shows a modelled discharge trend where one is available. A condensed river level card also sits on the main forecast screen, so the nearest station and the direction of change are visible at a glance.
At the core of the app is a seven-day fishing forecast scored hour by hour. The algorithm weighs wind, air pressure and how it is changing, temperature, cloud cover, precipitation and the moon phase, and from that works out how favourable conditions are and which hour of the day is the best one to cast. Alongside the score sit a detailed weather forecast with humidity and rainfall, and a full solunar overview — sunrise and sunset, moonrise and moonset, moon phases, and the major and minor periods of increased fish activity.
The smart fishing advisor ranks freshwater species against the current conditions and the time of year, giving each one a likelihood of biting along with a recommended bait or lure. Opening any fish card reveals a description of the species, its habitat, behaviour, diet and practical tips for catching it. The database covers twenty-one European freshwater species, among them carp, pike, perch, zander, catfish, trout and grayling, and the entire content is translated into all fourteen languages of the app. The advisor deliberately does not claim to reveal where the fish are — it is built as a tool for anglers who already know their own waters.
The app also helps with responsible, lawful fishing. The closed season module lists protected periods for thirteen countries, with the country detected automatically from the user's location and selectable by hand in the settings. On the map the user marks and saves their fishing spots, while the catch log records every catch with a photo, location, date, weight, length and the conditions on the water at that moment, gradually building a personal archive that makes it obvious what worked and when.
The My Locations module means the user is no longer tied to GPS. A place can be searched by name or picked straight from the map, saved as a favourite, and then the whole app switches to that spot with a single tap — the forecast, solunar data, advisor and river level all recalculate for the new location immediately. That matters most to anglers who rotate between a handful of regular spots and want to compare them before setting out.
I built Bistro as a native app for both mobile platforms. The Android version is written in Kotlin using Jetpack Compose and Material 3, while the iOS version was developed separately for Apple devices on top of a shared data model of fish, baits and fishing rules, so users get identical content and equally good recommendations on either system. I ran the entire development cycle — architecture and database, integration of external weather and hydrological services, the fishing score algorithm, the user interface, localisation into fourteen languages, and the preparation of all store assets and the releases on Google Play and the Apple App Store.
The whole app is designed to keep working where there is no signal. Once fetched, data stays cached on the device and remains available offline, no registration is required to use the app, and catch photos and records never leave the user's phone. There are no ads and no subscription.
Technologies: Kotlin, Jetpack Compose, Material 3, MVVM architecture, Hilt (dependency injection), Room (local database and offline cache), Retrofit and OkHttp (networking), Navigation Compose, Google Maps Compose, CameraX (catch photos), Coil, DataStore, WorkManager (background tasks and widget refresh), Glance (widget), commons-suncalc (solunar and lunar calculations), Firebase Firestore and App Check, Google Play Billing, Open-Meteo, and gauging station data from Hrvatske vode. The iOS version was developed as a separate native app for the Apple ecosystem on a shared data model.
Download on the App Store (iOS) Get it on Google Play (Android)