Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/0xOpenBytes/OpenWeather
🌤️ Open source weather experience
https://github.com/0xOpenBytes/OpenWeather
ios ios-base swift swiftui weather weather-app weatherkit
Last synced: 11 days ago
JSON representation
🌤️ Open source weather experience
- Host: GitHub
- URL: https://github.com/0xOpenBytes/OpenWeather
- Owner: 0xOpenBytes
- License: mit
- Created: 2023-03-05T16:53:17.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-06-10T13:59:42.000Z (over 1 year ago)
- Last Synced: 2024-07-05T13:36:53.222Z (4 months ago)
- Topics: ios, ios-base, swift, swiftui, weather, weather-app, weatherkit
- Language: Swift
- Homepage:
- Size: 187 KB
- Stars: 15
- Watchers: 3
- Forks: 2
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
## Project
### Structure
- OpenWeather
- App: SwiftUI App and Views
- Data
- Mock: Static mock data and json reading functionality.
- Network: Network data models used in Services and Adapters.
- Adapters: Objects that can convert from Network to Device or Device to Network models.
- JSON: Network data model JSON files.
- Device: Device data models used in SwiftUI Views and ViewModels. Device models should be created from Network models by using Adapters.
- FileStorage: Local storage functionality.
- Navigation: SwiftUI NavigationPath using an object called CartographyPath and CartographyView. There is also the ability to present toasts, alerts, modals, and action sheets using the CartographyPath.
- Networking: Networking functionality.
- Notifications: Local Notification functionality.
- Persistence
- Caching
- Image: Memory storage for Images, used in ImageView.
- Data: Memory storage for anything conforming to DataCaching.
- Preview Content
- Settings: Shared app data and state.
- Utilities: Miscellaneous app utilities.
- OpenWeatherTests
- Adapters: Test Network to Device and Device to Network transformations.
- Persistence: Tests for Persistence and Caching.
- UserRegistration: Tests for register using ViewModels and DI.
- Validation: Tests for different types of data validation.### Dependency List
- [OpenBytes o](https://github.com/0xOpenBytes/o)
- Allows us to get the input and set the output of file, url, the console, and UserNotifications.
- [OpenBytes c](https://github.com/0xOpenBytes/c)
- Allows us to transform types from one to another while also providing us the various caching options.
- [Fork](https://github.com/0xLeif/Fork)
- Fork allows us to run multiple asynchronous tasks at the same time.## Getting Started
### Installing development dependencies
1. Install [Homebrew](https://brew.sh)
2. Run `brew bundle`Learn more about [SPX](https://www.github.com/FullQueueDeveloper/SPX) and [Xcodegen](https://github.com/yonaskolb/XcodeGen)
### Renaming
There are some scripts to help rename OpenWeather to whatever project name you want.
- Clone the templated repository
- run `./rename.sh`
- Enter a project name## Continuing onward
### Regenerate the project
spx xcodeproj
### Pushing to the App Store
This script expects `APPLE_TEAM_ID`, `APPLOADER_USERNAME` and `APPLOADER_PASSWORD` to be present in the environment.
It doesn't have to stay that way. Modify `SPX/Sources/appstore/Secrets.swift` to use an API key, or perhaps fetch credentials from a password manager like 1Password using [Sh1Password](https://github.com/FullQueueDeveloper/Sh1Password).
When that's settled, you can run
spx appstore