# Back-End

모바일 프로그래밍 플랫폼에 대한 정리

Native


Android

Java, Kotlin, XML

 

 

IOS

Object-C

Swift (추세)

 

 

 

Cross Platform


 

회사에 각 플랫폼 앱 전문 개발자가 존재하면 된다. 하지만, 개별적으로 개발한다는 것은 동일한 앱을 각 플랫폼에 개발해야 하기 때문에 리소스가 2배가 필요하다는 주장이 있다. 


모든 사용자를 차별없이 만족하기 위해선 모든 플랫폼의 앱을 제공해야했다. 조금 규모가 있는 기업이 아니라면 이러한 인력을 확보한다는 것은 만만한 작업은 아니다. 또한, 각 플랫폼 개발자는 해당 아키텍처에 특화 


심지어, iOS 앱을 능숙하게 개발할 수 있다고 하더라도, 안드로이드 앱을 전혀 개발할 수가 없다. 개발언어도 다르고, 프레임워크 구조도 너무 다르다. 결국 앱 개발자는 특정 플랫폼의 앱만 개발할 수가 있다. 


코드 운용이 전혀 다르다 보니, 테스팅도 완전히 분리되어 진행해야 한다. 개발 언어도 다르니 코드 재사용은 꿈같은 이야기다. 이러한 투자 비용을 줄이기 위해 하이브리드 웹앱 으로 개발하는 분위기가 일어났다.

각 플랫폼에서 원하는 사용자 경험을 제대로 전달하기가 대단히 어렵기 때문이다. 단지 흉내만 낼 뿐이다. 각 플랫폼 OS가 업데이트 되면 달라지는 사용자 경험을 따라잡기도 어렵다.

 

React Native

  • JS 
  • Facebook 제작 (Facebook, Instagram 등등)
  • 브릿지가 필요
  • 친숙한 언어
  • 방대한 라이브러리, 리소스
  • 네이티브에는 못미치는 퍼포먼스

 

 

Flutter

  • Dart 언어 사용
  • Google 제작
  • Architecture 리액트와는 다르게 브릿지가 존재하지 않는다. 대신 Dart와 C++로 만들어진다. 대부분 네이티브 부분에서 이루어지기 때문에 속도가 빠른편이다.

  • 훌륭한 UI 컴포넌트 내장 (
  • 잘 정리된 문서
  • Google 서비스와의 쉬운 연동 (Firebase)
  • 빠르고 훌륭한 성능
  • 원시코드로의 번역, Native에서의 렌더링
  • 기대해볼만한 기술

 

 

단점

  • Dart 언어를 익혀야함
  • React Native 보다 라이브러리, 리소스가 적음
  • 일자리가 적음

 

 

JS Dart 둘다 생소한 언어긴 한데

 

장래를 생각하면 React Native고 

잠재성, 퍼포먼스는 Flutter

 

장단점이 너무 확실해서 고르기가 어렵다

 

 

 

참조

 

https://drkein.github.io/kotlin/2018/03/26/what-the-flutter/

http://skillsocius.com/221416630843

https://ykss.github.io/

728x90