{"id":13695840,"url":"https://github.com/kozaxinan/android-lints","last_synced_at":"2026-01-16T10:53:11.491Z","repository":{"id":41900579,"uuid":"249517173","full_name":"kozaxinan/android-lints","owner":"kozaxinan","description":"Custom set of android lints rules. ","archived":false,"fork":false,"pushed_at":"2025-12-16T12:33:07.000Z","size":3449,"stargazers_count":68,"open_issues_count":7,"forks_count":8,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-12-20T02:28:40.343Z","etag":null,"topics":["android","android-lint","android-lint-rule","kotlin"],"latest_commit_sha":null,"homepage":"https://medium.com/@sinankozak/android-lint-rule-for-immutable-kotlin-data-classes-5c91517c7611","language":"Kotlin","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/kozaxinan.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-03-23T18:52:04.000Z","updated_at":"2025-11-05T15:00:26.000Z","dependencies_parsed_at":"2024-11-01T01:17:59.554Z","dependency_job_id":"141d1016-062d-4337-b130-30e97aa53c4f","html_url":"https://github.com/kozaxinan/android-lints","commit_stats":null,"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/kozaxinan/android-lints","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kozaxinan%2Fandroid-lints","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kozaxinan%2Fandroid-lints/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kozaxinan%2Fandroid-lints/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kozaxinan%2Fandroid-lints/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kozaxinan","download_url":"https://codeload.github.com/kozaxinan/android-lints/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kozaxinan%2Fandroid-lints/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28478087,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T06:30:42.265Z","status":"ssl_error","status_checked_at":"2026-01-16T06:30:16.248Z","response_time":107,"last_error":"SSL_read: 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":["android","android-lint","android-lint-rule","kotlin"],"created_at":"2024-08-02T18:00:34.009Z","updated_at":"2026-01-16T10:53:11.468Z","avatar_url":"https://github.com/kozaxinan.png","language":"Kotlin","funding_links":[],"categories":["Rules"],"sub_categories":[],"readme":"# Android lints\nCustom set of android lints rules.\n\n[![](https://jitpack.io/v/kozaxinan/android-lints.svg)](https://jitpack.io/#kozaxinan/android-lints)\n\n### ImmutableDataClassRule - Error\nKotlin data classes should be immutable by design. Having var in a data class is code smell. Use copy() method when instance needs to be modified.\n\n### NetworkLayerImmutableClassRule - Warning\nClasses used in network layer should be immutable by design. This lint checks Retrofit interface methods' return type for immutability. Java classes need to have final fields and kotlin data classes need to have only val fields.\n\nIf you want to use this rule, please configure you lint.xml.\n```\n\u003cissue id=\"NetworkLayerImmutableClassRule\" severity=\"error\" /\u003e\n```\n\n### NetworkLayerClassSerializedNameRule - Information\nClasses used in network layer with Gson should use SerializedName annotation. This lint checks Retrofit interface methods' return type for SerializedName annotation. Adding annotation rule to prevent obfuscation errors. If you don't use Gson for Retrofit, this check is useless. That is why it is `infromation` level. \n\nIf you want to use this rule, please configure you lint.xml. \n```\n\u003cissue id=\"NetworkLayerClassSerializedNameRule\" severity=\"error\" /\u003e\n```\n\n### NetworkLayerClassJsonRule - Information\nClasses used in network layer with Moshi should use Json annotation. This lint checks Retrofit interface methods' return type for Json annotation. Adding annotation rule to prevent obfuscation errors. If you don't use Moshi for Retrofit, this check is useless. That is why it is `infromation` level. \n\nIf you want to use this rule, please configure you lint.xml. \n```\n\u003cissue id=\"NetworkLayerClassJsonRule\" severity=\"error\" /\u003e\n```\n\n### NetworkLayerClassJsonClassRule - Information\nClasses used in network layer with Moshi should use JsonClass annotation to generate the adaptor class. This lint checks Retrofit interface methods' return type for JsonClass annotation. If you don't use Moshi for Retrofit, this check is useless. That is why it is `infromation` level. \n\nIf you want to use this rule, please configure you lint.xml. \n```\n\u003cissue id=\"NetworkLayerClassJsonRule\" severity=\"error\" /\u003e\n```\n\n\n### NetworkLayerBodyClassJsonClassRule\nClasses used in as body with Moshi should use JsonClass annotation to generate the adaptor class. This lint checks Retrofit interface methods' body param for JsonClass annotation. If you don't use Moshi for Retrofit, this check is useless. That is why it is `infromation` level. \n\n```\n\u003cissue id=\"NetworkLayerBodyClassJsonClassRule\" severity=\"error\" /\u003e\n```\n\n# Usage\nLibrary is published to jitpack.io. After adding implementation to your module, lint will include new rules. \n\n[![](https://jitpack.io/v/kozaxinan/android-lints.svg)](https://jitpack.io/#kozaxinan/android-lints)\n\n```\nallprojects {\n    repositories {\n        ...\n        maven { url 'https://jitpack.io' }\n    }\n}\n\ndependencies {\n    implementation 'com.github.kozaxinan:android-lints:\u003cUseLatestVersion\u003e'\n}\n```\n\n# License\n\nCopyright 2020 Kozaxinan - Sinan Kozak\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkozaxinan%2Fandroid-lints","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkozaxinan%2Fandroid-lints","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkozaxinan%2Fandroid-lints/lists"}