=>Android: Android Studio 를 설치해서 Java 나 Kotlin 언어를 이용해서 Application 개발
C++ 는 사용이 가능(NDK 설치)
Google 은 더 이상 Java 의 형태로 API를 제공하지 않겠다고 선언
Kotlin 은 JVM 기반의 언어입니다.
Kotlin 코드는 Java 의 Class 로 번역이 되서 실행됩니다.
Kotlin 이 가독성이 뛰어나고 함수형 프로그래밍 문법을 지원하기 때문에 최근의 기업들은 Kotlin으로 만드는 것을 권장
=>iOS(이제는 Mac 용 도 동일한 방법으로 생성) - Xcode를 설치해서 Objective-C(C++ 문법을 지원) 나 Swift 언어를 이용해서 Application 개발
🌱 장점
최신의 API(모든 센서 포함)를 전부 사용하는 것이 가능
빌드 속도가 빠름
🌱 단점
동일한 Application 을 서로 다른 운영체제에서 개발을 할 때 Learning Curve 가 길 가능성이 높습니다.(최근에는 Kotlin 이나 Swift를 사용하는데 2개 언어의 문법은 Python 과 거의 유사)
모바일 웹 앱을 만드는 것 보다 업데이트 속도가 느릴 수 있음 - 업데이트를 할 때 소스 코드를 수정하거나 Resource를 수정하게 되면 앱을 다시 빌드해서 마켓에서 승인을 받아야 하기 때문입니다.
=>모바일 웹 애플리케이션을 만들고 스마트 디바이스의 브라우저에서 접속을 하거나 스마트 디바이스의 WebView를 이용해서 접속해서 웹 애플리케이션을 사용하는 방식
=>여기서 등장한 개념 중의 하나가 Progressive Web(UI를 사용자가 사용하기 쉽도록 많이 사용하는 디바이스 기준에 맞추는 것 - 스마트 폰) 의 개념
🌱장점
대부분의 개발자가 알고 있는 웹 애플리케이션 개발을 수행하는 거라서 Learning Curve 가 짧다.
업데이트를 했을 때 반영이 빠름
🌱단점
스마트 폰 API(센서의 경우는 회전 과 터치 정도만 사용 가능, Web Socket 도 사용 불가능)의 대부분을 사용하기가 어렵습니다.
현재는 Apple 과 Google 모두 WebView 로만 구성된 애플리케이션은 마켓에서 reject 됩니다.
=>react-native, ionic: 웹 기술을 이용해서 애플리케이션을 제작하는 방식으로 프레임워크가 Native App 의 코드로 변경을 하는 방식
=>cordova: 웹 기술을 이용해서 애플리케이션을 제작하는 방식인데 프레임워크가 WebView를 만들어서 그 위에 HTML 페이지를 출력하는 방식
=>xamarin, flutter: xamarin의 경우는 MS에서 제작한 프레임워크로 C#을 이용해서 애플리케이션을 제작하고 flutter는 google이 제작한 프레임워크로 Dart 언어를 이용해서 애플리케이션을 제작
=>unity 3D, unreal: 3차원 게임 엔진을 가진 프레임워크, Unity는 C#을 기반으로 하고 unreal은 C++를 기반으로 합니다. 게임이나 아바타 등을 이용하는 애플리케이션 제작에 많이 이용
🌱 장점
iOS 와 Android 앱을 동시에 개발하는 것이 가능
스마트 디바이스의 API도 어느 정도 사용이 가능
🌱단점
프레임워크 자체의 업데이트 주기가 짧음
최신의 API를 사용하지 못하는 경우도 있음
스마트 디바이스 제조회사에서 reject을 시키는 경우가 있음
모든 API를 사용할 수 없기 때문에 Native Application 의 API 사용법을 어느 정도는 숙지를 해야 합니다.