앱개발

  • 네이티브앱

    • 네이티브 앱은 모바일 기기에 최적화된 네이티브 언어인 JAVA, Kotlin, Swift 등을 이용하여 만든 앱이다.

    • 모바일 기기에 최적화돼있기 때문에 앱의 구동 속도가 빠르고 사용자들이 사용하기 편리하다는 장점이 있다.

    • 하이브리드 앱에 비해 구현할 수 있는 기능이 많고 보다 고급적인 기술들을 사용할 수 있다.

    • 안드로이드 앱과 ios앱을 개발할 때 각 언어가 다름으로 시간과 비용이 든다.

  • 하이브리드앱

    • 하이브리드 앱 일반 앱처럼 보이지만 웹을 기반으로 하고 있으며 네이티브 앱처럼 보여주는 형태의 앱이다.

    • 하이브리드 앱은 안드로이드 앱 개발과 ios앱 개발을 다른 언어를 사용하여 개발해야 하는 네이티브 앱과 달리 안드로이드 앱과 ios앱을 같은 언어로 개발할 수 있기 때문에 빠르게 앱 개발이 가능하고 유지보수 또한 용이하다.

    • 네이티브 앱에 비해 성능이 떨어진다는 단점이 있다.

JAVA

  • 선마이크로시스템즈의 제임스 고슬링이 개발한 객체 지향적 프로그래밍 언어이다.
  • 웹 애플리케이션 개발, 앱 개발, 서버, 임베디드 프로그래밍 등 다양한 분야에 사용된다는 장점이 있다. 앱 분야에서는 안드로이드 앱을 개발할 수 있는 네이티브 언어이다.
  • 역사가 깊은 언어이면서 사용자 수도 많기 때문에 오픈소스와 라이브러리가 많다는 장점이 있다.
  • 또한 많은 기업들이 이미 자바를 기반으로 하는 소프트웨어를 사용하고 있다는 장점이 있다.

Kotlin

  • 코틀린은 안드로이드 앱을 개발 할 수 있는 네이티브 언어이다.
  • 기존의 자바의 문제점을 보완하기 위하여 개발됐으며 자바보다 프로그래밍 작성을 간결하게 할 수 있다는 장점이 있다.
  • 기존 자바의 오픈소스/라이브러리를 사용할 수 있으며 안드로이드를 개발한 구글이 코틀린을 공식 언어로 지정했기 때문에 점차 많은 사람들이 앱 개발에 코틀린을 사용하고 있는 추세이다.
  • 단점이라면 자바에 비해 자료가 부족하다는 점이 있지만 구글이 공식 언어로 지정했기 이 단점은 점차 사라질 것으로 보인다.
  • 때문에 안드로이드 앱을 네이티브 언어로 개발하고 싶다면 Kotlin을 사용하는 것을 추천한다.

Swift

  • 스위프트는 ios앱을 개발하기 위한 네이티브 언어이다.
  • 공식적으로 지원하는 IDE는 애플의 Xcode, JetBrains의 AppCode, CLion이 있다.
  • 애플이 적극적으로 지원하고 있고 인기도 많기 때문에 ios 기반 앱을 개발하고 싶다면 Swift를 추천한다.

ReactNative

  • 리 엑트 네이티브는 페이스북이 개발한 오픈소스 모바일 애플리케이션 프레임워크이며 안드로이드 앱과 ios앱을 개발할 수 있는 하이브리드앱 언어이다.
  • 자바스크립트를 사용해서 안드로이드 앱과 ios앱을 모두 개발 할 수 있다는 점이 장점이다.
  • 웹브라우저를 사용하지 않고 네이티브 스레드와 통신하면서 앱을 구동시키기 때문에 웹앱에 비해 성능이 좋다.
  • 자바스크립트를 사용하기 때문에 프런트엔드 개발자 거나 자바스크립트를 사용할 줄 안다면 앱 개발이 가능하다.

  • 빠르게 개발을 필요로 하는 스타트업에서는 많이 사용하는 추세이지만 고차원적인 기술을 적용할 수 없다는 점과 네이티브 앱에 비해 성능이 떨어진다는 점이 단점이다.
  • 또한 네이티브 앱들의 라이브러리에 비해 그 수가 적고 공부를 할 수 있는 커뮤니티나 서적들이 부족하여 초보자들이 접근하기 어려운 언어이다.
  • 현재 리 엑트 네이티브 기반으로 운영되고 있는 앱에는 페이스북, 인스타그램, 에어비엔비 등이 있다.

Flutter

  • 플러터는 구글이 개발한 오픈소스 모바일 애플리케이션 개발 프레임워크이며 안드로이드 앱과 IOS 앱을 개발할 수 있는 하이브리드 앱 언어이다.
  • 플러터는 앱의 UI 프레임워크를 만들어 다양한 위젯과 레이아웃을 제공하기 때문에 UI를 개발할 때 편하고 쉽고 빠르게 개발 할 수 있다는 장점이 있다.
  • 하지만 Dart라는 언어를 사용하기 때문에 학습해한다는 단점과 이에 대한 서적이나 라이브러리 정보가 부족하기 때문에 학습이 어렵다는 단점이 있다.
  • 또한 구글이 지속적으로 지원할지가 불투명하다는 단점이 있다.