본문 바로가기
App

Native Application과 Cross-Platform Application의 차이점

by 남행비 2023. 12. 15.

 

네이티브와 크로스 플랫폼이라는 용어는 안드로이드와 iOS를 비롯한 모바일 진영에 국한되지 않습니다.

소프트웨어를 운영체제별로 개발하는 기술을 네이티브, 여러 운영체제에서 동작할 수 있는 앱을 한 번에 프로그래밍하는 기술을 크로스 플랫폼이라고 합니다.

 

네이티브 앱(Native Application)이란 ?

네이티브 앱은 모바일 기기에 최적화되어 있는 모바일 앱으로, 안드로이드와 iOS와 같은 각 플랫폼에 특정 프로그래밍 언어를 사용하여 만들어진 앱이라고 한다.

 

안드로이드 앱의 경우 코틀린과 자바 언어를 활용하여 Goolge에서 제공하는 안드로이드 SDK를 이용하여 개발하고, iOS의 경우 스위프트와 Objective-C 언어로 애플에서 제공하는 iOS SDK를 이용하여 개발이 가능하다.

 

*  네이티브 앱은 컴퓨터로 접속이 불가능합니다.

 

요약 :

운영체제에 맞는 앱을 개발하는 방법을 네이티브 앱 개발이라고 합니다.

 

장점

네이티브 앱은 안드로이드와 iOS 각 모바일 OS 기반의 API로 개발하는 앱을 말하는 것으로 속도가 빠르고 안정적이며

다양한 퍼포먼스를 구현할 수 있어 사용자 경험의 질을 높이는 데 유리하다.

모바일 OS에서 제공하는 기능인 블루투스, 위치기반 서비스, 앱 결제 등에 자유롭게 접근이 가능하고, 디바이스 전체에 액세스 할 수 있어 주소록, 캘린더 등의 고유 정보도 활용 가능하다.

 

단점

네이티브 앱은 안드로이드와 iOS의 호환이 불가능하여 앱을 각각 따로 제작해야됨

유지 보수,개발 비용, 시간 등등 2배로 소요되며 수정이나 업데이트가 있을때 변경 후 각 앱 스토어의 심사를 통과해야 해서 늦게 반영될 수 있다.

 

크로스 플랫폼 앱(Cross-Platform Application)이란 ?

크로스 플랫폼 앱은 한 가지의 개발 언어와 프레임워크로 안드로이드, iOS 네이티브 앱을 만드는 개발 방식입니다. 네이티브 코드가 아닌 다른 개발 언어로 코드를 작성 후 각각의 OS가 이해할 수 있는 코드로 컴파일 한 후, 각각의 OS의 엔진으로 실행하는 방식이다.

 

대표적으로는 플러터 그리고 리액트 네이티브,자마린이 있다.

 

*대표적인 크로스 플랫폼 앱으로는 에어비앤비와 페이스북, 인스타그램이 있습니다.

 

요약 :

크로스 플랫폼 같은 소스 코드로 안드로이드 버전과 iOS 버전에서 모두 작동할 수 있는 앱을 만드는 개발 도구

장점

크로스 플랫폼 앱은 네이티브 앱과 다르게 한 가지의 코드로 2가지 플랫폼 앱을 모두 개발할 수 있다는 점에서, 개발 시간과 비용을 줄일 수 있다.

 

※ 내가 사용해본 크로스 플랫폼 앱으로 Flutter가 있는데 미리 만들어진 위젯 라이브러리를 사용하여 빠르게 만들 수 있어      서 편했고 시각적으로도 매력적인 UI 요소들을 만들 수 있었던거 같다.

   그리고 바로 옆에서 실시간으로 코딩 변경 사항을 볼 수 있는 핫 리로드 기능도 있어서 편했었다.

단점

 

각 운영체제에 특화된 방식으로 제작된 ‘순정’ 프로그램은 아니기 때문에 프레임워크마다 정도의 차이는 있지만, 네이티브 앱에 비해 성능을 100% 끌어올릴 수 없고 기기의 활용도 떨어집니다.

예를 들어 기존 네이티브 앱이 가지고 있는 동적인 요소 퍼포먼스를 100% 구현할 수 없으며 일반적으로 네이티브 앱에 비해 성능이 떨어져 느린 경우도 있고, 라이브러리가 다양하지않아 기능 구현이 어렵다고 한다.

 

또한 앱의 주요 기능을 업데이트할 때마다 양쪽 앱 마켓의 심사를 거쳐야 한다는 단점 역시 여전히 존재합니다.

 

※ 이러한 특성 때문에 크로스 플랫폼 프레임워크는 주로 한정된 자원을 가진 기기에서 비교적 단순한 기능으로 이뤄진 앱을 제작하는 데 사용합니다.

예를 들어 스케줄 관리 앱이나 쇼핑앱, 사진 보정 앱과 같이 캘린더, 카메라 등 스마트폰의기본 기능들을 활용하면서도 높은 성능을 요구하지 않는 앱을 개발하기에 적합합니다.

 

'App' 카테고리의 다른 글

Hilt  (1) 2024.02.15
클린 아키텍처  (0) 2024.02.14
디자인 패턴  (1) 2023.12.17
firebase(파이어베이스)란?  (1) 2023.12.17
Life Cycle(Android Activity Lifecycle)  (1) 2023.12.15