두 영역 간의 통신을 위해서는 두 가지가 구현되어야 한다.
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의 차이, 아이폰 기종 간의 디스플레이 크기의 차이 등.. 사실 이 모든 것을 완벽하게 맞추는 것이 가능은 할까??
그리고 이후 앱에 다른 기능을 추가하는 것도 여러 레이아웃을 고려해야 하기 때문에 쉽지 않을 것이다.
그 밖에도, 앱의 용도에 따라 완성도를 떨어 뜨리는 요인은 여러 가지가 있을 수 있다. (물론 그 용도가 웹페이지를 띄우는 것이라면, 그냥 띄우면 되는 것이고)
그래서 이렇게 돌아가려고 한다. 지금 편하고 간단하게 구현하는 것보다, 완성도가 중요하니까.
'애플리케이션 개발 > HRC(Home Remote Control)' 카테고리의 다른 글
2-2. iOS에서 Web Scraping해서 정보 가져오기 (0) | 2020.08.16 |
---|---|
2-1. iOS 앱에서 JavaScript 함수 실행하기 (0) | 2020.08.09 |
1-1. SwiftUI로 iOS Application UI 구성 (0) | 2020.08.08 |
3-4. Node.js를 이용한 웹 페이지 작성(파일 read/write 구현) 2 (0) | 2020.08.02 |
3-4. Node.js를 이용한 웹 페이지 작성(파일 read/write 구현) 1 (0) | 2020.08.02 |