7 ms·
Learn Apollo: Build GraphQL Apps with React, React Native or Exponent
- deleted 10y ago[deleted]
- sorenbs 10y agoHey :-) we just announced this. Happy to answer any questions. Here's the accompanying blog post https://dev-blog.apollodata.com/learn-apollo-build-graphql-apps-with-react-react-native-or-exponent-4787269a4747 https://dev-blog.apollodata.com/learn-apollo-build-graphql-a...
- welder 10y agoWhat is Apollo? Is it like PhoneGap? Where in the React toolchain does it fit?
- djmashko2 10y agoApollo is a GraphQL client - it's an npm package that helps you bind GraphQL data to your Redux store and React components. Here's the website: http://dev.apollodata.com/ http://dev.apollodata.com/
- deleted 10y ago[deleted]
- iyn 10y agoCan you give a comparison between Apollo Client and Relay? And if you know about upcoming Relay 2 features, I'd like to hear about it too in the context of Apollo Client. If you have time, I would love to hear about your (and everybody else) opinion/prediction where we're going with client data management/server communication in the future. What's your take on client databases? Thanks!
- djmashko2 10y ago(I work on Apollo) It's hard to know exactly what will be included in Relay 2, so we'll have to wait to make a comparison. Apollo came after Relay 1, and so has been designed with a few key differentiators: (1) flexibility, since it's built in a modular way and has a lot of hooks into internals, (2) less opinions, because it works with any GraphQL server and doesn't require a particular type of schema, and (3) optimized for devtools, since it doesn't generate dynamic queries on the fly and is built on top of Redux. You can see the new dev tools we launched yesterday here: https://dev-blog.apollodata.com/apollo-client-developer-tools-ff89181ebcf https://dev-blog.apollodata.com/apollo-client-developer-tool... As for client/server communication in the future, it seems there are two main camps right now: 1. Lossy APIs - this is if you use a REST API or GraphQL to send data to the client. The server knows a lot more than the client does, and the API returns only what the client needs to know at that moment. This has the advantage that it doesn't impose any limitations on your backend schema or storage, so you can put a REST or GraphQL API on top of literally any backend. 2. Database replication, like Meteor or Realm. In this case, the client asks for objects and they are replicated to the server via some kind of push mechanism. In this case, the client has a much easier time predicting server operations and achieving consistency. On the other hand, the server has to be much smarter and this places a lot of restrictions on what kind of database you can use. For example, Meteor essentially requires MongoDB, Realm has its own database. With Apollo we're trying to build towards the best implementation of approach (1) because our main goal is to enable decoupling between the client and server.
- sorenbs 10y agoSashkos answer below is pretty good. To get a good understanding of the difference between Apollo and Relay I would suggest going through both https://learnrelay.org/ https://learnrelay.org/ and https://www.learnapollo.com/ https://www.learnapollo.com/ - should be doable in a couple hours. After that you could take a look at the Graphcool Console https://github.com/graphcool/console https://github.com/graphcool/console It's the most complex open source app build with Relay that I'm aware of.
- deleted 10y ago[deleted]
- ericclemmons 10y agoIf you want a pretty terse way of defining a GraphQL API, Apollo works very well (with mocking, too).
- djmashko2 10y agoHere's the documentation for graphql-tools, Apollo's API definition package: http://dev.apollodata.com/tools/graphql-tools/index.html http://dev.apollodata.com/tools/graphql-tools/index.html
- wwalser 10y agoI came to the comments to point out that I didn't know what Apollo was. Most of your long term traffic will come from Google searches but early on while it's being shared around places like Hacker News, it's probably a good idea to add a link to http://dev.apollodata.com/ http://dev.apollodata.com/ to the intro.
- sergiotapia 10y agoFrom the creator's of Meteor. What kind of long-term commitment plan do you have for Apollo?
- andreasklinger 10y agorelated Q: is it fair to think of this as your pivot from "ecosystem" to "chain of tools" and you needed new branding to make space for this?
- djmashko2 10y agoWe decided to ship Apollo under a different name to avoid people's preconceptions that a tool released by the creators of Meteor would only work inside the Meteor platform. What we are seeing is that the JavaScript community has been consistently moving towards focused, decoupled tools, and it made sense to build Apollo in that way. Meteor has also received many improvements to make it easy to work with npm packages, new JavaScript features, etc.
- djmashko2 10y agoHi - Sashko here, manager of open source at Meteor Development Group. We're committed long term to Meteor and Apollo both, and view both technologies as critical to the long-term success of the company. Apollo originated as a project to improve the internal data system of Meteor, but we saw that it was useful in a wider context. Today you can use Apollo with Meteor or with any other JavaScript or native mobile technology.
- hobofan 10y agoThanks, I didn't know that. That certainly explains the high polished look of Apollo combined with the seemingly non-existent business model. I tried Apollo Optics - horrible brand name BTW, everyone I mention it to here in Germany thinks of the eyeware retailer - and while it was easy to integrate and nice to look at, it provided little actual value compared to existing tools in the same space of performance monitoring.
- 10y ago
- kabes 10y agoAll these GraphQL solutions seem to focus on the frontend and assume there's a magical GraphQL server somewhere. But GraphQL Just shifts the hard work from the client to the server and I haven't seen any good solution towards security (except storing all the possible queries a user may access, which kind of defeats the purpose of GraphQL in the first place) and performance (a large query is usually resolved to thousands of database fetches, instead of 1 optimized one) on the server side. What we really need is a decent GraphQL server. The client isn't difficult anyway.
- hobofan 10y agoThe article was written by Graphcool. They provide a GraphQL Backend As A Serivice. I used Graphcool on a recent hackathon, and it was a pleasure to use. I rarely got going with a service as quickly, though I must admit that I had some GraphQL experience prior, which certainly helped.
- schickling 10y agoThat's a really good point, kabes. At Graphcool (https://www.graph.cool https://www.graph.cool) we're working on exactly what you're describing. We're putting a lot of work into optimizing for the best possible performance while providing a powerful and flexible API. The key for this will be combining GraphQL and serverless technologies like AWS Lambda to implement your business logic. Concerning security: We're currently testing a new permission system with a group of beta testers which leverages the Graph structure of your backend to specify data access rules.
- hobofan 10y agoHey there, there is one thing I've been wondering about with Graphcool: What's your plan for supporting BI solutions? As it stands there doesn't seem to be a way for non-developers to do any analysis on the data that resides inside Graphcool. I also have a bit of feedback on the webiste: It looks way way overloaded. I get it, it's cool how easy it is to use, but there are ~6 full blown code examples on very different things. The FAQ link doesn't take me to a FAQ page that answers the questions I have, but instead takes me to a guides page (which is only a little bit better than the FAQ link in the footer that takes me to the main page again). The competitor matrix feels really arbitrary. Fields with almost the exact same texts yield you a "++" and the competitor a "-"? Why? I feel like a dedicated "features" page would do a much better job at highlighting your strengths.
- WhitneyLand 10y agoBecause they don't tell you on the site: Apollo Client is a Javascript library that can be used in any front end where you want to use data from a GraphQL server. It's incrementally adoptable, so that you can drop it into an existing JavaScript app and start using GraphQL for just part of your UI. It uses TypeScript.