{"id":21290115,"url":"https://github.com/jumpn/react-native-jetifier","last_synced_at":"2025-07-11T14:32:10.383Z","repository":{"id":34980482,"uuid":"193823089","full_name":"jumpn/react-native-jetifier","owner":"jumpn","description":"React Native Jetifier","archived":false,"fork":false,"pushed_at":"2023-01-04T01:07:07.000Z","size":1315,"stargazers_count":16,"open_issues_count":14,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-28T07:04:18.002Z","etag":null,"topics":["android","jetpac","react-native"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/jumpn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-06-26T03:29:17.000Z","updated_at":"2022-09-14T17:47:18.000Z","dependencies_parsed_at":"2023-01-15T11:24:18.836Z","dependency_job_id":null,"html_url":"https://github.com/jumpn/react-native-jetifier","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/jumpn/react-native-jetifier","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jumpn%2Freact-native-jetifier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jumpn%2Freact-native-jetifier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jumpn%2Freact-native-jetifier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jumpn%2Freact-native-jetifier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jumpn","download_url":"https://codeload.github.com/jumpn/react-native-jetifier/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jumpn%2Freact-native-jetifier/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264414539,"owners_count":23604422,"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":["android","jetpac","react-native"],"created_at":"2024-11-21T12:44:55.779Z","updated_at":"2025-07-11T14:32:10.034Z","avatar_url":"https://github.com/jumpn.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# React Native Jetifier (@jumpn/react-native-jetifier)\n\n\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n\n\n- [Glosary](#glosary)\n  - [**Jetificable**](#jetificable)\n  - [**Jetificable Group**](#jetificable-group)\n  - [**Jetify**](#jetify)\n  - [**Jetification**](#jetification)\n- [Why this package exists?](#why-this-package-exists)\n- [How jetification is done?](#how-jetification-is-done)\n- [Installation](#installation)\n  - [Using npm](#using-npm)\n  - [Using yarn](#using-yarn)\n- [Usage](#usage)\n  - [Execute it after installation](#execute-it-after-installation)\n    - [Using npm](#using-npm-1)\n    - [Using yarn](#using-yarn-1)\n  - [Setup it to run on npm postinstall](#setup-it-to-run-on-npm-postinstall)\n    - [Using npm](#using-npm-2)\n    - [Using yarn](#using-yarn-2)\n  - [Commit the index file (`jetificableGroups.json`) to your repository](#commit-the-index-file-jetificablegroupsjson-to-your-repository)\n  - [Unjetify if needed](#unjetify-if-needed)\n    - [Using npm](#using-npm-3)\n    - [Using yarn](#using-yarn-3)\n- [License](#license)\n\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\n\n## Glosary\n\n### **Jetificable**\n\n\u003e A Java, Kotlin, or XML file with references to any Support class, now migrated to AndroidX.\n\n### **Jetificable Group**\n\n\u003e All the jetificables under a dependency (npm package).\n\n### **Jetify**\n\n\u003e Rewrite Support classes to AndroidX equivalents.\n\n### **Jetification**\n\n\u003e The process of jetify a jetificable.\n\n## Why this package exists?\n\nBy the end of 2018, Android released [Jetpack](https://developer.android.com/jetpack) that comprises a full rewrite of the [Support Library](https://developer.android.com/topic/libraries/support-library) now called [AndroidX](https://developer.android.com/jetpack/androidx).\n\nTo support this, they ask you to set the following properties with `true` in your [gradle.properties](https://developer.android.com/studio/build#properties-files) file:\n\n```\nandroid.useAndroidX=true\nandroid.enableJetifier=true\n```\n\nIn addition to this, you also need to require [artifacts](https://developer.android.com/jetpack/androidx/migrate#artifact_mappings) and import [classes](https://developer.android.com/jetpack/androidx/migrate#class_mappings) with their new names.\n\nSo you might be thinking, I've already done this on my App, so I still don't understand *\"Why this package exists?\", so let me answer this with another question:\n\n\u003e What about your dependencies?\n\nWhen we move to the world of [React Native](https://facebook.github.io/react-native), all your [dependencies](https://facebook.github.io/react-native/docs/linking-libraries-ios) instead of being libraries (`JAR, AAR, and ZIP files`) as they are in a normal Android App, they are **npm packages** and live under the **node_modules** folder, so this means that unless all the React Native packages (including React Native itself) you are using have already migrated to AndroidX, you will have to manually rewrite all the Support classes usages and point them to their respective AndroidX equivalent as the [Jetifier](https://developer.android.com/studio/command-line/jetifier) tool Android provides won't help you do this because it only handles Android libraries.\n\nYou can track the progress of React Native migration to AndroidX in this [issue](https://github.com/facebook/react-native/issues/23112) and I also recommend you to open an issue (if not already opened) and even better, submit a PR, to all your dependencies that haven't migrated yet.\n\n## How jetification is done?\n\n1. An index (**jetificableGroups.json**) file will be created (or updated if already there) under your package root with the jetificables of all your dependencies (npm packages).\n2. All the jetificables of your dependencies (npm packages) present in the index (**jetificableGroups.json**) will be jetified.\n\nThis process should be fast (under 10 sec) on the first run (no index available) and super extremely fast (aprox 2 sec) on the following executions (index available).\n\n## Installation\n\n### Using [npm](https://docs.npmjs.com/cli/npm)\n```console\n$ npm install --save @jumpn/react-native-jetifier\n```\n### Using [yarn](https://yarnpkg.com)\n```console\n$ yarn add @jumpn/react-native-jetifier\n```\n\n## Usage\n\nAfter having installed this package you will have an executable file called `react-native-jetifier` available under your `node_modules/.bin` folder.\n\nFollow the following steps that will ensude your dependencies (npm packages) will be jetified even if you decide to remove or add some:\n\n### Execute it after installation\n\nExecute `react-native-jetifier` to jetify your dependencies (npm packages) and create the index (`jetificableGroups.json`).\n\n#### Using [npm](https://docs.npmjs.com/cli/npm)\n\n```console\n$ npx react-native-jetifier\n```\n\n#### Using [yarn](https://yarnpkg.com)\n\n```console\n$ yarn react-native-jetifier\n```\n\n### Setup it to run on npm postinstall\n\nAdd it under the [npm postinstall script](https://docs.npmjs.com/misc/scripts) in your [package.json](https://docs.npmjs.com/files/package.json) to keep your dependencies jetified when you remove or add some.\n\n#### Using [npm](https://docs.npmjs.com/cli/npm)\n\n```json\n{\n  \"scripts\": {\n    \"postinstall\": \"npx react-native-jetifier\"\n  }\n}\n```\n\n#### Using [yarn](https://yarnpkg.com)\n\n```json\n{\n  \"scripts\": {\n    \"postinstall\": \"yarn react-native-jetifier\"\n  }\n}\n```\n\n### Commit the index file (`jetificableGroups.json`) to your repository\n\nSince all the jetificable paths are read from the index file (`jetificableGroups.json`) to improve perfomance, it's highly recommended to commit it to your repository so on a clean clone `react-native-jetifier` will use it instead of creating a new one.\n\n### Unjetify if needed\n\nI have been thinking for a while about the reasons you might want to do this and I found none, but well, if you want to unjetify your dependencies (npm packages) do the following:\n\n#### Using [npm](https://docs.npmjs.com/cli/npm)\n\n```console\n$ npm install --force\n```\n\n#### Using [yarn](https://yarnpkg.com)\n\n```console\n$ yarn install --force\n```\n\n## License\n\n[MIT](LICENSE.txt) :copyright: **Jumpn Limited**","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjumpn%2Freact-native-jetifier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjumpn%2Freact-native-jetifier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjumpn%2Freact-native-jetifier/lists"}