space_story_sdk 0.0.9
space_story_sdk: ^0.0.9 copied to clipboard
A Flutter plugin for AR functionality using ARKit on iOS.
Space Story SDK #
Flutter용 AR 기능을 제공하는 SDK입니다. 현재는 iOS 플랫폼만 지원합니다.
요구사항 #
- iOS 13.0 이상
- 실제 iOS 기기 (시뮬레이터에서는 작동하지 않음)
- Flutter 3.3.0 이상
설치 #
pubspec.yaml에 다음을 추가하세요:
dependencies:
space_story_sdk:
git:
url: https://github.com/freegrowenterprise/space_story_sdk.git
ref: master # 또는 특정 태그나 커밋 해시
iOS 설정 #
-
iOS 프로젝트의 최소 버전을 13.0으로 설정하세요:
ios/Podfile에서:platform :ios, '13.0'
-
Info.plist에 카메라 및 블루투스 권한을 추가하세요:<key>NSCameraUsageDescription</key> <string>AR 기능을 사용하기 위해 카메라 접근 권한이 필요합니다.</string> <key>NSBluetoothAlwaysUsageDescription</key> <string>BLE 장치를 검색하기 위해 블루투스 권한이 필요합니다.</string>
Android 설정 #
android/app/src/main/AndroidManifest.xml에 다음 권한을 추가하세요:
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
사용 방법 #
-
SDK를 import 하세요:
import 'package:space_story_sdk/space_story_sdk.dart'; -
AR 화면을 표시하세요:
Navigator.of(context).push( MaterialPageRoute( builder: (context) => SpaceStorySdk.arView(), ), );
예제 코드:
import 'package:flutter/material.dart';
import 'package:space_story_sdk/space_story_sdk.dart';
class YourScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: ElevatedButton(
onPressed: () {
// AR 화면 열기
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => SpaceStorySdk.arView(),
),
);
},
child: Text('AR 화면 열기'),
),
),
);
}
}
기능 #
- AR 카메라 뷰
- 3D 큐브 표시
- 공간 인식
제한사항 #
- 현재는 iOS 플랫폼만 지원합니다.
- 실제 iOS 기기가 필요합니다 (시뮬레이터에서는 작동하지 않음).
- iOS 13.0 이상이 필요합니다.
- Android에서는 '지원하지 않는 플랫폼입니다.' 메시지가 표시됩니다.
라이선스 #
MIT License
BLE 장치 검색 기능 #
SDK는 BLE(Bluetooth Low Energy) 장치 검색 기능을 제공합니다. 주변의 BLE 장치를 쉽게 찾을 수 있습니다.
BLE 장치 검색 예제 #
// BLE 장치 검색
SpaceStorySdk.bleProvider.findNearbyDevice(
deviceName: 'FGB', // 찾고자 하는 장치 이름의 일부
onDeviceFound: (deviceName) {
print('장치 발견: $deviceName');
},
requiredRssi: -70, // 선택적: RSSI 임계값 설정 (기본값: -70)
scanDuration: 30, // 선택적: 스캔 지속 시간 설정 (기본값: 30초)
);
주요 메서드 #
findNearbyDevice(): 특정 이름의 BLE 장치를 검색하고 발견 시 콜백 호출deviceName: 찾을 장치 이름 (부분 일치)onDeviceFound: 장치 발견 시 호출되는 콜백requiredRssi: 근접성을 판단하는 신호 강도 임계값 (기본값: -70)scanDuration: 최대 스캔 지속 시간 (기본값: 30초)
기능 #
- 주변 BLE 장치 검색
- 장치 이름 기반 필터링
- 신호 강도(RSSI) 기반 근접성 판단
- 유연한 스캔 시간 설정
주의사항 #
- 블루투스 권한이 필요합니다
- 장치 검색은 백그라운드에서 수행됩니다
- 실제 BLE 장치가 필요합니다
음성 인식 기능 #
음성 인식 기능을 사용하여 특정 단어를 인식하고 게임 또는 상호작용을 구현할 수 있습니다.
음성 인식 예제 #
// 음성 인식 초기화
final isInitialized = await SpaceStorySdk.voiceProvider.initializeSpeech();
// 음성 게임 시작
SpaceStorySdk.voiceProvider.startVoiceGame(
targetWord: '안녕',
onResult: (recognizedText, isSuccess) {
if (isSuccess) {
음성 인식 게임 기능 #
Space Story SDK는 간단하고 효과적인 음성 인식 게임 기능을 제공합니다. 이 기능을 사용하면 특정 단어를 인식하는 음성 게임을 쉽게 구현할 수 있습니다.
주요 기능 #
- 목표 단어 인식
- 실시간 음성 인식
- 성공/실패 콜백 지원
- 간단한 인터페이스
사용 예시 #
// VoiceProvider 초기화
final voiceProvider = SpaceStorySdk.voiceProvider;
// 음성 인식 초기화
await voiceProvider.initializeSpeech();
// 음성 게임 시작
voiceProvider.startVoiceGame(
targetWord: '호랑이',
onSuccess: (recognizedText) {
print('성공! 인식된 단어: $recognizedText');
// 성공 로직 구현
},
onFailed: (recognizedText) {
print('실패! 인식된 단어: $recognizedText');
// 실패 로직 구현
},
);
주요 메서드 #
initializeSpeech(): 음성 인식 초기화startVoiceGame(): 음성 게임 시작targetWord: 인식해야 할 목표 단어onSuccess: 성공 시 콜백 (인식된 텍스트 반환)onFailed: 실패 시 콜백 (인식된 텍스트 반환)
stopVoiceGame(): 음성 게임 중지
주의사항 #
- 음성 인식은 디바이스의 음성 인식 엔진에 따라 성능이 달라질 수 있습니다.
- 인터넷 연결 및 마이크 권한이 필요합니다.
- 정확한 단어 인식을 위해서는 명확하고 또렷한 발음이 중요합니다.
지원 플랫폼 #
- iOS
- Android
- Web (제한적)
오류 처리 #
음성 인식 중 발생할 수 있는 오류를 적절히 처리하세요. initializeSpeech()의 반환값을 확인하여 음성 인식 가능 여부를 확인할 수 있습니다.