{"id":15007826,"url":"https://github.com/tidev/alloy","last_synced_at":"2025-12-17T05:58:38.099Z","repository":{"id":3550769,"uuid":"4611433","full_name":"tidev/alloy","owner":"tidev","description":"Alloy is an MVC framework for the Appcelerator Titanium SDK","archived":false,"fork":false,"pushed_at":"2025-11-24T01:52:32.000Z","size":51258,"stargazers_count":961,"open_issues_count":21,"forks_count":898,"subscribers_count":132,"default_branch":"main","last_synced_at":"2025-11-24T06:09:41.574Z","etag":null,"topics":["npm-package","titanium"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tidev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","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},"funding":{"github":"tidev","liberapay":"tidev"}},"created_at":"2012-06-09T23:45:27.000Z","updated_at":"2025-11-24T01:51:21.000Z","dependencies_parsed_at":"2024-01-15T23:01:56.465Z","dependency_job_id":"0c8c92b8-7463-4d93-b7b0-2ce3d52c1676","html_url":"https://github.com/tidev/alloy","commit_stats":{"total_commits":3535,"total_committers":99,"mean_commits":"35.707070707070706","dds":"0.40763790664780764","last_synced_commit":"8afaa973636236346bd2eba3a789944d540d1a1e"},"previous_names":["appcelerator/alloy"],"tags_count":163,"template":false,"template_full_name":null,"purl":"pkg:github/tidev/alloy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tidev%2Falloy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tidev%2Falloy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tidev%2Falloy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tidev%2Falloy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tidev","download_url":"https://codeload.github.com/tidev/alloy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tidev%2Falloy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27778338,"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-12-17T02:00:08.291Z","response_time":55,"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":["npm-package","titanium"],"created_at":"2024-09-24T19:14:05.835Z","updated_at":"2025-12-17T05:58:38.085Z","avatar_url":"https://github.com/tidev.png","language":"JavaScript","funding_links":["https://github.com/sponsors/tidev","https://liberapay.com/tidev"],"categories":[],"sub_categories":[],"readme":"# Alloy\n\nAlloy is an MVC application framework by [TiDev](https://tidev.io) for the [Titanium SDK](https://titaniumsdk.com).\n\n## Getting Started\n\n* [Quick Start Guide]([http://docs.appcelerator.com/platform/latest/#!/guide/Alloy_Framework](https://titaniumsdk.com/guide/Alloy_Framework/Alloy_Getting_Started.html)) that covers _everything_ from installation to building your first app with Alloy.\n* Complete collection of [Alloy Guides]([http://docs.appcelerator.com/platform/latest/#!/guide/Alloy_Framework](https://titaniumsdk.com/guide/Alloy_Framework/Alloy_Guide/))\n* [Collection of sample apps]([https://github.com/tidev/alloy/tree/master/samples/apps](https://titaniumsdk.com/guide/Alloy_Framework/Alloy_How-tos/Alloy_Samples.html)) showing various aspects of Alloy in practice.\n\n## Installation\n\n### from npm:\n\n```bash\n# install the latest stable\n[sudo] npm install -g alloy\n\n# install a specific version\n[sudo] npm install -g alloy@1.4.1\n\n# install cutting edge directly from github\n[sudo] npm install -g git://github.com/tidev/alloy.git\n```\n\n## Running Sample Test Apps\n\nAlloy includes many sample and test apps in the **sample/apps** folder (see above). For example, [basics/simple](https://github.com/tidev/alloy/tree/master/samples/apps/basics/simple). You can run these in a few different ways:\n\n### A) With a regular Alloy installation\nBeginning with Alloy 1.6, you can do the following:\n\n```bash\n# first, create a Titanium Classic project\ntitanium create --name yourAppName\ncd yourAppName\n\n# then, convert it to an Alloy project, using the test app as a template\nalloy new . --testapp basics/simple\n```\n\n### B) By cloning the repo and using the Jake test runner\n\n```bash\n# first, clone the repo\ngit clone https://github.com/tidev/alloy.git\ncd alloy\n\n# install jake globally\n[sudo] npm install -g jake\n\n# install alloy globally from the cloned repo\n[sudo] npm install -g .\n\n# install alloy's local testing dependencies\nnpm install\n\n# run a test app\njake app:run dir=basics/simple\n```\n\n## Additional Notes on Jake\n\n* See the [jake readme](https://github.com/tidev/alloy/blob/master/jakelib/readme.md) for  information on using `jake` including the arguments and flags it accepts.\n* on OSX or Linux\n    * Try using `sudo` with the `jake` command if you run into permission errors.\n* on Windows\n    * Don't run `jake` from within a user folder (i.e. `C:\\Users\\tony\\alloy`), as you can get all kinds of non-obvious permissions failures from the child processing Alloy does. Your safest bet is to just `git clone` right to `C:\\alloy`.\n    * Node.js has [an issue piping output between node processes on Windows](https://github.com/joyent/node/issues/3584). I've tried to [workaround](https://github.com/joyent/node/issues/3584#issuecomment-23064579) as best I can. You may still see errors pop up, so it's suggested that if you run the automated testing via `jake test:all` or `npm test`, you do so on a non-Windows OS to ensure there's no red herring failures until the aforementioned node.js issue is resolved.\n    * If you decide to ignore my advice and run the tests anyway on Windows, make sure that if you imported the Harness into TiStudio that you _don't_ have TiStudio running. Windows creates locks on key files in that project that are necessary for the testing process. It will make tests fail erroneously.\n    * If you're still that stubborn, are running the test suite on Windows, and you're getting those intermittent, erroneous errors, try running them one spec at a time. Instead of doing `jake test:all`, do `jake test:spec[SPEC_NAME]`, where `SPEC_NAME` is JS file in the [test specs folder](https://github.com/tidev/alloy/tree/master/test/specs).\n\n## Update moment.js/Backbone/Underscore\n\n### moment.js\n\nDownload the latest ZIP from https://github.com/moment/moment and then copy /moment.js (not dist/moment.js!) into `Alloy/builtins` and the locale/* files (not dist/locale/* !) to `Alloy/builtins/moment/lang`. After that do a search \u0026 replace and replace all `require('../moment')` with `require('/alloy/moment')`.\n\n### Backbone\n\nDownload the development version from https://backbonejs.org/ and put it into `Alloy/lib/alloy/backbone` with the correct version number. Open `Alloy/common/constants.js` and add the version to `SUPPORTED_BACKBONE_VERSIONS`. Then you can use your apps config.json file to switch to that version. If you want to make it the default version you can edit `DEFAULT_BACKBONE_VERSION` and the config.json files in all `template/` projects.\n\nOpen the backbone.js file and replace `var _ = require('underscore'), $;` with `var _ = require('/alloy/underscore'), $;`. Use `console.log(Backbone.VERSION);` to check the version inside your app.\n\n### Underscore\n\nDownload the UMD (dev) version from https://underscorejs.org/ and replace `Alloy/lib/alloy/underscore.js`. Use `console.log(_.VERSION);` to check the version inside your app.\n\n## Contributing\n\nInterested in contributing? There are several ways you can help contribute to this project.\n\n### New Features, Improvements, Bug Fixes, \u0026 Documentation\n\nSource code contributions are always welcome! Before we can accept your pull request, you must sign a Contributor License Agreement (CLA). Please visit https://tidev.io/contribute for more information.\n\n### Donations\n\nPlease consider supporting this project by making a charitable [donation](https://tidev.io/donate). The money you donate goes to compensate the skilled engineeers and maintainers that keep this project going.\n\n### Code of Conduct\n\nTiDev wants to provide a safe and welcoming community for everyone to participate. Please see our [Code of Conduct](https://tidev.io/code-of-conduct) that applies to all contributors.\n\n## Security\n\nIf you find a security related issue, please send an email to [security@tidev.io](mailto:security@tidev.io) instead of publicly creating a ticket.\n\n## Stay Connected\n\nFor the latest information, please find us on Twitter: [Titanium SDK](https://twitter.com/titaniumsdk) and [TiDev](https://twitter.com/tidevio).\n\nJoin our growing Slack community by visiting https://slack.tidev.io\n\n## Legal\n\nTitanium is a registered trademark of TiDev Inc. All Titanium trademark and patent rights were transferred and assigned to TiDev Inc. on 4/7/2022. Please see the LEGAL information about using our trademarks, privacy policy, terms of usage and other legal information at https://tidev.io/legal.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftidev%2Falloy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftidev%2Falloy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftidev%2Falloy/lists"}