스마트폰 운영체제에 맞춰 개발된 앱. 안드로이드, iOS에서 사용하는 언어를 이용해 개발.
장점
단점
네이티브 앱 내에 내제되어 있는 웹 브라우저이다. 앱을 벗어나지 않고도 웹 브라우저를 띄울 수 있다. 프론트엔드 개발자가 작성한 코드가 앱 내의 웹뷰 컴포넌트로 임베딩된다.
웹뷰를 사용하는 이유?
- 네이티브 앱 개발의 단점을 커버치기 위해 사용.
- 앱 스토어 리스크 : 앱은 스토어를 통한 배포 프로세스이기 때문에 개발, 빌드 후 배포를 하더라도 바로 사용자에게 전달되는 것이 아니다. 각 스토어마다 앱의 가이드라인이 다르고 추후 정책이 바뀔 수 있기 때문에 리스크가 있음.
- 버전 이슈 : 앱 최신 버전이 업데이트 되면 사용자들은 앱 버전 업데이트를 해줘야 하는데 자주 업뎃이 되면 사용자의 사용성이 떨어질 수 있다.
- 개발자 풀 : 앱개발자들은 실제로 많이 없고, 회사에서도 잘 뽑지 않는다. 네이티브 앱 만으로 만들어진 거대한 서비스는 없다고 한다.
- 앱을 벗어나지 않는다는 점이 포인트. 유저들을 앱을 벗어나 다른 컨텐츠가 뜨게 되면 방금까지 사용하던 앱으로 돌아갈 확률이 감소하게 된다고 한다.
- 잘만든 웹뷰 화면들은 네이티브 앱인지 웹인지 분간이 어렵기 때문에 잘 만들면 서비스적 측면에서 더 나은 선택지가 될 수 있음.
- 더 많은 기능을 빠르게 제공(핵심!): 사용자들에게 기능들을 빠르게 제공하고 수정할 수 있다. 유저들의 피드백을 수용해 즉각적으로 반영하여 빠르게 서비스를 개선해 나갈 수 있다.
웹 개발자가 일반적으로 개발하는 일반 웹과 네이티브 앱에 들어가는 웹뷰는 개발 성격이 살짝 다르다. 앱은 화면과 화면 간의 전환이 정말 빠르고 자연스럽게 이뤄지므로 프레임이나 렌더링 성능이 좋아야 한다. 만약 웹뷰로 만들어진 페이지에서 화면 전환 시 렌더링이 늦어진다면 사용자 경험은 떨어진다.
웹뷰는 빨라야 한다. 그러므로 웹뷰는 일반 웹과 달리 다른 성능 지표를 생각하며 개발해야 한다.
한 가지 개발 언어와 프레임워크로 ios, 안드로이드 양쪽 스토어에 출시할 수 있는 개발 방법. 둘 이상의 플랫폼에서 돌아가는 앱을 만들 수 있다.
예) 구글 Flutter, 페이스북의 React Native
장점
단점
네이티브 앱처럼 보이고, 기능 또한 앱과 동일하게 구현되지만 웹 기술을 활용하여 만들어진 앱을 '웹앱'이라 한다. 네이티브 앱과 달리 웹 기반의 html, css, js 등을 활용하며, 별도의 앱 파일을 설치하지 않고 인터넷 브라우저 기반으로 작동된다.
앱 없이 인터넷을 통해 구동되는 것을 보면 일반 모바일 웹과 똑같은 것이라 느낄 수 있지만, 두 가지의 차이가 약간 있다.
- 모바일 웹 : PC를 기준으로 제작된 뒤 모바일 화면 규격에 맞게 폰트나 이미지 등을 바꾼 것.
- 웹 앱 : 처음부터 모바일을 기준으로 제작되어 이용자에게 훨씬 편안한 환경을 제공한다. 하지만 설치하는 앱이 아니므로 카메라나 음성 등 디바이스 자체 기능에 접근할 수는 없다.
++ 차이점
실행 방식에 차이가 있다. 모바일 웹은 화면의 일부분이 바뀔 때 전체를 서버에서 새롭게 불러오는 풀 브라우저방식, 웹앱은 변경이 필요한 부분만 바꾸는 단일 페이지 방식(Single page application)을 사용. 따라서 모바일 웹이 웹앱보다 속도가 느리다는 특징이 있음.
- 웹앱 : 모바일 화면도 구성한 웹
- 모바일 앱 : 모바일 화면만 구성한 앱
++ 차이점
웹과 앱의 장점을 하나로 합침. 하이브리드 앱은 네이티브 앱 + 웹앱 개발 방식을 모두 사용한다. 앱의 화면이나 기능 등 콘텐츠 영역은 웹 기반으로 제작하고 겉모습은 앱 마켓 등록과 설치를 위해 네이티브 앱으로 포장함. 두 가지 개발 방식을 이용하므로 웹과 앱의 API 모두 사용 가능하다. 따라서 웹앱에서는 불가능 했던 디바이스 자체 기능에 접근할 수 있게 된다.
장점
단점
software development kit. 어떤 소프트웨어를 만들기 위한 도구 모음. 그 도구 안엔 API도 있을 수 있다.
예) ios SDK를 다운받으면 개발자에게 ios 어플리케이션을 만드는데 필요한 모든 도구가 제공된다. 아이폰 시뮬레이션을 할 수 있는 시뮬레이터도 제공됨.
application programming interface. 모듈화되어 만들어진 것으로, 어떤 기능을 제어하거나 제공하는 인터페이스를 말함. 대부분의 어플리케이션은 API에 의존하고 있다.
예) 업로드 버튼을 클릭하면 업로드 된다거나,
계산기를 이용해 값을 얻을 수 있는 것.