2017-10-25 1 views
2

질문하기 전에 먼저 배경 정보를 설명해 드리겠습니다.앱에서 다른 앱의 앱 기능을 사용하는 방법

저희 회사는 iOS 및 Android 용 앱을 개발 중입니다. 고객은 앱 (브랜드)을 사용하거나 앱에 기능을 통합하기로 결정할 수 있습니다. 우리의 응용 프로그램은 보드에 복잡한 알고리즘과 통신 프로토콜을 가지고 있기 때문에. 이러한 이유로 우리는 우리의 앱을 사용하는 대신에 통합하고자하는 의상 인을 위해 일종의 SDK를 제공하고자합니다.

우리는 BLE, NFC 및 GPS를 사용하기 때문에 자체 앱을 기본으로 만들기로했습니다. 문제는 대부분의 고객이 이미 대부분의 경우 하이브리드 응용 프로그램이 될 응용 프로그램을 보유하고 있다는 것입니다. 따라서 모든 플랫폼에 SDK를 만드는 "단지"는 거의 불가능합니다.

명심해야 할 또 다른 중요한 점은 고객이 우리의 완전한 의사 소통 과정을 이해할 필요가 없다는 것입니다. 우리 알고리즘/의사 소통 프로토콜을 다른 사람들에게주지는 않을 것입니다. 이 순간 독특한.

그럼 구체적인 질문입니다. 다른 API가 일종의 API처럼 우리 앱의 기능을 사용할 수 있도록 API의 일종으로 우리의 기능을 제공 할 수 있습니까? 즉, 우리의 응용 프로그램은 최종 사용자 스마트 폰에도 설치해야하지만 개별적으로 사용할 필요는 없습니다. 아이디어는 우리 고객의 앱이 API처럼 우리의 앱과 통신한다는 것입니다. 우리 앱은 우리의 하드웨어와 통신을하고 고객의 앱에 그 결과를 돌려줍니다. 앱 사용자는 포 그라운드에서 앱을 보지 않아야합니다. (나는 "게임 플레이"를 필요로하는 일부 게임에서 아이디어를 얻었습니다.)

나는 애플 리케이션 (애플 리케이션 간 통신)간에 데이터를 교환하는 방법이 있다는 것을 알고 있지만 이것도 API 종류처럼 사용할 수 있습니까?

+0

콘텐츠 공급자와 같은 뜻인가요? https://developer.android.com/guide/topics/providers/content-provider-basics.html – Kuffs

+0

잘 이해하면 이것은 응용 프로그램간에 데이터를 교환하기위한 것입니다. 이것은 우리가 필요로하는 해결책의 일부일뿐입니다. 우리는 다른 앱이 우리 앱의 완전한 기능을 (가능한 경우) 사용할 수있는 방법을 찾고 있습니다. 예 : 그들은 우리의 app이 "복잡한 것들"을 수행 할 수 있도록 우리의 app의 methodOne (params) 함수를 호출합니다. 메소드가 실행 된 후에 우리의 앱은 메소드가 성공적으로 실행되면 고객의 앱에 응답해야합니다. 이렇게하면 고객이 우리 기술/방법을 이해할 필요가 없으며 모든 모바일 플랫폼에 SDK/코드를 제공 할 필요가 없습니다. 어쨌든 고마워. – RoDo

+0

다른 앱에서 서비스가 필요하다고 말하면 BLE을 사용하여 데이터를 광고하고 앱을 설치하고 기능을 사용하고 싶다고 말하고 있습니까? – Godwin

답변

0

내 이해에 따라 특정 기능을 호출하거나 웹 API를 호출하거나 활동을 열고 뭔가를 쓰거나 팝업 대화 상자를 열고 뭔가 할 수있는 다른 앱이 필요합니다.

안드로이드 : 예치 BroadcastReciever으로 가능합니다. 특정 action의 말을 듣고 기능을 수행하기 만하면됩니다.

그래서 작업은 action을 제공하기 만하면됩니다.

+0

예, 웹 API와 같은 다른 응용 프로그램에서 우리 앱의 partikular 기능을 호출해야합니다. 가장 최적의 상황에서 최종 사용자는 앱이 사용되는 것을 보지 못합니다. 당신이 대답 해 주셔서 감사합니다, 나는 BroadcastReceiver를 확인합니다. – RoDo

+0

@RoDo 만약 당신이 어떤 데이터를 공유하고 싶다면'ContentProvider'를 사용하십시오. 당신이 어떤 프로세스를 원한다면 유일한 방법은'BroadcastReciever'입니다. 더 많은 정보를 원하시면 언제든지 대답을 편집하겠습니다. – Godwin

1

분명히이 답변은 안드로이드에만 관련된 것입니다. (IOS에 대해 별도의 질문을 할 수도 있습니다.)

가장 기본적인 것은 콘텐츠 제공자가 데이터를 교환하는 데 사용됩니다. 그러나 공급자 호스트에서 코드가 실행되어 해당 데이터를 추출하는 것을 방지 할 수있는 방법은 없습니다.

예를 들어 앱에서 특정 매개 변수를 사용하여 호출 할 때 복잡한 함수를 수행하고 간단한 데이터 테이블 (MatrixCursor)을 반환하거나 심지어는 간단한 True/False 응답 만 포함하는 콘텐츠 공급자를 호스트 할 수 있습니다 그 커서.

고객이 콘텐츠에 대한 호출을 위임 한 라이브러리에 메소드와 함수를 추가하여 자신의 프로젝트에 가져 와서 더 친숙하고 API로 만들 수있는 Android 라이브러리를 만들면이 사용법을 더욱 간단하게 할 수 있습니다 제공자 또는 메인 앱의 브로드 캐스트 리시버에 연결하면 자체 브로드 캐스트로 응답 할 수 있습니다.

보이지 않는 활동을 활용할 수도 있습니다. 앱이 UI가없는 활동을 호출합니다.

고객이 사용할 수있는 자체 포함 라이브러리로 호출 가능 코드를 생성하면 앱을 완전히 분리해야 할 필요성이 없어집니다.

관련 문제