{"id":20199530,"url":"https://github.com/andylindebros/serverdrivenswiftui","last_synced_at":"2025-08-15T23:18:25.563Z","repository":{"id":91299166,"uuid":"532180867","full_name":"andylindebros/ServerDrivenSwiftUI","owner":"andylindebros","description":"Server-driven SwiftUI - Maintain iOS apps without making app releases.","archived":false,"fork":false,"pushed_at":"2022-09-12T20:20:11.000Z","size":102,"stargazers_count":20,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-10T11:34:47.699Z","etag":null,"topics":["backend-driven-ui","ios-server-rendering","server-driven-swiftui","server-driven-ui","serverdrivenswiftui","serverdrivenui","swiftui","swiftui-server-rendering","vapor"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andylindebros.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-09-03T06:49:02.000Z","updated_at":"2025-04-08T18:09:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"d8a55835-d3a5-4117-bb9c-6be87843014f","html_url":"https://github.com/andylindebros/ServerDrivenSwiftUI","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/andylindebros/ServerDrivenSwiftUI","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andylindebros%2FServerDrivenSwiftUI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andylindebros%2FServerDrivenSwiftUI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andylindebros%2FServerDrivenSwiftUI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andylindebros%2FServerDrivenSwiftUI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andylindebros","download_url":"https://codeload.github.com/andylindebros/ServerDrivenSwiftUI/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andylindebros%2FServerDrivenSwiftUI/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270644762,"owners_count":24621332,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-15T02:00:12.559Z","response_time":110,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backend-driven-ui","ios-server-rendering","server-driven-swiftui","server-driven-ui","serverdrivenswiftui","serverdrivenui","swiftui","swiftui-server-rendering","vapor"],"created_at":"2024-11-14T04:37:59.792Z","updated_at":"2025-08-15T23:18:25.555Z","avatar_url":"https://github.com/andylindebros.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ServerDrivenSwiftUI\n\nMaintain ios apps without making app releases.\n\nDeploy changes to the server and users will receive changes within minutes.\n\nThis package describes how you can use server-driven UI together with SwiftUI.\n\nInstead of writing SwiftUI code directly into your app, you can write it on the server side. The app fetches the content and displays it according to the server side implementation. Just like a web browser!\n\nExample of a server side implementation:\n``` Swift\nModels.VStack(spacing: 20) {\n    Models.Image(systemName: \"globe\")\n        .foregroundColor(.blue)\n        .frame(width: 100)\n\n    Models.Text(\"It works!\")\n\n    Models.Button(action: .reload) {\n        Models.HStack(spacing: 4) {\n            Models.Image(systemName: \"arrow.uturn.left.circle\")\n                .frame(width: 20)\n            Models.Text(\"Reload\")\n        }\n    }\n}\n```\n\n## See example apps within this package\n- iOS App: ServerDrivenSwiftUIExampleProject\n- Vapor server - ServerExample\n\n\n### Run the example apps:\n1. open up your terminal\n2. navigate to the project and then to ServerExample\n```bash\ncd ServerDrivenSwiftUI/ServerExample\n```\n3. Install vapor\n```Bash\nbrew install vapor\n```\nFor more info how vapor works, see https://docs.vapor.codes\n\n4. enter `vapor run` to start the server\n```Bash\nvapor run\n ```\n\n 4. Open ServerDrivenSwiftUIExampleProject in xcode.\n 5. Compile and run\n 6. You should now be able to see the server rendered content in the app.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandylindebros%2Fserverdrivenswiftui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandylindebros%2Fserverdrivenswiftui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandylindebros%2Fserverdrivenswiftui/lists"}