callstack / callstack/react-native-builder-bob
The C++ Turbo Module template uses a Kotlin implementation on Android
- Dominant language
- JavaScript
- Stars
- 3.2k
- Forks
- 228
- Avg merge
- 7d 12h
- Merged PRs (30d)
- 3
Description
### Description
I'm not sure if I'm missing something obvious but when creating the library template for a Turbo Module using C++ for Android & iOS there is a default example implementing a `multiply` function. However, on Android the implementation for this function is in Kotlin and it doesn't use the shared C++ library.
When the JS code calls `multiply` it comes into the code [here](https://github.com/callstack/react-native-builder-bob/blob/main/packages/create-react-native-library/templates/kotlin-library-new/android/src/main/java/com/%7B%25-%20project.package_dir%20%25%7D/%7B%25-%20project.name%20%25%7DModule.kt#L17).
Is there any reason why the `OnLoad.cpp` file isn't used to register the turbo module in this case as described here: [pure-cxx-modules#android](https://reactnative.dev/docs/the-new-architecture/pure-cxx-modules#android)
### Packages
- [x] create-react-native-library
- [ ] react-native-builder-bob
### Selected options
1. `npx create-react-native-library cppLibraryTest`
2. ? What is the name of the npm package? › cpp-lib-test
3. ? What type of library do you want to develop? › Turbo Module
4. ? Which languages do you want to use? › C++ for Android & iOS
### Link to repro
N/A
### Environment
```
System:
OS: macOS 15.0.1
CPU: (11) arm64 Apple M3 Pro
Memory: 90.06 MB / 18.00 GB
Shell:
version: "5.9"
path: /bin/zsh
Binaries:
Node:
version: 23.7.0
path: /opt/homebrew/bin/node
Yarn:
version: 3.6.1
path: /opt/homebrew/bin/yarn
npm:
version: 11.2.0
path: /opt/homebrew/bin/npm
Watchman:
version: 2025.02.17.00
path: /opt/homebrew/bin/watchman
Managers:
CocoaPods:
version: 1.16.2
path: /opt/homebrew/opt/ruby/bin/pod
```
Contributor guide
Assessment
This issue has not been assessed yet.