Skip to content

Instantly share code, notes, and snippets.

Avatar
🚀
Let's Launch This Thing!

Nishant Neeraj naishe

🚀
Let's Launch This Thing!
View GitHub Profile
@naishe
naishe / SomeComponent.tsx
Created October 15, 2021 11:45
fetch version from package.json
View SomeComponent.tsx
{/** Relative path of package.json from the component */}
<Text>{require('../../package.json').version}</Text>
@naishe
naishe / package.json
Created October 15, 2021 11:40
postversion script
View package.json
"scripts": {
"android": "react-native run-android",
"ios": "react-native run-ios",
"start": "react-native start",
"test": "jest",
// Append this new lifecycle script
"postversion": "cd android && ./gradlew bundleRelease"
},
@naishe
naishe / build.gradle
Created October 15, 2021 11:30
Update the version section
View build.gradle
defaultConfig {
applicationId YOUR_APPLICATION_ID
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
// UPDATE THESE VALUES WITH THE FUNCTION CALLS
versionCode getNumericVersionFromNpm()
versionName getVersionFromNpm()
}
@naishe
naishe / build.gradle
Created October 15, 2021 11:23
Add Scripts to android/app/build.gradle to pick version code and version name from package.json
View build.gradle
// Import JSON parser, place it at the top of the file
import groovy.json.JsonSlurper
// Read package.json and return `version` field
def getVersionFromNpm() {
// Read and parse package.json file from project root
def inputFile = new File("$rootDir/../package.json")
def packageJson = new JsonSlurper().parseText(inputFile.text)
@naishe
naishe / App.jsx
Created December 6, 2020 10:06
Deep Linking Push Notifications with React Navigation #0
View App.jsx
// Simple scenario without nested routes, without path parameters
function App() {
const navigation = useNavigation();
const [loading, setLoading] = useState(true);
const [initialRoute, setInitialRoute] = useState('Home');
useEffect(() => {
// Assume a message-notification contains a "type" property in the data payload of the screen to open
@naishe
naishe / App.tsx
Created December 6, 2020 09:51
Deep Linking Push Notifications with React Navigation #6
View App.tsx
// App.tsx
// only new changes shown, refer: https://gist.github.com/naishe/46dfb1e23612398e4bd525f03c001dd9
const linking: LinkingOptions = {
prefixes: ['myapp://', 'https://app.myapp.com'],
config: deepLinksConf,
async getInitialURL() { /* redacted */ },
subscribe(listener) {
const onReceiveURL = ({url}: {url: string}) => listener(url);
@naishe
naishe / App.tsx
Created December 6, 2020 09:46
Deep Linking Push Notifications with React Navigation #5
View App.tsx
// App.tsx
// only new changes shown, refer: https://gist.github.com/naishe/da4830b72eeb81f8a5e29b6e45692d86
const linking: LinkingOptions = {
prefixes: ['myapp://', 'https://app.myapp.com'],
config: deepLinksConf,
async getInitialURL() {
// Check if app was opened from a deep link
const url = await Linking.getInitialURL();
@naishe
naishe / open-app.sh
Last active December 6, 2020 09:37
Deep Linking Push Notifications with React Navigation #4
View open-app.sh
# Assuming you have a key, “settings”, configured in your
# linking config that points to a valid screen
# The following command should show you a popup asking
# which app you want to use to open this link and offer you
# two options (normally) between the browser and your app.
npx uri-scheme open https://app.myapp.com/settings --android
# The following command should open your app
# and lands you on the settings page
@naishe
naishe / App.tsx
Last active December 6, 2020 09:40
Deep Linking Push Notifications with React Navigation #3
View App.tsx
// App.tsx
// Deep links
const deepLinksConf = {
screens: {
HomeRoutes: {
initialRouteName: 'Home',
screens: {
Settings: 'settings',
Comics: 'comics/:comicsId',
@naishe
naishe / App.tsx
Last active December 6, 2020 09:37
Deep Linking Push Notifications with React Navigation #1
View App.tsx
// App.tsx
const App = () => {
return (
<NavigationContainer>
{/** Your routes here */}
<LoginSignupRoutes />
<HomeRoutes />
</NavigationContainer>
);
}