react-native hook dependency setting (feat.RN-0.76)

react 리렌더링에 큰 영향을 미치는 hook dependency. 예전에는 lint 로 hook dependency 체크해주는 설정이 잘 안되어 힘들었던 기억이 나서 정리해보고자 새로운 리엑트 네이티브 프로젝트를 생성했다. React re-rendering is significantly affected by hook dependencies. In the past, it was challenging for me to configure linting to check hook dependencies, so I created a new React Native project to document settings for managing them. 그런데 아무런 설정 없이도 hook dependency check 가 자동으로 잘 된다...? To my surprise, the hook dependency check works automatically, even without any additional setup. .eslintrc.js 파일을 살펴보니 (예전에는 자동으로 생성이 안되었던 것 같은데) After reviewing the .eslintrc.js file (which didn’t seem to auto-generate in previous versions), I found this configuration: ``` module.exports = { root: true, extends: '@react-native', }; ``` 하여 node_modules/@react-native 를 살펴보니 eslint-config/index.js 에 아래와 같은 설정을 발견 I explored node_modules/@react-native and found the following settings in eslint-config/index.js: ``` plugins: [ 'eslint-comments',

Modularization of react NativeModules


써드파티 SDK를 붙이는데 해당 업체에서 npm package 가 아닌 각 OS의 SDK 와 react native 코드를 주면서 앱에 내장하라는 가이드를 받았다.

물론 이를 그냥 앱에 넣을 수는 없어서 package 로 분리하는 작업을 하였다. 이 작업을 하며 겪었던 트러블슈팅을 정리하고자 한다.

# Android

## 자바와 코틀린간 패키지 참조 불가
build.gradle (app) 에 하단 설정 추가
```
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
```

## Could not find com.this.repo.

모듈의 example 프로젝트에서 받고자하는 sdk 라이브러리가 없다는 에러. example 프로젝트의 build.gradle 에 아래 코드를 추가하여 필요한 sdk 를 다운받을 수 있도록 한다.

Can’t find module in example project, and I fixed it adding below codes in build.gradle (example)

```
allprojects {
    repositories{
        maven { url 'https://repository.something/‘ } // change this line to download the sdk you aimed
    }
}
```

##  Workspaces can only be enabled in private projects.

모듈을 붙이고자 하는 프로젝트는 프라이빗 프로젝트이기 때문에 npm 에 퍼블리쉬되지 않은 패키지의 경우 package.json 에 "private:true" 를 추가해야 한다.

Because my project is “private:true”, If I want to add non-published package, the package should be “pritvate:true” in package.json



# ios

## xcframework 이란?
받은 sdk 중 ios 부분은 xcframework으로 이루어져있었다. 찾아보니 설명은 다음과 같다
XCFramework 번들은 Xcode로 만들어진 바이너리 패키지이며 다양한 플랫폼에서의 빌드 시 필요한 프레임워크와 라이브러리들을 포함한다.
그러므로 xcframework 은 arm64, x86_64 아키텍쳐를 모두 지원할 것으로 판단됨.
An XCFramework bundle, or artifact, is a binary package created by Xcode that includes the frameworks and libraries necessary to build for multiple platforms
So, xcframework means support arm64 and x86_64 both




Comments

Popular posts from this blog

Operating System Concepts 9th

카카오 내비 리엑트 네이티브 모듈 만들기 ft.코틀린

Operating System Concept