Comments (3)
Just a quick update, I've been pretty busy with some foundational steps for v6. I've also been quite busy on other work, so I realise it's been pretty quiet here for a few weeks. But a LOT of async progress has been made and I'm hoping to be able to share some of that work in the near future.
That being said, it's December now and we're getting close to Christmas break and I'll be off for a few weeks on holiday.
Just wanted to give a minor update to ensure no one thinks this has suddenly been abandoned 👍
from swift-graphql.
Updates
I've completely rewritten (including tests) the low level GraphQL package to include an all-new global actor, GraphQLActor
. This brings automatic thread-safety (for 99% of cases) without the developer doing anything.
This also therefore brings with it, async/await at the foundational level, as well as Swift error handling (throws) throughout, ensuring a smooth developer experience and easier to read, maintain, test and debug code.
In addition it has a new Client
(thin URLSession wrapper) implementation that is built to work with the new actor and acts as a great starting point especially for people wanting to work directly with that framework, since you can write string
-based queries and get back JSON responses without using the CodeGen and Consumer level APIs if that's your preference.
This approach greatly improves testing as well since it provides a simple but effective API, great documentation and logging, as well as good error handling and feedback where appropriate.
Strengthening the foundation is a strong goal here, making it easier to build up the stack and ensure we still adhere to those design principles Mat outlined long ago:
- 🚀 If your project compiles, your queries work
- 🦉 Use Swift in favour of GraphQL
- 🕊 Packages shouldn't lock you in to the "framework"
To take this slightly further, I wanted to ensure the libraries feel 'at home' in Swift. An early design goal was to allow the user to 'forget' about GraphQL altogether, and I completely agree.
To achieve that goal, I've made improvements to naming, structure and API to provide a design that more closely matches a Swift developers expectations.
The goal here, to make the library even more accessible and lower the learning curve required. As well as truly removing the dep on prior GraphQL knowledge.
I'm excited to soon share some updates on the consumer level APIs, as I feel that for most users, that will be the entry point and so making that extremely intuitive for Swift developers, while also bringing more flexibility, type and thread safety, and improved documentation (docs, examples, demos).
The next big update for this will begin shortly on #194 if anyone is interested 👍
from swift-graphql.
Just an FYI, I've updated this Roadmap description above if anyone's interested.
from swift-graphql.
Related Issues (20)
- GraphQLWebSocket' does not conform to protocol 'WebSocketDelegate' HOT 1
- Remove dependency on starscream in favor of URLSession HOT 1
- Add support for AWS AppSync HOT 7
- Remove dependency on starscream in favor of URLSession HOT 13
- Does Query Builder support multi-operation queries? HOT 2
- Add suport for Linux and swift-server HOT 1
- Update package to remove CLI as dep for client HOT 7
- Massive amounts of warnings due to type parameters being shadowed (will be errors in Swift 6) HOT 2
- GraphQLSupport: Schema support HOT 1
- There are no changes listed for releases since 5.0.9 HOT 3
- GraphQL: Mock request support for testing HOT 2
- Caching HOT 2
- Race condition with `active` dictionary when using async/await (w/ proposed fix) HOT 2
- Generic parameter 'T'/'TypeLock' could not be inferred HOT 8
- ErrorExchange doesnt seem to be called HOT 5
- using args causes error in response HOT 2
- Optional lists? optional().list.optional()
- Category Tree Structure upto 2 levels
- How to debug codegen errors?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from swift-graphql.