In-app browser, External browser
모바일 프로그래밍 환경에서의 인앱 브라우저와 외부 브라우저의 특징과 차이점을 알아보자
사전 지식
브라우저의 정의
인앱 브라우저와 외부 브라우저를 나누는 기준
간단하다, 브라우저가 "특정 어플리케이션에 종속되었는지의 여부"를 따지면 된다.
In-app browser란?
인앱 브라우저(In-app browser)는 내장 브라우저(Internal browser)라고도 하며 특정 어플리케이션에 종속된 브라우저를 뜻한다.
(In-App은 "앱 안에 속해있는" 이라는 뜻이다.)
특정 앱에 의해서만 호출되는 특수한 브라우저이며,
인앱 브라우저의 큰 특징은 다음과 같다.
1. 앱에서 소스코드로 인앱 브라우저의 상단바를 꾸밀 수 있다. (안드로이드)
2. 앱에서 띄운 인앱 브라우저는 앱에서 원격으로 종료할 수 있다. (패키지마다 가능 여부 다름)
3. 인앱 브라우저는 외장 브라우저와 캐시가 공유되지 않는다.
4. 인앱 브라우저를 닫으면 호출했던 앱으로 다시 돌아간다. (인앱 브라우저를 사용하는 제일 큰 이유)
5. iOS는 SafariViewController를 사용해 인앱 브라우저를 연다. (일단 iOS 13까지는 100%)
6. Android는 보통 WebView로 구현한 패키지가 많으나, 최근에는 ChromeCustomTabs로 구현하는 추세이다.
위 사진은 카카오톡 앱에서 인앱 브라우저를 통해 링크를 여는 장면을 보여준다.
사진에 보이는 브라우저는 카카오톡 앱에 종속된 것으로, 오직 카카오톡을 통해서만 실행할 수 있는 인앱 브라우저인 것이다.
위 두 사진은 스마트폰에서 실행중인 앱 목록을 보는 기능이다. 인앱 브라우저를 열었기 때문에 앱 위에서 웹 화면이 동작하고 있음을 보여준다.
여러 앱을 사용하다보면, 앱마다 인앱 브라우저를 다르게 꾸며놓은 것을 확인할 수 있다.
(당장 페이스북 앱의 인앱 브라우저만 봐도 엄청 다르다.)
External browser란?
외부 브라우저(External browser)는 특정 어플리케이션 외부에 별도로 설치된 브라우저를 뜻한다.
일반적으로, 모든 브라우저앱은 다른 특정 어플리케이션에 종속되지 않으므로 전부 외부 브라우저라고 생각하면 된다.
대표적으로
대부분의 안드로이드 폰에 기본으로 설치된 Chrome 브라우저
갤럭시 폰에 기본으로 설치된 Samsung Internet 브라우저
아이폰에 기본으로 설치된 Safari 브라우저
이외에도 FireFox나, Naver Whale 등 스마트폰에 설치해서 쓰는 브라우저 앱들은 전부 외부 브라우저이다.
위 두 사진은 스마트폰에서 실행중인 앱 목록을 보는 기능이다. 외부 브라우저를 열었기 때문에 앱과 브라우저앱의 인스턴스가 별도로 실행되고 있음을 보여준다.
앱에서 인앱 브라우저를 사용하는 이유
앱에서 링크를 열 때 인앱 브라우저가 아닌 외부 브라우저로도 실행할 수 있으나,
외부 브라우저는 호출한 앱의 제어권 밖에 있기 때문에 사용자가 프로그래머가 의도한 범위 밖의 동작을 하거나, 앱에서 브라우저를 원격으로 닫을 수 없는 문제 등이 발생한다.
그렇기 때문에 앱에서 일시적으로 웹 페이지를 보여줄 때는 인앱 브라우저를 사용하는 것이 좋다.
'Programming > 프로그래밍 이론' 카테고리의 다른 글
[프로그래밍 이론] HTTP forward와 redirect (2) | 2023.12.07 |
---|---|
[프로그래밍 이론] 두 점 사이의 절대각도를 재는 atan2 (3) | 2020.06.03 |
[프로그래밍 이론] 반각문자 @와 전각문자 @ (1) | 2019.10.10 |
[프로그래밍 이론] JWT (Json Web Token) (0) | 2019.04.19 |
[디자인 패턴] 팩토리 메소드 패턴 (Factory method pattern) (0) | 2019.03.20 |
댓글