새로운 프로젝트를 시작할 때마다 성장하고 싶고, 새로운 걸 배워 적용하고 싶은 마음이 든다.
이번 프로젝트에서는 모바일 어플리케이션 개발을 해보고 싶어 앱 개발 유형 5가지를 정리해 보았다.
PC에서 보는 웹을 모바일에서 보기 때문에 그에 맞는 사이즈로 변경한 웹사이트이다. '모바일 홈페이지' 라고도 한다. 안드로이드나 iOS등 OS에 상관없이 제작이 가능하나 페이지를 호출할 때마다 서버에서 정보를 다운로드해야 하는 '풀브라우징' 방식이어서 로딩 속도가 늦고, 모바일 특성상 이동을 해야 하는데 서버 접속 장애가 발생될 수 있어서 상당히 불안정하다. 데스크톱에서 웹사이트에 접속할 때와 같이 url이나 브라우저 검색을 통해 접근 및 이용이 가능하다.
OS기능 : 푸시 메시지, 블루투스, 위치기반 서비스, QR코드 인식, 주소록 연동, SNS 로그인, 인앱결제 등
모바일 웹보다는 모바일에 최적화되어 네이티브 앱 화된 것을 말한다. 모바일 웹에 사용되는 기술적인 언어를 사용하지만 '풀브라우징' 방식이 아닌 단일 페이지 모델을 사용해서 전환되기 때문에 모바일 웹보다는 빠른 실행속도를 유지한다. 모바일 웹과는 달리 별도의 url을 가지고 있으며, 기존 url 앞에 m이 붙어 있다.
ex) m.naver.com
우리가 흔히 말하는 '어플리케이션'을 의미한다. 모바일 기기에 최적화된 언어로 개발된 앱으로, 안드로이드 SDK를 이용해 Kotlin으로 개발하거나 iOS SDK를 이용해 Swift로 개발한다. 기기의 고유 정보에 직접 접근이 가능하여 아이디어 구현이 거의 가능한 앱이다. 마켓에 등록 및 판매가 가능하고, 다운 설치가 가능하다.
모바일 웹과 웹앱의 단점을 보완한 것이 하이브리드 앱이다. 앱 안에서 웹페이지를 불러오는 방식으로 실행된다. 외부형태는 네이티브 앱이라서 기기 고유의 정보를 읽고 변경할 수 있으며, 하드웨어(카메라, 센서)를 제어할 수 있고, 앱스토어나 안드로이드 마켓에 등록해서 판매도 가능하다. 브라우저 실행, 첫 페이지 로딩 지연, 모바일 고유 정보에 접근의 어려움 등 모바일 웹앱의 단점을 보완하였지만 네이티브 앱과 비교하면 성능 면에서는 많이 떨어진다. 주로 실시간으로 신규 콘텐츠와 정보를 노출해야 하는 서비스에서 사용한다.
한 가지 언어와 프레임워크로 안드로이드/iOS 양쪽 앱스토어에 출시할 수 있는 방식이다. 예를 들면(네이티브 코드가 아닌) React로 코딩을 하고, Javascript 코드로 컴파일한 후에, 안드로이드/iOS가 이 코드를 각자의 Javascript 엔진으로 실행하는 것이다.
https://brunch.co.kr/@uniher/21
http://uxstory.co.kr/blog/2018/08/10/app_list/