본문 바로가기

programming study/Etc

모바일 앱 개발의 현재와 미래

본 내용은 드림코딩 by 엘리님의 모바일 앱 개발의 현재와 미래 강의를 토대로 작성하였습니다.

 

1. Native

  • 애뮬레이션이나 호환 모드의 사용 등 외적인 지원 없이, 특정 하드웨어나 OS에서 그대로 실행되는 것
  • 각각의 다른 운영체제에서 각각 다른 프로그래밍 언어로 다른 개발툴을 이용해서 애플리케이션을 만들어 나감
  • 각각의 운영체제에서 추구하는 룩앤필을 잘 살릴 수 있음
  • 플랫폼에 최적화된 성능 뿐만 아니라, 문자, 메시지, 현재 위치, 음성 인식, 지문 인식, AR, VR 등등 운영체제에서 제공하는 다양한 API들을 사용
  • 개발 소요가 큼
  • 유지, 보수, 관리의 어려움
  • 일의 중복성

 

Android

  • 안드로이드 스튜디오 개발환경에서 안드로이드 운영체제가 제공하는 API를 활용하여 안드로이드 애플리케이션 개발
  • JAVA, Kotlin

 

iOS

  • Mac OS에서 Xcode를 사용하여 Mac OS가 제공하는 API를 활용하여 iOS 애플리케이션 개발
  • Objective C, Swift

 

2. Hybird App

  • 웹 기술을 그대로 사용하거나 최대한 많이 활용할 수 있는 하이브리드 앱
  • 안드로이드, iOS 각각에서 지원하는 WebView 활용
    • UI 컴포넌트
    • 웹 브라우저에서 페이지를 표기하는 부분만 나타냄
    • 지정한 URL만 표시할 수 있음
    • 애플리케이션과 묶어서 배포
  • 네이티브 API 사용 불가능
  • CORDOVA
    • 웹뷰를 한 단계 감싸면서 네이티브와 다리 역할을 해 주면서 네이티브 API 사용할 수 있도록 도와줌
  • 네이티브적 지식이 필요
  • WebView의 한계
  • CORDOVA와 함께 배포해야하므로 애플리케이션의 사이즈가 커질 수 있음
  • 성능상 문제

 

3. 크로스 플랫폼 앱

  • 하나의 프로그래밍 언어로 두 운영체제에서 동작하는 앱을 만드는 것을 말함
  • 중복적인 일을 피하기 위함
  • 네이티브의 룩앤필, 성능을 살릴 수 없음
  • 사용할 수 없는 네이티브 API가 있음
  • 애플리케이션이 지나치게 크로스플랫폼에 의존
    • 버그 해결의 어려움
    • 에어비앤비, 페이스북의 예시

 

React Native

  • JavaScript
  • 모바일 API를 이용해서 모바일 UI를 업데이트
  • JavaScript -> Engine -> Native APIs
  • 배포시에 JavaScript 코드와 이를 모바일 API로 번역할 수 있는 엔진과 함께 배포
  • 실시간으로 JavaScript 코드를 모바일 API를 이용해서 업데이트할 수 있음

 

Xamarin

  • C#

 

Flutter

  • Dart
  • Android, iOS, 리눅스, 윈도우
  • canvus라는 UI 컴포넌트를 이용해서 자체적으로 자신의 코드를 이해하여 화면에 그려 줌
  • 번역의 과정이 필요 없음

 

Reference

[드림코딩 by 엘리]모바일 앱 개발의 현재와 미래

'programming study > Etc' 카테고리의 다른 글

기초 JS, CS 상식 - 정규표현식  (0) 2022.11.21
정규표현식(4)  (0) 2021.11.20
정규표현식(3)  (0) 2021.11.19
정규표현식(2)  (0) 2021.11.18
정규표현식(1)  (0) 2021.11.17