네이티브 앱, 하이브리드 앱, 크로스 플랫폼 앱 그리고 Flutter
저와 같이 네이티브앱을 개발하기 어려운 경우 보통 하이브리드 앱이나 크로스 플랫폼 앱을 선택하는 선택지에 놓이게 됩니다.
혼자서 개발을 진행해야하는 상황에서 Android, iOS 둘 다 개발해야 하는데 저 같은 주니어 개발자 입장에서 네이티브 앱을 두 가지 모두 개발하는 건 불가능하다는 생각을 했습니다.
차선의 선택이 필요했고 하이브리드 앱, 크로스플랫폼 앱 두 가지 중 한 가지를 선택하기로 했습니다.
일단 네이티브 앱, 하이브리드 앱, 크로스플랫폼 앱에 대한 개념 정리가 필요합니다.
네이티브 앱
Android는 Java 혹은 Kotlin, iOS는 Objective-C 혹은 Swift 등 특정 모바일 플랫폼에서만 사용 가능한 언어를 통해 만드는 앱입니다.
네이티브 앱 장점
- 하이브리드 앱, 크로스 플랫폼 앱보다 뛰어난 퍼포먼스
- 네이티브 API 호출을 통한 카메라, GPS 등의 손쉬운 접근
네이티브 앱 단점
- Android, iOS 각기 다른 언어와 환경에서 개발이 가능해야 함
- 해당 플랫폼에서 요구하는 언어에 제약적. 따라서 해당 언어와 플랫폼의 API를 다루는데 익숙해야 함
하이브리드 앱
기본적으로 네이티브 앱 + 웹앱으로 생각하시면 이해하기 쉬울 것이며, 네이티브 앱에 웹뷰를 띄워 웹앱을 실행시키는 것입니다.
하이브리드 앱 장점
- 네이티브 API와 브라우저 API 모두 사용이 가능
- HTML, CSS, Javascript 등 웹 기술을 사용하여 앱 개발 가능
- Android, iOS 두 개의 플랫폼 모두 대응 가능
하이브리드 앱 단점
- 네이티브 기능에 접근하려면 결국 네이티브 기술을 익혀야 함
- 하이브리드 앱이 Android, iOS 각 플랫폼에서 적절하게 실행되려면 그만큼의 노력이 필요
- 브라우저 성능에 따라 앱의 성능이 좌우됨
크로스 플랫폼 앱
네이티브 코드가 아닌 언어로 개발을 하고, Android, iOS가 이해할 수 있는 코드로 변환됩니다.
React Native, Flutter 등이 있습니다.
크로스 플랫폼 앱 장점
- Android, iOS 두 개의 플랫폼 모두 대응 가능
- 시간 절약 가능
크로스 플랫폼 앱 단점
- 네이티브로 변환하는 과정이 있기 때문에 네이티브 앱보다 퍼포먼스가 떨어질 수 있음
간단하게 세가지 앱의 장단점을 적어봤습니다.
저는 일단 1순위는 크로스 플랫폼 앱, 2순위는 하이브리드 앱으로 생각하고 있습니다. 그래서 Flutter와 Dart를 공부하고 있구요.
아직까진 웹 쪽 작업을 계속 진행 중이라 많은 시간을 투자하고 있진 못하네요..
그래서 미약하지만 공부하고 있는 Flutter로 IntelliJ에서 프로젝트 생성을 해보겠습니다.
Windows 10 PC에서 Intellij를 사용하여 Flutter 개발 환경 구축하기
상단 메뉴 File -> Settings -> Plugins의 marketplace에서 "Flutter" 검색 후 설치
기본적으로 Flutter 플러그인을 설치하면 Dart를 같이 설치해줍니다.
https://flutter.dev/docs/get-started/install/windows 주소를 통해 flutter sdk압축파일을 다운로드할 수 있습니다.
(또는 git clone https://github.com/flutter/flutter.git -b stable)
환경변수 설정
시스템 환경변수 편집 -> 고급 탭 -> 환경변수
환경변수의 Path 편집 windows 10 PC에서 Intellij를 사용하여 Flutter 개발 환경 구축하기
환경 변수의 사용자 변수 중 Path 항목에 플러터 SDK의 bin폴더를 추가합니다.
(예: C:\development\flutter\bin)
IntelliJ에서 프로젝트 생성하기
File -> New -> Project 새 프로젝트를 생선 합니다.
이후 Flutter 선택
위처럼 따라 하게 되면 기본 프로젝트가 생성됩니다.
생성된 프로젝트를 실행시키기 위해서는 에뮬레이터가 필요합니다.
Windows PowerShell에서 flutter doctor를 실행합니다.
저는 이미 Adroid Studio를 설치했기 때문에 연결된 디바이스가 없다고 나오지 않는데 에뮬레이터 설치가 안되어 있다면 연결 가능한 디바이스가 없다고 나올 겁니다.
https://developer.android.com/studio에서 안드로이드 스튜디오를 설치해줍니다.
설치 후 하단의 configure -> AVD Manager를 클릭합니다.
AVD Manager는 Flutter 에뮬레이터를 설정할 수 있도록 합니다.
이후 원하는 기기, android API level을 선택하고 이미지를 다운로드하시면 됩니다.
이미지를 다운로드하고다시 Windows PowerShell에서 Flutter doctor를 실행해보면 conneted device (1 available) 한 개의 디바이스가 연결 가능하다고 나오실 겁니다.
IntelliJ에서 에뮬레이터 설정이 정상적으로 된 것을 확인할 수 있습니다.
혹시나 no device가 보이신다면 refresh 버튼이나 IntelliJ를 재시작해주시면 보이실 겁니다.
이제 프로젝트를 실행시키면 정상적으로 에뮬레이터가 실행되는 것을 확인할 수 있습니다.
이제 첫걸음 떼었으니 앞으로 Flutter와 Dart 공부를 진행하면서 공부했던 내용들 정리 및 복습도 할 겸 계속 글을 쓸 계획입니다.
혹시나 잘못된 부분이 있다면 댓글로 남겨주세요.
댓글