Intro

프로토파이는 하나의 디바이스 안에서 일어나는 인터랙션 외에 채팅이나, 송금과 같은 디바이스끼리 주고받는 인터랙션도 간단히 프로토타이핑 할 수 있습니다.

Get Started

디바이스끼리 주고받는 인터랙션을 구현 하기 위해서는 Send Response와 Receive Trigger를 사용해야 합니다. 보내는쪽 디바이스에서 설정한 Send Response의 Message와 받는쪽 디바이스에서 설정한 Receive Trigger의 Message가 일치할 경우 Receive Trigger 하위의 response를 실행시키게 됩니다.

Send Response

Channel
통신하기 위한 채널을 선택합니다. 디바이스간 인터랙션을 구현하기 위해서는 프로토파이 스튜디오를 설정하면 됩니다. Android Broadcasting은 하나의 Android 디바이스 내에서 앱끼리의 통신을 위한 용도로 사용됩니다
Assign to Variable
센드 리스폰스에서 정의한 문자열과 리시브 트리거에서 정의한 문자열이 동일할 때 디바이스간의 인터랙션을 실행 시킬 수 있습니다
Message
Message와 함께 특정 값을 전달할 수 있습니다. 받는 쪽에서는 전달받은 값을 변수에 저장해서 사용할 수 있습니다.

Receive Trigger

Channel
통신하기 위한 채널을 선택합니다. 디바이스간 인터랙션을 구현하기 위해서는 프로토파이 스튜디오를 설정하면 됩니다. Android Broadcasting은 하나의 Android 디바이스 내에서 앱끼리의 통신을 위한 용도로 사용됩니다
Message
센드 리스폰스에서 정의한 문자열과 리시브 트리거에서 정의한 문자열이 동일할 때 디바이스간의 인터랙션을 실행 시킬 수 있습니다
Assign to Variable
Send response에서 message와 함께 특정 값을 함께 전달할 수 있습니다. 전달받은 값을 변수에 저장해서 사용하는게 가능합니다.

Example

Connect Devices

Windows나 Mac에 설치된 ProtoPie Studio는 여러대의 스마트 디바이스를 서로 연결해주는 허브 역할을 합니다. 스마트 디바이스와 ProtoPie Studio를 연결하거나 스마트 디바이스끼리 연결 시킬 수도 있습니다. 이러한 연결을 위해서는 모두 동일한 네트워크에 연결되어 있어야 합니다. 또는 USB를 통해 ProtoPie Studio가 설치된 컴퓨터와 스마트 디바이스를 연결 할 수도 있습니다. ProtoPie Studio와 스마트 디바이스를 연결하는 방법은 여기서 확인할 수 있습니다.

Interacting with other Android apps

Send 리스폰스와 Receive 트리거의 channel 로 Android Broadcast를 선택하면 Android Broadcasts를 통해서 Android 용 ProtoPie Player 에서 동작하는 pie 가 다른 앱과 메시지를 주고 받을 수 있도록 할 수 있습니다.

앱에서 ProtoPie 로 메시지를 보내려면 io.protopie.action.ONE_TIME_TRIGGER action 으로 Intent 를 만들어 broadcast 를 보냅니다.

val intent = Intent("io.protopie.action.ONE_TIME_TRIGGER")
intent.putExtra("messageId", "YOUR_MESSAGE_ID")
intent.putExtra("value", "123") // Optional
context.sendBroadcast(intent)

ProtoPie 에서 보낸 메시지를 앱에서 받으려면 io.protopie.action.ONE_TIME_RESPONSE 의 action 값을 가지는 Broadcast 를 받도록 BroadcastReceiver 를 생성하여 등록합니다.

val receiver = object : BroadcastReceiver() {
  override fun onReceive(context: Context, intent: Intent) {
    val messageId = intent.getStringExtra("messageId")
    val value = intent.getStringExtra("value")
    println("Message from ProtoPie. messageId=$messageId value=$value")
  }
}

val filter = IntentFilter("io.protopie.action.ONE_TIME_RESPONSE")
context.registerReceiver(receiver, filter)

FAQ

Language selector
TOP