설치 (Installation)
Appify SDK를 프로젝트에 설치하는 방법입니다.
NPM / Yarn
# npm
npm install @nolraunsoft/appify-sdk
# yarn
yarn add @nolraunsoft/appify-sdk
# pnpm
pnpm add @nolraunsoft/appify-sdk
CDN
<script src="https://cdn.jsdelivr.net/npm/@nolraunsoft/appify-sdk@latest/dist/appify-sdk.min.js"></script>
<script>
appify.initialize({ debug: true });
</script>
기본 사용법
SDK는 싱글턴 패턴으로 설계되어, 어디서 import해도 동일한 인스턴스를 사용합니다.
import { appify } from '@nolraunsoft/appify-sdk';
// 초기화 (앱 시작 시 한 번만)
await appify.initialize({ debug: true });
// 이후 어디서든 바로 사용
const deviceInfo = await appify.device.getInfo();
React 예시
Provider 설정 (권장)
앱 전체에서 SDK를 사용하려면 Provider 패턴을 사용하세요.
"use client";
import { ReactNode, useEffect } from "react";
import { appify } from "@nolraunsoft/appify-sdk";
export function AppifyProvider({ children }: { children: ReactNode }) {
useEffect(() => {
appify.initialize({ debug: true });
}, []);
return <>{children}</>;
}
import { AppifyProvider } from "./providers/AppifyProvider";
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<html lang="ko">
<body>
<AppifyProvider>{children}</AppifyProvider>
</body>
</html>
);
}
페이지에서 사용
Provider에서 초기화했으므로, 각 페이지에서는 바로 사용 가능합니다.
"use client";
import { appify } from "@nolraunsoft/appify-sdk";
export default function Home() {
const handleClick = async () => {
if (appify.isWebview) {
const info = await appify.device.getInfo();
console.log(info);
}
};
return <button onClick={handleClick}>디바이스 정보</button>;
}
싱글턴 패턴
SDK는 싱글턴으로 동작합니다:
- 여러 파일에서 import해도 동일한 인스턴스 사용
initialize()를 여러 번 호출해도 최초 1회만 실행window.appify로도 접근 가능 (브라우저 콘솔 디버깅 시 유용)
import { appify } from '@nolraunsoft/appify-sdk';
console.log(appify === window.appify); // true
CDN 사용
빌드 도구 없이 HTML에서 직접 사용할 수도 있습니다.
IIFE (스크립트 태그)
<script src="https://cdn.jsdelivr.net/npm/@nolraunsoft/appify-sdk@latest/dist/appify-sdk.min.js"></script>
<script>
appify.initialize({ debug: true });
</script>
ESM (모듈)
<script type="module">
import { appify } from 'https://cdn.jsdelivr.net/npm/@nolraunsoft/appify-sdk@latest/dist/appify-sdk.esm.min.js';
appify.initialize({ debug: true });
</script>
제공 파일
| 파일 | 용도 |
|---|---|
appify-sdk.js | IIFE (브라우저 전역) |
appify-sdk.min.js | IIFE 압축 버전 |
appify-sdk.esm.js | ES Module |
appify-sdk.esm.min.js | ES Module 압축 버전 |
appify-sdk.cjs.js | CommonJS (Node.js) |