본문 바로가기

애플리케이션 개발/HRC(Home Remote Control)

2-0. 아이폰 앱과 웹 페이지 간의 통신

두 영역 간의 통신을 위해서는 두 가지가 구현되어야 한다. 

1. 아이폰 앱에서 웹페이지의 정보 가져오기

2. 아이폰 앱에서 웹페이지의 컨트롤 조작하기

 

첫 번째, 아이폰 앱에서 웹페이지의 정보를 가져와야 한다. 

처음 앱을 실행하면 이전에 내가 저장했던 상태들을 알아야 그것에 맞춰 앱을 띄울 수 있기 때문이다. 

이에 관해서는 3-1(taeminator1.tistory.com/4)에서도 말했듯이, HTML문을 Scrap 해서 정보를 읽을 것이다. 

 

두 번째로는 JavaScript파일을 아이폰 앱에서 실행시켜 웹페이지의 컨트롤을 조작할 것이다. 

예를 들어 앱에 있는 버튼을 누를 시 웹페이지의 버튼을 누르게 할 것이다. WebKit Framework에서 제공하는 evaluateJavaScript함수를 이용할 것이다. 

 

그런데 여기서 중요한 의문이 생긴다. "그냥 Web page를 띄우고, 그 속에 있는 컨트롤들을 조작하면 끝 아닌가??"

그렇다면 SwiftUI를 이용하여 Web page 띄우기(taeminator1.tistory.com/11)에서 했던 방법을 쓰면 바로 해결이 된다. 그리고 다른 기능이 필요하다면 .js 파일을 수정하기만 하면 된다. 

 

간단하게 구현할 수 있는 방법이긴 하지만, 앱의 완성도가 크게 떨어질 수 있다.

앱 자체가 웹페이지에 종속적으로 동작하기 때문에, 앱이 부자연스럽게 느껴질 것이다. 웹페이지의 UI와 앱의 UI의 차이, 아이폰 기종 간의 디스플레이 크기의 차이 등.. 사실 이 모든 것을 완벽하게 맞추는 것이 가능은 할까??

그리고 이후 앱에 다른 기능을 추가하는 것도 여러 레이아웃을 고려해야 하기 때문에 쉽지 않을 것이다. 

그 밖에도, 앱의 용도에 따라 완성도를 떨어 뜨리는 요인은 여러 가지가 있을 수 있다. (물론 그 용도가 웹페이지를 띄우는 것이라면, 그냥 띄우면 되는 것이고)

 

그래서 이렇게 돌아가려고 한다. 지금 편하고 간단하게 구현하는 것보다, 완성도가 중요하니까.