Skip to content

Commit 0b39b37

Browse files
committed
feat(core): initializeSdk API
1 parent c4891c0 commit 0b39b37

11 files changed

+57
-23
lines changed

example/package.json

+2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@
99
"ios": "expo run:ios",
1010
"web": "expo start --web",
1111
"prebuild:android": "expo prebuild -p android",
12+
"prebuild:android:clean": "expo prebuild -p android --clean",
1213
"prebuild:ios": "expo prebuild -p ios && echo $(cat ios/.xcode.env) > ios/.xcode.env.local",
14+
"prebuild:ios:clean": "expo prebuild -p ios --clean && echo $(cat ios/.xcode.env) > ios/.xcode.env.local",
1315
"prebuild": "yarn prebuild:android && yarn prebuild:ios",
1416
"typecheck": "tsc --noEmit",
1517
"theme:gen": "generate-theme-type src/Theme.ts",

example/src/App.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@ import * as React from 'react';
22

33
import { StyleSheet, View, Text } from 'react-native';
44
import { add } from '@react-native-kakao/share';
5-
import { initKakaoSDK } from '@react-native-kakao/core';
5+
import { initializeKakaoSDK } from '@react-native-kakao/core';
66

77
// console.log(M);
88
export default function App() {
99
const [result, setResult] = React.useState<number | undefined>();
1010

1111
React.useEffect(() => {
12-
initKakaoSDK();
12+
initializeKakaoSDK('5a9383961eadba5496cb4ff895e91a89');
1313
setResult(add(3, 7) + add(1, 222));
1414
}, []);
1515

package.json

+6-1
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,17 @@
3333
"ios": "yarn example ios",
3434
"dev": "yarn example start",
3535
"build:android": "yarn example prebuild:android",
36+
"build:android:clean": "yarn example prebuild:android:clean",
3637
"build:ios": "yarn example prebuild:ios",
38+
"build:ios:clean": "yarn example prebuild:ios:clean",
3739
"studio": "studio $(pwd)/example/android",
3840
"xcode": "open $(pwd)/example/ios/KakaoExample.xcworkspace",
3941
"pod:old": "yarn example pod:old",
4042
"pod:new": "yarn example pod:new",
41-
"build:docs": "rm -rf docs && typedoc"
43+
"build:docs": "rm -rf docs && typedoc",
44+
"codegen:android": "cd example/android && ./gradlew generateCodegenArtifactsFromSchema",
45+
"codegen:ios": "node node_modules/react-native/scripts/generate-codegen-artifacts.js --path example/ --outputPath example/ios",
46+
"codegen": "yarn codegen:android && yarn codegen:ios"
4247
},
4348
"devDependencies": {
4449
"@commitlint/config-conventional": "^17.0.2",

packages/core/RNCKakaoCore.podspec

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Pod::Spec.new do |s|
1717
s.platforms = { :ios => min_ios_version_supported }
1818
s.source = { :git => "https://github.com/mj-studio-library/react-native-kakao.git", :tag => "#{s.version}" }
1919

20-
s.source_files = "ios/**/*.{h,m,mm}"
20+
s.source_files = "ios/**/*.{h,m,mm,swift}"
2121

2222
# Use install_modules_dependencies helper to install the dependencies if React Native version >=0.71.0.
2323
# See https://github.com/facebook/react-native/blob/febf6b7f33fdb4904669f99d795eba4c0f95d7bf/scripts/cocoapods/new_architecture.rb#L79.

packages/core/ios/RNCKakaoCore.h

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
#ifdef RCT_NEW_ARCH_ENABLED
32
#import "RNCKakaoCoreSpec.h"
43

packages/core/ios/RNCKakaoShare.mm renamed to packages/core/ios/RNCKakaoCore.mm

+7-13
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,16 @@
11
#import "RNCKakaoCore.h"
2+
#import "RNCKakaoCore-Swift.h"
23

34
@implementation RNCKakaoCore
4-
RCT_EXPORT_MODULE()
5-
6-
// Example method
7-
// See // https://reactnative.dev/docs/native-modules-ios
8-
RCT_EXPORT_METHOD(multiply
9-
: (double)a b
10-
: (double)b resolve
11-
: (RCTPromiseResolveBlock)resolve reject
12-
: (RCTPromiseRejectBlock)reject) {
13-
NSNumber* result = @(a * b);
145

15-
resolve(result);
6+
- (RNCKakaoCoreManager*)manager {
7+
return [RNCKakaoCoreManager shared];
168
}
179

18-
- (NSNumber*)add:(double)a b:(double)b {
19-
return @(a + b);
10+
RCT_EXPORT_MODULE()
11+
12+
RCT_EXPORT_METHOD(initializeKakaoSDK : (NSString*)appKey) {
13+
[[self manager] initializeKakaoSDK:appKey];
2014
}
2115

2216
// Don't compile this code when we build for the old architecture.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import Foundation
2+
import KakaoSDKCommon
3+
4+
@objc public class RNCKakaoCoreManager: NSObject {
5+
@objc public static let shared = RNCKakaoCoreManager()
6+
7+
override private init() {}
8+
9+
@objc public func initializeKakaoSDK(_ appKey: String) {
10+
KakaoSDK.initSDK(appKey: appKey)
11+
}
12+
}

packages/core/ios/Utils.swift

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
//
2+
// Utils.swift
3+
// RNCKakaoCore
4+
//
5+
// Created by mj on 4/20/24.
6+
//
7+
8+
import Foundation
9+
10+
func debugE(_ msg : Any...){
11+
#if DEBUG
12+
if msg.count == 0{
13+
print("🧩",msg,"🧩")
14+
}else{
15+
var msgs = ""
16+
for i in msg{
17+
msgs += "\(i) "
18+
}
19+
print("🧩",msgs,"🧩")
20+
}
21+
#endif
22+
}

packages/core/src/index.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const LINKING_ERROR =
1010
const isTurboModuleEnabled = global.__turboModuleProxy != null;
1111

1212
const Module = isTurboModuleEnabled
13-
? require('./spec/NativeKakaoShare').default
13+
? require('./spec/NativeKakaoCore').default
1414
: NativeModules.KakaoShare;
1515

1616
const Native = Module
@@ -24,6 +24,6 @@ const Native = Module
2424
}
2525
);
2626

27-
export function initKakaoSDK() {
28-
Native.init();
27+
export function initializeKakaoSDK(appKey: string) {
28+
Native.initializeKakaoSDK(appKey);
2929
}

packages/core/src/spec/NativeKakaoCore.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import type { TurboModule } from 'react-native';
22
import { TurboModuleRegistry } from 'react-native';
33

44
export interface Spec extends TurboModule {
5-
init(): void;
5+
initializeKakaoSDK(appKey: string): void;
66
}
77

88
export default TurboModuleRegistry.getEnforcing<Spec>('RNCKakaoCore');

packages/share/RNCKakaoShare.podspec

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Pod::Spec.new do |s|
1717
s.platforms = { :ios => min_ios_version_supported }
1818
s.source = { :git => "https://github.com/mj-studio-library/react-native-kakao.git", :tag => "#{s.version}" }
1919

20-
s.source_files = "ios/**/*.{h,m,mm}"
20+
s.source_files = "ios/**/*.{h,m,mm,swift}"
2121

2222
# Use install_modules_dependencies helper to install the dependencies if React Native version >=0.71.0.
2323
# See https://github.com/facebook/react-native/blob/febf6b7f33fdb4904669f99d795eba4c0f95d7bf/scripts/cocoapods/new_architecture.rb#L79.

0 commit comments

Comments
 (0)