<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url><loc>https://blog.adrianhall.uk/</loc></url>
  <url><loc>https://blog.adrianhall.uk/posts/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/</loc></url>
  <url><loc>https://blog.adrianhall.uk/categories/</loc></url>
  <url><loc>https://blog.adrianhall.uk/privacy.html</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/ai/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/android/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/aspire/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/aspnet-identity/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/aspnetcore/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/async-programming/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/aws-amplify/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/aws-appsync/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/azd/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/azure/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/azure-active-directory/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/azure-apim/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/azure-appconfig/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/azure-appservice/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/azure-dns/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/azure-functions/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/azure-keyvault/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/azure-mobile-apps/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/azure-storage/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/azure-swa/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/bicep/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/blazor/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/bootstrap/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/cloudflare/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/comparison/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/comparisons/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/containers/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/csharp/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/data-validation/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/debugging/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/dependencies/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/dns/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/documentation/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/flutter/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/graphql/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/javascript/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/jekyll/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/keycloak/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/kotlin/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/microsoft-entra/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/minimal-apis/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/msgraph/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/powershell/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/react/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/react-native/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/scss/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/serverless/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/signalr/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/swift/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/swiftui/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/terraform/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/testing/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/typescript/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/vscode/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/xamarin/</loc></url>
  <url><loc>https://blog.adrianhall.uk/tags/xamarin-forms/</loc></url>
  <url><loc>https://blog.adrianhall.uk/categories/ai/</loc></url>
  <url><loc>https://blog.adrianhall.uk/categories/cloud/</loc></url>
  <url><loc>https://blog.adrianhall.uk/categories/cloud-development/</loc></url>
  <url><loc>https://blog.adrianhall.uk/categories/devtools/</loc></url>
  <url><loc>https://blog.adrianhall.uk/categories/mobile/</loc></url>
  <url><loc>https://blog.adrianhall.uk/categories/tips/</loc></url>
  <url><loc>https://blog.adrianhall.uk/categories/tools/</loc></url>
  <url><loc>https://blog.adrianhall.uk/categories/web/</loc></url>
  <url><loc>https://blog.adrianhall.uk/posts/2026/2026-07-01-cf-caching.html</loc><lastmod>2026-07-01T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2026/2026-06-07-agentic-testing.html</loc><lastmod>2026-06-07T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2026/2026-05-28-cf-workflows.html</loc><lastmod>2026-05-28T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2026/2026-05-25-death-of-collaboration.html</loc><lastmod>2026-05-25T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2026/2026-05-05-cf-workers-4.html</loc><lastmod>2026-05-05T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2026/2026-05-01-cf-workers-3.html</loc><lastmod>2026-05-01T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2026/2026-04-29-cf-workers-2.html</loc><lastmod>2026-04-29T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2026/2026-04-26-cf-workers-1.html</loc><lastmod>2026-04-26T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2026/2026-04-21-dns-tools.html</loc><lastmod>2026-04-21T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2026/2026-04-19-project-setup.html</loc><lastmod>2026-04-19T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2026/2026-04-11-agentic-engineer-3.html</loc><lastmod>2026-04-11T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2026/2026-04-09-agentic-engineer-2.html</loc><lastmod>2026-04-09T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2026/2026-04-07-agentic-engineer-1.html</loc><lastmod>2026-04-07T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2026/2026-04-05-ai-bubble.html</loc><lastmod>2026-04-05T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2026/2026-04-03-ai-discussion.html</loc><lastmod>2026-04-03T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2025/2025-12-06-spec-kit.html</loc><lastmod>2025-12-06T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2025/2025-08-01-ai-editors.html</loc><lastmod>2025-08-01T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2025/2025-08-03-oss-ai-editors.html</loc><lastmod>2025-08-01T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2024/2024-10-04-aspire-keycloak-part3.html</loc><lastmod>2024-10-04T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2024/2024-09-30-aspire-keycloak-part2.html</loc><lastmod>2024-09-30T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2024/2024-09-26-aspire-keycloak-part1.html</loc><lastmod>2024-09-26T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2024/2024-09-20-aspnet-identity-part6.html</loc><lastmod>2024-09-20T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2024/2024-09-18-aspnet-identity-part5.html</loc><lastmod>2024-09-18T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2024/2024-09-16-aspnet-identity-part4.html</loc><lastmod>2024-09-16T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2024/2024-09-14-aspnet-identity-part3.html</loc><lastmod>2024-09-14T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2024/2024-09-13-aspnet-identity-part2.html</loc><lastmod>2024-09-13T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2024/2024-09-11-aspnet-identity-part1.html</loc><lastmod>2024-09-11T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2024/2024-09-09-aspire-config.html</loc><lastmod>2024-09-09T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2024/2024-09-05-aspire-identity.html</loc><lastmod>2024-09-05T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2024/2024-09-03-aspnetcore-options.html</loc><lastmod>2024-09-03T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2024/2024-08-15-centrally-managed-dependencies.html</loc><lastmod>2024-08-15T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2024/2024-08-10-easy-exceptions.html</loc><lastmod>2024-08-10T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2024/2024-08-08-bootstrap-in-aspnetcore.html</loc><lastmod>2024-08-08T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2024/2024-08-07-organizing-services-in-aspnetcore.html</loc><lastmod>2024-08-07T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2024/2024-08-03-testing-js-projects.html</loc><lastmod>2024-08-03T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2024/2024-07-22-eslint-husky-prettier.html</loc><lastmod>2024-07-22T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2024/2024-07-11-swc-typescript.html</loc><lastmod>2024-07-11T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2024/2024-07-10-esm-typescript.html</loc><lastmod>2024-07-10T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2024/2024-07-06-commonjs-to-esm.html</loc><lastmod>2024-07-06T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2024/2024-06-27-react-ui-libraries.html</loc><lastmod>2024-06-27T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2024/2024-06-25-react-state-mgmt.html</loc><lastmod>2024-06-25T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2024/2024-06-08-swa-production.html</loc><lastmod>2024-06-08T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2024/2024-06-07-swa-dns.html</loc><lastmod>2024-06-07T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2024/2024-06-06-azure-dns.html</loc><lastmod>2024-06-06T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2024/2024-06-05-swa-deploy.html</loc><lastmod>2024-06-05T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2024/2024-06-04-devcontainers.html</loc><lastmod>2024-06-04T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2024/2024-01-19-pwsh-entra-appreg.html</loc><lastmod>2024-01-19T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2023/2023-07-12-cleanup-azure-resources.html</loc><lastmod>2023-07-12T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2023/2023-01-20-powershell-apim-rest.html</loc><lastmod>2023-01-20T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2022/2022-11-28-bicep-type-checking.html</loc><lastmod>2022-11-28T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2022/2022-11-21-bicep-loops-defaults.html</loc><lastmod>2022-11-21T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2022/2022-11-07-top-ten-production-graphql-tips.html</loc><lastmod>2022-11-07T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2022/2022-10-10-apim-graphql-api.html</loc><lastmod>2022-10-10T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2022/2022-09-23-blazor-wasm-aad-signalr.html</loc><lastmod>2022-09-23T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2022/2022-09-03-blazor-wasm-aad-auth-part-3.html</loc><lastmod>2022-09-03T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2022/2022-09-02-blazor-wasm-aad-auth-part-2.html</loc><lastmod>2022-09-02T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2022/2022-09-01-blazor-wasm-aad-auth-part-1.html</loc><lastmod>2022-09-01T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2022/2022-08-26-adding-sass-to-blazor.html</loc><lastmod>2022-08-26T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2022/2022-08-25-building-a-serverless-mud.html</loc><lastmod>2022-08-25T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2021/2021-11-12-zumo-irepository.html</loc><lastmod>2021-11-12T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2021/2021-11-11-logging-with-zumo.html</loc><lastmod>2021-11-11T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2021/2021-11-10-complex-zumo-auth.html</loc><lastmod>2021-11-10T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2021/2021-11-09-adding-auth-to-zumo.html</loc><lastmod>2021-11-09T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2021/2021-11-08-azure-mobile-apps-intro.html</loc><lastmod>2021-11-08T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2021/2021-06-29-api-keys-with-apim.html</loc><lastmod>2021-06-29T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2021/2021-06-15-routing-based-on-request.html</loc><lastmod>2021-06-15T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2021/2021-06-11-adding-policies-to-apim.html</loc><lastmod>2021-06-11T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2021/2021-06-08-using-apim-with-zumo.html</loc><lastmod>2021-06-08T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2021/2021-05-15-xamarin-forms-tabs.html</loc><lastmod>2021-05-15T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2021/2021-05-09-xamarin-forms-glyph-fonts.html</loc><lastmod>2021-05-09T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2021/2021-03-10-hosting-static-assets-in-azure.html</loc><lastmod>2021-03-10T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2020/2020-05-03-swiftui-masks.html</loc><lastmod>2020-05-03T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2020/2020-04-04-deploy-to-azure.html</loc><lastmod>2020-04-04T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2020/2020-04-02-adding-unit-testing-to-template.html</loc><lastmod>2020-04-02T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2020/2020-03-31-adding-storybook-to-template.html</loc><lastmod>2020-03-31T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2020/2020-03-29-parcel-typescript-react.html</loc><lastmod>2020-03-29T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2020/2020-03-06-msal-react-redux.html</loc><lastmod>2020-03-06T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2020/2020-02-20-vscode-flutter.html</loc><lastmod>2020-02-20T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2020/2020-01-20-build-gradle-files.html</loc><lastmod>2020-01-20T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2020/2020-01-12-fixing-functions-deployment.html</loc><lastmod>2020-01-12T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2020/2020-01-03-mockito-mocking-resources.html</loc><lastmod>2020-01-03T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2020/2020-01-01-unit-testing-service-methods.html</loc><lastmod>2020-01-01T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2019/2019-12-24-unit-testing-android-libraries.html</loc><lastmod>2019-12-24T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2019/2019-12-13-android-recyclerview-adapter.html</loc><lastmod>2019-12-13T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2019/2019-11-05-swiftui-location.html</loc><lastmod>2019-11-05T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2019/2019-11-02-swiftui-bubble-background.html</loc><lastmod>2019-11-02T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2019/2019-10-31-swiftui-intro.html</loc><lastmod>2019-10-31T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2019/2019-10-23-terraform-functions.html</loc><lastmod>2019-10-23T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2019/2019-10-07-validating-permissions.html</loc><lastmod>2019-10-07T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2019/2019-09-22-azure-app-config.html</loc><lastmod>2019-09-22T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2019/2019-06-30-building-an-efficient-logger-in-typescript.html</loc><lastmod>2019-06-30T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2019/2019-02-12-documenting-opensource-projects.html</loc><lastmod>2019-02-12T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2019/2019-02-06-where-do-you-start-with-graphql.html</loc><lastmod>2019-02-06T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2019/2019-01-31-which-aws-service-for-hosting.html</loc><lastmod>2019-01-31T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2019/2019-01-15-three-ways-graphql-react-awsappsync.html</loc><lastmod>2019-01-15T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2019/2019-01-03-early-return-from-graphql-resolvers.html</loc><lastmod>2019-01-03T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-12-18-handling-file-uploads-with-aws-appsync.html</loc><lastmod>2018-12-18T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-12-10-bootstrapping-a-react-native-app.html</loc><lastmod>2018-12-10T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-11-05-auth-with-aws-amplify-8.html</loc><lastmod>2018-11-05T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-10-29-auth-with-aws-amplify-7.html</loc><lastmod>2018-10-29T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-10-26-backend-graphql-trigger-appsync.html</loc><lastmod>2018-10-26T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-10-22-auth-with-aws-amplify-6.html</loc><lastmod>2018-10-22T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-10-15-auth-with-aws-amplify-5.html</loc><lastmod>2018-10-15T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-10-08-auth-with-aws-amplify-4.html</loc><lastmod>2018-10-08T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-10-02-learn-to-build-modern-apps-with-aws-amplify-and-serverless.html</loc><lastmod>2018-10-02T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-10-01-auth-with-aws-amplify-3.html</loc><lastmod>2018-10-01T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-09-23-auth-with-aws-amplify-2.html</loc><lastmod>2018-09-23T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-09-18-auth-with-aws-amplify-1.html</loc><lastmod>2018-09-18T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-09-11-endpoint-profiles-with-aws-amplify.html</loc><lastmod>2018-09-11T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-09-04-integrate-analytics-with-aws-amplify.html</loc><lastmod>2018-09-04T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-08-29-build-a-graphql-service-the-easy-way.html</loc><lastmod>2018-08-29T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-08-27-native-development-with-aws-amplify.html</loc><lastmod>2018-08-27T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-08-14-how-to-deploy-graphql-api-serverless-framework.html</loc><lastmod>2018-08-14T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-08-08-converting-types-with-room-and-kotlin.html</loc><lastmod>2018-08-08T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-07-20-build-a-graphql-weather-api-with-openweathermap-and-aws-appsync.html</loc><lastmod>2018-07-20T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-07-04-run-typescript-mocha-tests-in-vscode.html</loc><lastmod>2018-07-04T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-06-20-implementing-search-on-type-in-android-with-rxjava.html</loc><lastmod>2018-06-20T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-06-19-build-a-universal-search-api-with-graphql.html</loc><lastmod>2018-06-19T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-06-01-how-developers-can-auth-with-aws-appsync.html</loc><lastmod>2018-06-01T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-05-12-unit-testing-with-kotlin.html</loc><lastmod>2018-05-12T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-04-11-easy-edittext-content-validation-with-kotlin.html</loc><lastmod>2018-04-11T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-04-06-using-dependency-injection-with-koin.html</loc><lastmod>2018-04-06T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-04-01-lessons-in-kotlin-the-toolbar-icons-reflection.html</loc><lastmod>2018-04-01T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-03-29-lessons-in-kotlin-animated-splash-screen.html</loc><lastmod>2018-03-29T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-03-23-the-react-toolbox-2018-edition.html</loc><lastmod>2018-03-23T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-03-21-why-im-refactoring-to-kotlin.html</loc><lastmod>2018-03-21T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-03-11-testing-mobile-apps-a-primer.html</loc><lastmod>2018-03-11T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-03-10-the-six-mobile-apps-you-should-write.html</loc><lastmod>2018-03-10T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2018/2018-01-19-creating-a-react-native-bridge-library.html</loc><lastmod>2018-01-19T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2017/2017-08-21-asyncstorage-typescript-and-async-await-in-react-native.html</loc><lastmod>2017-08-21T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2017/2017-08-16-building-a-master-detail-pattern-in-react-native.html</loc><lastmod>2017-08-16T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2017/2017-08-14-universal-ios-apps-with-react-native.html</loc><lastmod>2017-08-14T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2017/2017-08-11-integrating-react-native-typescript-mobx.html</loc><lastmod>2017-08-11T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2017/2017-08-09-debugging-react-native-with-typescript-and-vscode.html</loc><lastmod>2017-08-09T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2017/2017-08-07-implementing-swipe-right-on-a-react-native-flatlist.html</loc><lastmod>2017-08-07T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2017/2017-07-26-handling-orientation-changes-in-react-native.html</loc><lastmod>2017-07-26T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2017/2017-06-19-the-things-i-like-about-swift.html</loc><lastmod>2017-06-19T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2017/2017-05-25-reactnative-vs-xamarinforms.html</loc><lastmod>2017-05-25T00:00:00.000Z</lastmod></url>
  <url><loc>https://blog.adrianhall.uk/posts/2017/2017-05-08-building-a-service-in-the-cloud.html</loc><lastmod>2017-05-08T00:00:00.000Z</lastmod></url>
</urlset>
