{"id":16906661,"url":"https://github.com/rsms/cocui","last_synced_at":"2025-05-08T19:46:21.545Z","repository":{"id":655357,"uuid":"298018","full_name":"rsms/cocui","owner":"rsms","description":"Cocoa meets WebKit for more rapid UI development","archived":false,"fork":false,"pushed_at":"2010-05-20T16:19:13.000Z","size":981,"stargazers_count":329,"open_issues_count":4,"forks_count":12,"subscribers_count":14,"default_branch":"master","last_synced_at":"2024-11-09T20:12:52.324Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rsms.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2009-09-04T22:53:39.000Z","updated_at":"2024-06-08T03:28:01.000Z","dependencies_parsed_at":"2022-07-07T21:32:12.143Z","dependency_job_id":null,"html_url":"https://github.com/rsms/cocui","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rsms%2Fcocui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rsms%2Fcocui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rsms%2Fcocui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rsms%2Fcocui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rsms","download_url":"https://codeload.github.com/rsms/cocui/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225110575,"owners_count":17422411,"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","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":[],"created_at":"2024-10-13T18:43:49.546Z","updated_at":"2024-11-18T01:04:53.734Z","avatar_url":"https://github.com/rsms.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cocui\n\nCOCoa User Interface mockup.\n\nFor rapidly building functional Cocoa applications using WebKit (HTML, CSS and JavaScript).\n\n## Download\n\nLatest releases from [http://hunch.se/cocui/](http://hunch.se/cocui/dist/)\n\nCocui will keep itself up to date using [Sparkle](http://sparkle.andymatuschak.org/) and _requires Mac OS X 10.5 or later_.\n\n## What awesome stuff can I do with this?\n\nEveryone love bullet-points:\n\n- Write your app like a regular HTML page with javascript\n- Opening of files by associating your app with one or more file types\n- Retains the WebKit debugger, profiler, console and inspector developer tools\n- Unrestricted XHR (can load and interact with any resource on the web or local)\n- NSApplication events propagated as native Javascript events in your document (i.e. \"applicationWillBecomeActive\", etc)\n- Full control over window (resizing, minimizing, hiding, closing, etc through \"App.window\")\n- Full control over NSApp (terminating, etc through \"App.app\")\n- Access to NSUserDefaults (system-native application settings) through \"App.defaults\"\n- Single namespace exposes the \"bridge\" between Cocoa and Javascript -- \"App\"\n- Most of these things demonstrated in the demo app [resources/index.html](http://github.com/rsms/cocui/blob/master/resources/index.html)\n\nThe Javascript-to-Cocoa bridge enables access to most things, like your NSApplication and your NSWindow.\n\nYou can do stuff like this:\n\n\t\u003ca href=\"javascript:Win.miniaturize()\"\u003eMinimize application\u003c/a\u003e\n\nand\n\n\tvar window = App.loadWindow({\n\t  uri: 'index.html',\n\t  rect: { size: { width: 500, height: 400 } }\n\t})\n\twindow.makeKeyAndOrderFront();\n\nNative drag and drop is [already supported by WebKit](http://developer.apple.com/mac/library/documentation/AppleApplications/Conceptual/SafariJSProgTopics/Tasks/DragAndDrop.html#//apple_ref/doc/uid/30001233-BAJGJJAH).\n\n\n## Development mode\n\nDevelopment mode enables a series of tools, aiding development:\n\n- Interactive javascript console\n- DOM and CSS inspector\n- Javascript profiler\n- Javascript debugger\n- Resource tracker (aka \"the timeline\")\n- HTML5 database manager\n- Access to a streaming text log of messages both from your application (using console.log() etc) and from the runner core.\n- Quick restarting (reloading) of your app w/o restarting the actual process\n\nTo enable development mode for a Cocui application, set the boolean defaults key \"DevelopmentMode\" to `true` for.\n\nExample:\n\n\t$ defaults write my.cocui.app DevelopmentMode -bool yes\n\nYou need to restart the native app after changing this key. Afterwards, a new menu item will appear: \"Develop\".\n\nWhen creating new application projects using the Cocui app, DevelopmentMode is already set for you.\n\n\n## Creating a new project\n\nYou create a new app project by running the Cocui application. Choose a name and a UTI (and optionally a few other things, like icon and document types). Cocui will then create a new project for you and get you going. If you have TextMate or SubEthaEdit, your editor will launch together with your new application.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frsms%2Fcocui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frsms%2Fcocui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frsms%2Fcocui/lists"}