/dev/world 2023
30-31 MARCH • NAARM | MELBOURNE
Amy Lin
Building iOS App with Shared GraphQL Schema Across Mutliple Frontend Platforms
In your app development, are you on a journey of migrating your networking API to GraphQL? While we are all excited about not being restricted by the API endpoints any more, and having only one schema to be shared among all the frontend platforms, and even the offline experience that GraphQL can provide with the local caching, do you also face some of these challenges? - While the GraphQL schema seems to work well on web platform, it does not work with your mobile experience. - You are having no idea what the schema provides. The GraphQL data is difficult to understand. - When consuming data, each platform requires additional logic. - Breaking change happens very often and sometimes ends up with production issues. - Older version apps are always a problem when the GraphQL schema change is deployed. - Consuming the schema out of the codeGen ended up with a lot of unnecessary guards in the code base and wired syntax in swift. This talk will cover the best practises for designing GraphQL schema for the app experience. We'll work out the schema design together for a real-life app experience, with some bad designs, and see where the problems are, from structure to fields. By the end of it, hopefully you'll be able to know the principles and practises of schema design and be able to influence how your graphQL schema contract should look like in order to make the best of your app experience, including the older version apps.
About the presenter
Amy is senior iOS developer working at SEEK, passionate about solving problems with clean code, and an advocator for best practises and fostering a clean code culture. In the past few years, Amy has migrated a number of networking APIs to GraphQL in the SEEK iOS app. Last year, Amy led a mobile app development team that migrated a six-year-old legacy component to GraphQL across Android, iOS and Web platforms.