{"id":32151298,"url":"https://github.com/directtoswift/directtoswiftui","last_synced_at":"2026-02-19T08:01:54.263Z","repository":{"id":63908395,"uuid":"209812896","full_name":"DirectToSwift/DirectToSwiftUI","owner":"DirectToSwift","description":"Rule based CRUD Database Frontends for SwiftUI","archived":false,"fork":false,"pushed_at":"2024-12-09T22:34:57.000Z","size":139,"stargazers_count":67,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"develop","last_synced_at":"2026-01-12T20:48:26.473Z","etag":null,"topics":["database-gui","declarative-programming","declarative-ui","swift","swiftui","swiftui-rules"],"latest_commit_sha":null,"homepage":"http://www.alwaysrightinstitute.com/directtoswiftui/","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DirectToSwift.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2019-09-20T14:40:51.000Z","updated_at":"2025-04-10T00:41:38.000Z","dependencies_parsed_at":"2025-07-09T06:35:21.903Z","dependency_job_id":"2bb8d3a0-b3c9-45df-8a6a-649e6961acfd","html_url":"https://github.com/DirectToSwift/DirectToSwiftUI","commit_stats":{"total_commits":20,"total_committers":2,"mean_commits":10.0,"dds":"0.15000000000000002","last_synced_commit":"5ae9e318cdf44a3dc18795362460ec7f0bf40f3d"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/DirectToSwift/DirectToSwiftUI","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DirectToSwift%2FDirectToSwiftUI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DirectToSwift%2FDirectToSwiftUI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DirectToSwift%2FDirectToSwiftUI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DirectToSwift%2FDirectToSwiftUI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DirectToSwift","download_url":"https://codeload.github.com/DirectToSwift/DirectToSwiftUI/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DirectToSwift%2FDirectToSwiftUI/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29608152,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T06:47:36.664Z","status":"ssl_error","status_checked_at":"2026-02-19T06:45:47.551Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["database-gui","declarative-programming","declarative-ui","swift","swiftui","swiftui-rules"],"created_at":"2025-10-21T10:41:08.437Z","updated_at":"2026-02-19T08:01:54.258Z","avatar_url":"https://github.com/DirectToSwift.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch2\u003eDirect to SwiftUI\n  \u003cimg src=\"http://zeezide.com/img/d2s/D2SIcon.svg\"\n       align=\"right\" width=\"128\" height=\"128\" /\u003e\n\u003c/h2\u003e\n\n![Swift5.1](https://img.shields.io/badge/swift-5.1-blue.svg)\n![macOS](https://img.shields.io/badge/os-macOS-green.svg?style=flat)\n![iOS](https://img.shields.io/badge/os-iOS-green.svg?style=flat)\n![watchOS](https://img.shields.io/badge/os-watchOS-green.svg?style=flat)\n![Travis](https://api.travis-ci.org/DirectToSwift/DirectToSwiftUI.svg?branch=develop\u0026style=flat)\n\n_Going fully declarative_: Direct to SwiftUI.\n\nNote(2024-12-09): This doesn't currently build against the current ZeeQL3\n                  anymore.\n\n**Direct to SwiftUI**\nis an adaption of an old \n[WebObjects](https://en.wikipedia.org/wiki/WebObjects) \ntechnology called \n[Direct to Web](https://developer.apple.com/library/archive/documentation/WebObjects/Developing_With_D2W/WalkThrough/WalkThrough.html#//apple_ref/doc/uid/TP30001015-DontLinkChapterID_5-TPXREF101).\nThis time for Apple's new framework:\n[SwiftUI](https://developer.apple.com/xcode/swiftui/).\nInstant \n[CRUD](https://en.wikipedia.org/wiki/Create,_read,_update_and_delete)\napps, configurable using \n[a declarative rule system](http://www.alwaysrightinstitute.com/swiftuirules/),\nyet fully integrated with SwiftUI.\n\nThere is a blog entry explaining how to use this:\n[Introducing Direct to SwiftUI](http://www.alwaysrightinstitute.com/directtoswiftui/).\n\nA Direct to SwiftUI variant using \n[CoreData](https://developer.apple.com/documentation/coredata)\ninstead of\n[ZeeQL](http://zeeql.io)\ncan be found over here:\n[CoreDataToSwiftUI](https://github.com/DirectToSwift/CoreDataToSwiftUI).\n\n## Requirements\n\nDirect to SwiftUI requires an environment capable to run SwiftUI.\nThat is: macOS Catalina, iOS 13 or watchOS 6.\nIn combination w/ Xcode 11.\n\nNote that you can run iOS 13/watchOS 6 apps on Mojave in the emulator,\nso that is fine as well.\n\n## Using the Package\n\nYou can either just drag the Direct to SwiftUI Xcode project into your own\nproject,\nor you can use Swift Package Manager.\n\nThe package URL is:\n[https://github.com/DirectToSwift/DirectToSwiftUI.git\n](https://github.com/DirectToSwift/DirectToSwiftUI.git).\n\n\n## Misc\n\n- [The Environment](Sources/DirectToSwiftUI/Environment/README.md)\n- [Views](Sources/DirectToSwiftUI/Views/README.md)\n- [Database Setup](Sources/DirectToSwiftUI/DatabaseSetup.md)\n\n## What it looks like\n\nA demo application using the Sakila database is provided:\n[DVDRental](https://github.com/DirectToSwift/DVDRental).\n\n### Watch\n\n\u003cp float=\"left\" valign=\"top\"\u003e\n\u003cimg width=\"200\" src=\"http://www.alwaysrightinstitute.com/images/d2s/watchos-screenshots/01-homepage.png?v=2\"\u003e\n\u003cimg width=\"200\" src=\"http://www.alwaysrightinstitute.com/images/d2s/watchos-screenshots/02-customers.png?v=2\"\u003e\n\u003cimg width=\"200\" src=\"http://www.alwaysrightinstitute.com/images/d2s/watchos-screenshots/03-customer.png?v=2\"\u003e\n\u003cimg width=\"200\" src=\"http://www.alwaysrightinstitute.com/images/d2s/watchos-screenshots/04-movies.png?v=2\"\u003e\n\u003c/p\u003e\n\n### Phone\n\n\u003cp float=\"left\" valign=\"top\"\u003e\n\u003cimg width=\"320\" src=\"http://www.alwaysrightinstitute.com/images/d2s/limited-entities.png\"\u003e\n\u003cimg width=\"320\" src=\"http://www.alwaysrightinstitute.com/images/d2s/list-customer-default.png\"\u003e\n\u003c/p\u003e\n\n### macOS\n\nStill too ugly to show, but works in a very restricted way ;-) \n\n## Who\n\nBrought to you by\n[The Always Right Institute](http://www.alwaysrightinstitute.com)\nand\n[ZeeZide](http://zeezide.de).\nWe like\n[feedback](https://twitter.com/ar_institute),\nGitHub stars,\ncool [contract work](http://zeezide.com/en/services/services.html),\npresumably any form of praise you can think of.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdirecttoswift%2Fdirecttoswiftui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdirecttoswift%2Fdirecttoswiftui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdirecttoswift%2Fdirecttoswiftui/lists"}