space_story_sdk 0.0.9 copy "space_story_sdk: ^0.0.9" to clipboard
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 설정 #

  1. iOS 프로젝트의 최소 버전을 13.0으로 설정하세요:

    • ios/Podfile에서:
      platform :ios, '13.0'
      
  2. 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" />

사용 방법 #

  1. SDK를 import 하세요:

    import 'package:space_story_sdk/space_story_sdk.dart';
    
  2. 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()의 반환값을 확인하여 음성 인식 가능 여부를 확인할 수 있습니다.