2012-06-27 1 views
1

저는 모바일 개발에 새로운 사람입니다. 할 일이있어서 잃어 버릴 때까지 문제에 대한 해결책을 찾던 과거의 모든 날을 보냈습니다. 그래서 여기에서 최종 답변을 찾을 수 있기를 바랍니다.서버가 사용자가 알고있는 변경 사항에 대해 iOS/Android 앱에 알릴 수 있습니까?

저는 서버 (PHP & MySQL DB)를 가지고 있으며 서버에서 데이터를 검색하는 iOS + Android에서 모바일 앱을 개발하고 있습니다. 모바일 앱은 처음 실행될 때 서버에서 데이터를 가져와 휴대 전화에 저장해야하므로 다시 실행할 때마다 저장된 데이터를 가져와야합니다.

서버는 앱이 즉시 데이터를 업데이트하고 업데이트 할 수 있도록 변경 사항이있을 때마다 "사용자가 알지 못하는 채로"앱에 알려야합니다.

웹 서비스 (아마도 REST와 RestKit)를 사용하거나 서버 레코드에 일종의 타임 스탬프를 적용하는 방법에 대해 생각했습니다.

내 문제는 변경이 일어날 때마다 서버 자체가 변경 사항을 앱에 알리고 앱이 새로운 데이터를 업데이트 할 수 있도록 허용하는 방법을 찾을 수 없다는 것입니다. 푸시 알림을 사용하는 것에 대해 생각했지만, 특히 iOS에서는 사용자로부터 숨길 수 없습니다.

이렇게 할 수있는 방법이 있습니까? 복잡한거야? 그럴 가치가 있니? 다른 제안?

내가 말했듯이 나는 어쩌면 내 생각이 틀 렸기 때문에 그럴 때가 너무 유감스럽고 질문을 검색하여 내 질문에 대한 답을 알아 내지 못했습니다.

답변

1

적어도 iOS에서 해결 방법은 Apple Push Notifications를 사용하는 것입니다. 당신이 방해되고 싶어하고 가능한 한 투명하게하지 않으려면 다음과 같이, 당신이 원하는 "통지"어떤 종류의 신호를 정의 할 수 있습니다 : 백그라운드 프로세스에 관해서는

[[UIApplication sharedApplication] registerForRemoteNotificationTypes: 
     (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)]; 

, 내가 돈을 네가 그렇게 할 수있을 것 같아. Apple은 백그라운드에서 수행 할 수있는 작업 (백그라운드 스레드가 아니라 애플리케이션에없는 동안 작동중인 프로세스)에서 매우 엄격합니다. 내가 알리는 것은 알림 배지를 사용하는 것이므로 사용자는 새로운 내용이 있음을 알게되고 응용 프로그램에 들어가면 업데이트를 시작할 수 있습니다.


나는 야세에 동의해야합니다 : 사용자가 인식하지 않은 경우

왜 데이터를 업데이트?

가능한 한 사용자 친화적이어야합니다. 사용자가 응용 프로그램이 리소스를 소비 할 수 있다는 사실을 알리지 못하게하는 것은 제 의견입니다. 2MB의 정보를 업데이트하고 사용자가 3G를 사용하고 있다고 상상해보십시오 ...

+0

예를 들어, 앱의 일부는 전문가 프로필을 표시합니다. 여기에서는 새로운 전문가를위한 알림을 사용하여 사용자가 알고 싶지만 때로는 기존 전문가의 세부 정보가 변경 될 수 있으므로 모든 변경 사항에 대해 사용자를 괴롭 히고 싶지는 않습니다. 그것은 이러한 종류의 변화가 크지 않을 것입니다. 어쨌든 나는 더 좋은 해결책이 없다면 그것을 사용할 수 있다고 생각한다. – Shanx

+0

하지만 이러한 종류의 변경 사항을 적용하면 응용 프로그램을 시작할 때 업데이트 할 수 있습니다. 사용자에게 알릴 필요없이 변경 사항을 백그라운드에서 다운로드하면됩니다. –

+0

그래, 어떻게 될지 그게 보인다. – Shanx

1

당신이하려는 것을 설명 할 수 있습니까? 기존의 관용구는 응용 프로그램이 시작될 때 데이터를 업데이트하는 것입니다 (사용자가 연결되어 있지 않은 경우 캐싱 된 버전을 사용할 수 있습니다) 사용자가 알지 못하는 경우 데이터를 업데이트해야하는 이유 그것?

+0

아니요, 클라이언트에서 요청할 때마다 서버에서 데이터가 변경 될 때마다 데이터가 업데이트되어야합니다. 첫 번째 실행 만 서버에서 데이터를 가져옵니다 (또는 설치하는 동안). 사용자가 알지 못하게하는 것과 관련하여, 많은 업데이트가 세부 사항 변경과 관련되어 있고 각 세부 사항에 대해 사용자에게 알리는 것이 그를 괴롭힐 수 있기 때문에. – Shanx

1

귀하의 질문에 바로 따라 가는지 확신 할 수 없지만 서버에 변경 사항이 적용되었음을 알리고 해당 변경 사항을 사용자에게 알리 길 원합니다.

iOS Push Notificaton Tutorial

나는 약간의 안드로이드 경험을했습니다 당신이 원하는 시간 제한 어떤주기에 서버를 확인하기 위해 cron 작업을 실행 한 다음 중 하나 (iOS에서) 사용자에게 푸시 알림을 보내지 만 해당 기기에서 푸시 알림을 수행하는 것이 더 끈적한 것처럼 보입니다.

이 도움이 될 : (D 나는 확실히 누군가가 곧 생각에 저를 수정합니다 해요) :

Android Push Notifications

1

을 그것은 응용 프로그램의 사용자가 인식하지 못하게 iOS에서 불가능합니다 - 서버 측이 경우이다에서 유일한 방법은 당신이 ...

  1. 를 응용 프로그램 데이터를 업데이트 할 수 있습니다 ... 응용 프로그램이 열려 있고
  2. 열린 TCP 연결을 들고 ... 그렇게 (푸시 메시지를 보내 사용자 op 응용 프로그램 실행)

두 경우 모두 사용자는 응용 프로그램이 실행 중임을 인식합니다. 사용자가 앱을 사용하는 동안 백그라운드에서 데이터를 업데이트 할 수 있습니다. 푸시 메시지를 사용하여 사용자가 앱을 열도록 할 수 있습니다. 하지만 그게 전부입니다. 당신은, 그러나 그것은 등

0

배터리를 소모하는 경우 응용 프로그램 데이터는 당신이해야 업데이트를 들어 사용자가 앱을 제거하는 것을 잊지 마세요, 응용 프로그램이 백그라운드 서비스를 실행 할 경우 안드로이드에

좀 더 가능성이있을 수 있습니다 서버의 데이터 버전을 확인하십시오. 가장 좋은 방법은 사용자가 응용 프로그램을 시작할 때마다 서버에 문의하도록 응용 프로그램을 만드는 것입니다. 사용자가 app -> app을 실행하면 RESTful API 스타일의 새 데이터가 있는지 서버에 묻습니다.> yes/no -> if 서버 응답 거기에 새로운 데이터가, 응용 프로그램을 장치에로드합니다.

관련 문제