Code Monkey home page Code Monkey logo

Comments (3)

shaps80 avatar shaps80 commented on June 12, 2024

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.

shaps80 avatar shaps80 commented on June 12, 2024

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.

shaps80 avatar shaps80 commented on June 12, 2024

Just an FYI, I've updated this Roadmap description above if anyone's interested.

from swift-graphql.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.