{"id":18905766,"url":"https://github.com/theos/headers","last_synced_at":"2025-05-15T20:05:34.382Z","repository":{"id":7757682,"uuid":"9125594","full_name":"theos/headers","owner":"theos","description":"Headers. Not for documents. Not the opposite of footers.","archived":false,"fork":false,"pushed_at":"2025-03-24T10:23:38.000Z","size":1260,"stargazers_count":346,"open_issues_count":3,"forks_count":94,"subscribers_count":20,"default_branch":"master","last_synced_at":"2025-04-08T04:12:13.135Z","etag":null,"topics":["objective-c"],"latest_commit_sha":null,"homepage":"","language":"C","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/theos.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2013-03-31T03:50:09.000Z","updated_at":"2025-04-01T12:01:18.000Z","dependencies_parsed_at":"2024-05-31T01:29:56.611Z","dependency_job_id":"68d35938-b3ed-4e46-9ae8-f98a5e4ab593","html_url":"https://github.com/theos/headers","commit_stats":{"total_commits":448,"total_committers":26,"mean_commits":17.23076923076923,"dds":0.6584821428571428,"last_synced_commit":"ea969daefb5026b3aaed326b2db2fac80e410df0"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theos%2Fheaders","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theos%2Fheaders/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theos%2Fheaders/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theos%2Fheaders/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/theos","download_url":"https://codeload.github.com/theos/headers/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254414499,"owners_count":22067272,"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":["objective-c"],"created_at":"2024-11-08T09:13:26.970Z","updated_at":"2025-05-15T20:05:28.915Z","avatar_url":"https://github.com/theos.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `theos/vendor/include`\nHeaders included with Theos for easy compilation of most projects out of the box.\n\n## Contributions are welcome!\nPlease send us headers you’ve put together that would be useful to the wider community. Be aware that we are looking for “clean” headers, *not* generated output from class-dump or a similar tool.\n\n## Code rules\n* Create headers only for what you use.\n* Follow the existing coding style.\n    * Objective-C properties should be in the style of `@property (attributes) type name;`\n    * Objective-C methods should be in the style of `- (type)methodName:(type)variableName parameter:(type)name;`\n    * Objective-C generics should be in the style of `NSDictionary \u003cNSString *, NSArray \u003cNSObject *\u003e *\u003e *variable`\n* C functions and variables (all symbols) should be declared using `FOUNDATION_EXPORT`\n\n    ```c\n    #import \u003cFoundation/Foundation.h\u003e\n\n    FOUNDATION_EXPORT int ExternalVariable;\n    FOUNDATION_EXPORT const int ExternalConstant;\n    FOUNDATION_EXPORT void ExternalFunction(int param);\n    ```\n* Initialisers and singleton (e.g. `sharedInstance`) methods should return `instancetype`.\n* Don't just copy and paste lines from class-dumps - replace `id` with the appropriate class. Also change `arg1` and the like, or in some cases class-dump-z’s guessed argument names, to something more appropriate. If you don’t know the type, Cycript or FLEX can be helpful:\n\n    ```console\n    $ cycript -p SpringBoard\n    cy# [SBBaconController sharedInstance].baconCurrentlyBeingEaten.class\n    @\"SBBacon\"\n    ```\n\n    Additionally, ensure the appropriate types are used. The most common ones are:\n\n    * `float` and `double` should usually become `CGFloat` or `NSTimeInterval`\n    * `int` and `long` should usually become `NSInteger`\n    * `unsigned int` and `unsigned long` should usually become `NSUInteger`\n\n    This is especially important when using the headers as reference for hooking. An incorrect Objective-C type encoding can cause problems.\n* Import all relevant public SDK headers for types used in the header. This usually means using `#import \u003cFoundation/Foundation.h\u003e` or `#import \u003cUIKit/UIKit.h\u003e`. For private types, prefer to use `@class` and `@protocol`. If not possible, for instance for subclassing and protocol conformance, import the private header defining the type.\n* For compatibility, prefer classic imports for modules:\n\n    ```objc\n    // Do:\n    #import \u003cFoundation/Foundation.h\u003e\n    #import \u003cobjc/runtime.h\u003e\n\n    // Don’t:\n    @import Foundation;\n    @import ObjectiveC.runtime;\n    ```\n\n    If modules are supported by the compiler, `#import` of headers from a module will be translated to equivalent `@import` statements.\n* Any headers under an [OSI-approved license](https://opensource.org/licenses) can be included here. Please add its license to [LICENSE.md](LICENSE.md).\n  * That being said, please try to avoid including headers that are vended by their respective authors in separate, cross-platform \"dev\" packages (e.g., `openssl`, `libarchive`, etc)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheos%2Fheaders","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftheos%2Fheaders","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheos%2Fheaders/lists"}