This app is Team 11's response to IN2000 - Software Engineering with Project Work for the Spring 2025 term. We picked Case 2: Map for fishing boats, but we decided, with the permission of the University and MET, to focus rather on kayakers and recreational boaters.
The app assists in planning safe and informed trips by displaying data from several APIs about weather and boating conditions in the user's desired area in Norway.
Important libraries:
- Jetpack Compose : Building reactive UI. Well integrated into modern Android Development, and has enough documentation for us mere students to implement it effectively.
- Mapbox : Map-display, along with point-annotations for each data-point.
- Geonorge : Displaying depths along the shore.
- Ktor : For making HTTP requests to external APIs (used in all our DataSource classes).
- Proto DataStore : Storing user-preferences.
- JUNIT4 : Unit testing of API-data handling.
- Mockito : Mocking dependencies in testing
Icons and Graphic Assets: The app uses a mix of Material3 icons and custom icons
- Icons neutral, ocean waves, arrow, information and danger-sign are sourced from Material3
- Boat icons are provided via AIS/Kystverket.
- Weather hazard icons are provided by Meterologisk Institutt
- Kayak icon is externally sourced through uxwing
- Icons smile, frown, wind, current, temperature and rain are sourced from Simple Design System by Figma
We aim to comply with licensing requirements for all third-party assets used in the project.
Prerequisites:
- You have successfully downloaded the project folder.
- Configure API Keys (IMPORTANT):
- Copy
local.properties.exampletolocal.propertiesin the root directory - Fill in your actual API credentials:
- Mapbox Token: Get from Mapbox Account
- Barentswatch Credentials: Get from Barentswatch
- The
local.propertiesfile is gitignored and will not be committed
- Copy
Steps:
- Open Android Studio.
- Select "Open an existing project", and choose the root folder of the project.
- Allow Gradle sync and indexing to complete.
- If using an emulator: Launch the emulator without running an application
- Click on the options button (three dots) on the emulator
- Choose the location tab
- Set a location point in Norway and click save point
- Click set location
- Press Run (green play button) to launch the app on:
- A physical Android device (with developer mode), or
- An emulator running API level 24 or higher.
The app requires:
- Internet connection to fetch data from external APIs.
- Minimum Android API level 24 (targeting 34).
The app requests the devices location. If location access is denied, the app defaults to Oslofjord. If the user is located outside of Norway and its coast, the application will not work as intended. If the device is offline, API calls are paused and an error message is shown. For the application to launch properly the first time, the emulator being used must have been launched on its own at least once.