{"id":23049970,"url":"https://github.com/nojronatron/mobwxapp","last_synced_at":"2026-02-20T01:02:21.642Z","repository":{"id":211143158,"uuid":"725383971","full_name":"nojronatron/MobWxApp","owner":"nojronatron","description":"Mobile Weather App. Leverages NOAA/NWS API for data and .NET MAUI for multi-platform compatibility. Currently targeting Windows and Android.","archived":false,"fork":false,"pushed_at":"2025-02-13T21:53:58.000Z","size":1119,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-04T17:57:46.867Z","etag":null,"topics":["android","dotnet","maui","windows"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nojronatron.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-11-30T02:53:31.000Z","updated_at":"2024-07-06T23:31:51.000Z","dependencies_parsed_at":"2023-12-28T00:55:41.864Z","dependency_job_id":"c5df291a-d538-427f-8a4c-0cd8c0451cea","html_url":"https://github.com/nojronatron/MobWxApp","commit_stats":null,"previous_names":["nojronatron/mobwxapp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nojronatron/MobWxApp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nojronatron%2FMobWxApp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nojronatron%2FMobWxApp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nojronatron%2FMobWxApp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nojronatron%2FMobWxApp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nojronatron","download_url":"https://codeload.github.com/nojronatron/MobWxApp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nojronatron%2FMobWxApp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29637920,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T22:32:43.237Z","status":"ssl_error","status_checked_at":"2026-02-19T22:32:38.330Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","dotnet","maui","windows"],"created_at":"2024-12-15T23:18:29.388Z","updated_at":"2026-02-20T01:02:21.600Z","avatar_url":"https://github.com/nojronatron.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MobWxApp\n\nThe purpose of this app is to leverage the NOAA/NWS API to acquire current and forecast weather information using REST API calls.\n\n## Goals\n\n- Build a multi-platform app for Windows and Android\n- Learn how to use .NET MAUI 8 w/ .NET 8\n- Implement MVVM, DI, and Async programming patterns\n- Ensure stable app execution and operation\n- Learn how to use the NOAA/NWS API\n- Deploy a functional app via the Android Play ecosystem\n\n## Project Status\n\nAs of 17-June-2024:\n\n- Changing location properly updates Current and Forecast pages.\n- Forecast page now loads weather icons for each day.\n- Bumped version in About page.\n\nAs of 6-June-2024:\n\n- Enabled GH Build Action for Windows.\n- Updated accessibility, replacing placeholders with labels in UI.\n- Bump dependecies versions, app version.\n\nAs of 5-Feb-2024:\n\n- Fixed some display and layout bugs.\n- Tested Release Deployment for Windows and Android.\n- Development on this project will be _on hold_ for a few weeks while working on other committments.\n\nAs of 26-Jan-2024:\n\n- Implemented Forecast view that displays 7-day forecast data.\n- Leverage CollectionView and templating to bind, display, and style the data.\n\nAs of 17-Jan-2024:\n\n- Refactored navigation to use Flyout, allowing user to select various pages in the app.\n- Updated Location discovery and UI validation.\n- Reworked filenames and MVVM structure a bit to reduce confusion.\n- Enable user to enter lat/lon even if the device already acquired Location from its sensors.\n- Enabled rotation support for Android.\n\nAs of 6-Dec-2023:\n\n- Updated About page, including hyperlinks to project and dev sites.\n- Added ScrollView to About page.\n\nAs of 27-Dec-2023:\n\n- Initial development of TabBar navigation.\n- Added placeholder About page.\n- Added TabBar icons (more to come).\n\nAs of 16-Dec-2023:\n\n- Added contrasting color palettes to UI style resources.\n- Platform light/dark modes automatically supported, applied to UI.\n- Added custom AppIcon.\n- Changed Windows platform App size to something more reasonable. :smiley:\n\nAs of 12-Dec-2023:\n\n- In development.\n- Android location services utilized to gather device location.\n\nAs of 5-Dec-2023:\n\n- The app is currently in development.\n- App will return current weather information for a location (Android: detected or input; Windows: user-input only).\n\n## Implemented Features\n\nLatest-to-oldest:\n\n- Separate Current Conditions from 7-day Forecast data in the UI.\n- Design 7-day forecast page that consumes current location and diplays weather data.\n- Collections will stay in the app to support observable data binding, ensureing up-to-date data and responsive UI.\n- Part of development and testing now includes Ad-hoc publishing APK for side-load testing on physical Android devices.\n- Update UI to be responsive to window size, device orientation, and device type.\n- Dedicated function to get Android Location on startup.\n- Flyout navigation is overall navigation paradigm.\n- AppIcon for Android and Windows.\n- Add an about page to show app, developer information.\n- Update UI with color palette.\n- Update UI light/dark scheme (follows platform scheme).\n- Enable just-in-time downloading the NWS \"Icon\" image (current conditions image) when current condition page is loaded (right now it is a placeholder).\n- Get location by device location (Android only).\n- Get location by user input.\n- Get weather forecast for location.\n- Show current weather conditions.\n\n## Remaining Work To Be Done\n\nIn No particular order:\n\n- Fix ObservableObject implementation to simplify code and ensure proper bindings.\n- Implement a local database e.g. SqlLite to store data.\n- Implement NWS/NOAA API cache-friendly code (currently the code ignores caching requests).\n- Quick recall of forecast weather data periods e.g. tomorrow, tomorrow night, etc.\n- Exception handling: Catch FeatureNotSupported, FeatureNotEnabled, and Permission Exception types.\n- Various refactorings to improve code quality and readability.\n\n### Stretch Goals\n\n- Current Warnings and Watches alert on Current Conditions page with click to detailed information.\n- Sunset and Sunrise times e.g. Civil Twilight etc.\n- Moon phase, current and future significant dates.\n- A settings page to allow user to set preferences such as light/dark mode, location(s).\n\n## Prerequisites\n\nAndroid install and run:\n\n- Android 12 (API 32) or newer\n- Future: Google Play account to install from Play Store\n- Ability to side-load APK files for non-Store builds\n\nWindows install and run:\n\n- Windows 10 or 11\n- DotNET 8.0 or newer SDK and RunTime\n- Ability and local rights to install MSIX files\n\nDev and Build:\n\n- Windows 10 or 11\n- Visual Studio 2022 (v17.10 or newer)\n- DotNet 8.0 SDK\n- Android Emulator(s) with Android 12.1+ and API 32 or newer and at least 1 GB of memory\n\n## Credits and References\n\n- Various code snippets from [Microsoft Learn .NET MAUI 8](https://learn.microsoft.com/en-us/dotnet/maui), November and December 2023.\n- Various code snippets from [MAUI Community Toolkit](https://github.com/CommunityToolkit/Maui), December 2023.\n- Splash screen images screen-snipped from [NOAA GOES Image Viewer](https://www.star.nesdis.noaa.gov/GOES/index.php), 3-Dec-2023.\n- Exclamation Mark icon from [Icons8](https://icons8.com/icon/j1rPetruM5Fl/exclamation-mark).\n- Custom icons by [me](https://github.com/nojronatron).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnojronatron%2Fmobwxapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnojronatron%2Fmobwxapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnojronatron%2Fmobwxapp/lists"}