# Keeping Schemas Up-To-Date in Client Apps

Client apps need to keep their schemas up-to-date whenever changes are made to the supergraph. In order to facilitate this Apollo recommends setting up the following:

* [Schema change notifications](https://www.apollographql.com/docs/graphos/platform/insights/notifications/schema-changes) and ensure messages are sent to the appropriate channels
* Configure [Apollo Swift](https://www.apollographql.com/docs/ios/code-generation/codegen-cli#fetch-schema) and [Apollo Kotlin](https://www.apollographql.com/docs/kotlin/advanced/plugin-configuration#downloading-a-schema) build tasks to fetch the latest API schema
* [`rover graph fetch`](https://www.apollographql.com/docs/rover/commands/graphs#graph-fetch) to fetch the API schema for any other applications.
* Configure code generation tools for [Swift](https://www.apollographql.com/docs/ios/code-generation/codegen-cli), [Kotlin](https://www.apollographql.com/docs/kotlin/advanced/response-based) and [other platforms](https://github.com/dotansimha/graphql-code-generator)

To ensure that your client operations are valid against the most recent schema, we recommend re-running code generation in your continuous integration system before merging client changes. The specific steps required are as follows:

1. Fetch the latest production schema using any of the methods described above, prior to merging any changes to your client code
2. Run codegen against this schema
3. The codegen task will validate that any operations used by the client application are compatible with this schema.
