Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Dimillian/MortyUI
A very simple Rick & Morty app to demo GraphQL + SwiftUI
https://github.com/Dimillian/MortyUI
Last synced: 3 months ago
JSON representation
A very simple Rick & Morty app to demo GraphQL + SwiftUI
- Host: GitHub
- URL: https://github.com/Dimillian/MortyUI
- Owner: Dimillian
- License: apache-2.0
- Created: 2020-12-21T14:56:42.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2021-09-01T14:15:54.000Z (about 3 years ago)
- Last Synced: 2024-06-03T23:45:49.532Z (5 months ago)
- Language: Swift
- Size: 25.1 MB
- Stars: 464
- Watchers: 14
- Forks: 51
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- fucking-open-source-ios-apps - MortyUI
README
# MortyUI
A very simple Rick & Morty app to demo GraphQL + SwiftUI
Characters
Character detail
Episode
This app have a very simple SwiftUI MVVM architecture.
Each views have its own view model which consist of running a simple GraphQL query to fetch the necassary data. Once the data is set in the `@Published` property of the view model, the data will be displayed in the view. While it's fetching the data, it'll use the powerful SwiftUI `.redacted placeholder` modifier to display a beautiful loading state.
All the queries are in `Queries.graphql`. The file `API.swift` is generated at the build time using the `schema.json` of the GraphQL API of this awesome Rick & Morty API [website](https://rickandmortyapi.com/documentation/#episode-schema) and the `Queries.graphql` file using the [Apollo CLI](https://www.apollographql.com/docs/devtools/cli)
For now you can browse characters, episodes and locations (soon). Search is coming soon.
To not slow the build process, this project is coming with a Swift package command line tool to generate the swift code using the new Apollo Swift [scripting feature](https://www.apollographql.com/docs/ios/swift-scripting/). It can also download the schema from the Rick & Morty API.
It's not executed as part of the build process, if you modify the queries and wish to regenerate the API.swift file you'll need to:
`cd Codegen `
`swift run Codegen codegen`
and to download the schema
`swift run Codegen download`
This is all an excercice for me to play a bit with GraphQL + SwiftUI. Nothing very exciting on the UI side. The exiting part is that it's actually very little code (just the UI code + some GraphQL queries) to have the app working.