Swift, JINS MEME 애플리케이션 개발

9577 단어 XcodeSwiftJINSMEMEiOS

JINS MEME


JINS MEME
생활일지학과의 착용 가능한 장비는 안경이다.손목밴드 타입 많죠?
안경이기 때문에 머리로 가속도와 기울기를 측정하는 재미가 있다.
그리고 눈의 전위를 측정하여 눈의 운동과 윙크를 측정할 수 있다(ES모델만 해당).
2015/11/05 발매.발매 때부터 iOS용 SDK를 배포하고 측정 데이터 개발 응용 프로그램을 사용할 수 있다.
안드로이드를 위한 SDK도 새해에 나온다.

개요


그래서 iOS 앱을 바로 만드세요.

환경

  • Xcode 7.1 (El Capitan)
  • iPhone 6
  • iOS 9.1
  • JINS MEME ES
  • JINS MEME SDK 1.0.5
  • 단계


    프로젝트 작성


    가이드에 따르면 이런 느낌이에요.
  • Single View Application
  • Language: Swift
  • Devices: iPhone
  • SDK 배포


    위의 페이지에서 SDK 다운로드
    개발용과 애플 신청용 두 가지 틀이 있어 개발용으로 사용한다.framework/universal/MEMELib.framework를 생성된 프로젝트의 디렉토리로 복사합니다.
    또한 복사된 위 파일 (엔티티는 디렉토리) 을 Xcode Embedded Binaries 로 드래그합니다.

    Bluetooth 사용 권한 설정


    용량 > 배경 모드가 열리고 선택되어 있습니다Use Bluetooth LE accessory.

    Bridging Header 파일 제작


    프로젝트에서 새 헤더 파일을 만들고 다음import 문장을 기술합니다.
    #import <MEMELib/MEMELib.h>
    
    또한 Bridging Header 파일 경로는 구축 설정 > 빠른 컴파일러 - 코드 생성에서 지정됩니다.

    응용 프로그램 인증 코드 제출


    위의 페이지에서 응용 프로그램을 등록합니다.
    등록하면 응용 프로그램 일람 페이지에 표시됩니다.
    상세, 편집 단추를 누르면 응용 프로그램 인증 코드를 확인할 수 있습니다.

    코드 설명


    애플리케이션 검증

    AppDelegate.swift에 다음과 같은 내용이 기술되어 있다.
    AppDelegate.swift
    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        MEMELib.setAppClientId("<発行されたアプリID>", clientSecret: "<発行されたアプリSecret>")
        return true
    }
    
    이후 MEMELib.sharedInstance()에 대해 각종 처리를 호출하지만 1차sharedInstance()에 취득하기 전에 이 응용 인증 정보 설정이 필요하다.

    JINS MEME 연결, 데이터 가져오기


    여기에는 오류 처리, 모든 모델의 생명주기 관리 등 모든 것이 생략되어 있다.행동에 전념하다.ViewController.swift 아래와 같다.
    ViewController.swift
    import UIKit
    
    class ViewController: UIViewController, MEMELibDelegate {
    
        override func viewDidLoad() {
            super.viewDidLoad()
            MEMELib.sharedInstance().delegate = self
        }
    
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
        }
    
        func memeAppAuthorized(status: MEMEStatus) {
            MEMELib.sharedInstance().startScanningPeripherals()
        }
    
        func memePeripheralFound(peripheral: CBPeripheral!, withDeviceAddress address: String!) {
            MEMELib.sharedInstance().connectPeripheral(peripheral)
        }
    
        func memePeripheralConnected(peripheral: CBPeripheral!) {
            let status = MEMELib.sharedInstance().startDataReport()
            print(status)
        }
    
        func memeRealTimeModeDataReceived(data: MEMERealTimeData!) {
            print(data.description)
        }
    }
    
  • MEMELibDelegateimplement
  • MEMELib 실례의 delegate 속성에 자신을 대입하여 각종 사건을 통지
  • 1회sharedInstance() 호출 시 어플리케이션 인증을 실행하고 성공하면 호출memeAppAuthorized

  • 호출startScanningPeripherals(), BT에 연결된 JINS MEME 찾기
  • 이 코드는 사전에 공식 응용 프로그램 BT로 연결하는 전제 조건이다
  • JINS MEME를 발견하면 memePeripheralFound

  • 호출connectPeripheral(peripheral), 애플리케이션 시도 - JINS MEME 간 연결
  • 애플리케이션이 JINS MEME와 연결되면 memePeripheralConnected

  • 호출startDataReport()이면 정기적으로 데이터를 받아야 합니다...
  • 하지만 데이터를 가져오기 시작하지 않음
  • 이 코드를 보고 싶은데 startDataReport()의 반환을 검사하면 실패 코드
  • 가 반환됩니다
  • 이후 다음 오류가 발생했습니다
  • JinsQiita[5749:2461884] MEME Model Type Check: error = [(null)], errorDescription = [(null)]
    
    startDataReport() 성공하면 데이터가 memeRealTimeModeDataReceived로 흐를 것이다.

    그래서


    논단을 보니 같은 실수를 한 사람이 있었다.
    그러니 좀 지켜보자.
    누가 움직이면 알려주세요.

    2015-11-09 추기


    움직여!
    포럼 참조
    JINSMEME 데이터 전송 중
    데이터 모드를 변경할 수 없습니다.
    본사의 Official 응용 프로그램은 표준 모드를 사용한다
    이 모드에서 데이터를 보낼 때 이 현상이 발생합니다.
    Official 애플리케이션을 시작하지 않은 상태에서
    JINSMEME에 연결해서 사용할 수 있습니까?
    공식 응용 프로그램은 표준 모드로 실행되지만 독립 응용 프로그램은 실시간 모드이다.
    그래서 두 가지 모드는 동시에 이동할 수 없는 것 같다.
    공식 앱을 잘 막으면 잘 움직일 텐데, 이 기사의 코드에 문제가 하나 있다.
  • startScanningPeripherals()를 실행할 때 반드시 공식 응용 프로그램으로 연결해야 한다.
  • 본 보도의 코드는 startScanningPeripherals()부터 startDataReport()까지 끊임없이 실행되기 때문에 이 기간 동안 공식 응용 프로그램을 정지할 시기가 없다.connectPeripheral()의 호출은 조건없이 실행되고 갈고리 뽑기 등 사용자 사건의 형식이라면 피할 수 있지만 현재의 코드에 따라 동작하는 절차도 있기 때문에 미리 기록한다.
  • 공식 어플리케이션 측 설정 화면에서 한때 JINS MEME 차단
  • 설정 화면에서 다시 연결
  • 이후 공식 응용 프로그램은 플랫폼으로 이동하지 않거나 실시간으로 촬영을 하지 않고 닫는다
  • 자체 제작 어플리케이션 시작
  • 이 순서에 따라 공식 응용 프로그램의 표준 모드가 시작되지 않습니다.

    좋은 웹페이지 즐겨찾기