Ionic 접하기
휴... 이제는 Ionic이냐...
어찌어찌하다 배우려고 마음만 먹고 공부할 생각도 사용을 고려한적도 없던 Ionic을 보기로 했다. (그냥 쓰윽...) 우선은 Ionic 공식 사이트에서 친해지기 모드로 쑤욱~ 훑어보자. 일단 닥치고 시작하는게 최고!!!.
Ionic 공식 사이트
우선 계정을 만들고 Get Started를 눌러 천천히 살펴보자.
1. Install Ionic
$ npm install -g cordova ionic
2. Start a project
$ ionic start myApp tabs
명령어는 ionic으로 시작하며 start는 신규 프로젝트를 생성한다. 여기서는 공식 사이트에 나온 그대로의 명령어를 따라하여 myApp이라는 프로젝트를 생성하였다. 그러면 tabs는 뭐지??
Ionic은 ready-made app templates(미리 만들어 놓은 템플릿...)을 제공한다. 빈 템플릿까지 총 3가지의 템플릿 중 하나로 앱을 생성할 수 있다. 위의 명령어는 3가지의 템플릿 중 하나인 tabs를 선택하여 앱을 생성하는 명령어이다.
blank는 빈 템플릿의 앱을 실행한다. tabs는 하단의 메뉴 버튼을 제공하며 메뉴가 단순할 때 이용하면 효과적일 것 같다. sidemenu는 말 그대로 사이드 내비게이션 메뉴를 제공하는 템플릿이다.
3. Run it
자 그럼 실행해 보자. (앱등이는 아니고 아이맥, 맥북, 아이폰만 사용하는 관계로 맥에서만 테스트 해보았다.)
$ cd myApp
먼저 생성한 프로젝트의 디렉토리로 이동한다.
$ ionic platform add ios
그 후에 ios(여기서는 ios로 테스트했다. android는 android를 입력하면 된다.) ios 플랫폼을 추가하는 명령어를 실행한 후,
$ ionic build ios
빌드과정을 마친후 마지막 명령어를 입력한다.
$ ionic emulate ios
그러면 아래와 같이 시뮬레이터가 실행된다. (다시한번 말하지만 Mac OS에서 ios를 실행한 결과이다.)
물론, 이 외에도 웹브라우저에서 확인할 수 있는 serve 명령어와 앱스토어에 있는 Ionic View라는 어플을 이용해서 실행 및 확인하는 방법등이 존재한다.
Ionic은 무엇인가?
그럼 앱 개발자가 필요없겠네?!
대뜸 이런말부터 하면 좀 맞아야 된다.
장점 1. Native APIs
장점 2. 성능
당연히 기기 혹은 환경 등에 맞는 최상의 성능까지 끌어올릴 수 있다.
장점 3. 동일한 환경
단점 1. 언어(학습 혹은 개발자가 필요하다)
당연한 이야기지만 앱 개발에는 그에 맞는 언어가 필요하다. 그리고 플랫폼의 특정 API에 대한 선행지식이 반드시 필요하다. (그럼 Ionic은 아니냐!!!)
단점 2. 따로 개발해야한다.
단점 3. 비용의 상승
내가 좀 아재스러워서 그런지 아니면 변화를 싫어해서 그런지는 모르겠지만 단점들에 대해 거부감은 없다. (상기 내용은 Ionic in actions에 기술된 내용이다.) 그만큼 장점들이 (특히나 성능에 있어서는 더할나위 없이) 단점을 커버할만큼의 이점을 준다고 생각한다. 우선, 플랫폼에 맞는 전문지식을 가진 개발자가 있기에 프로젝트의 한 부분을 맡길 수 있고 또 그걸 바탕으로 안정적인 개발이 진행될 수 있으며 사후 품질관리 역시도 원활하게 수행할 수 있지 않을까?!
카메라, 사진첩의 접근이라든지, 위치기반 서비스가 필요한 곳이라면 모바일 웹으로는 대체할 수 없는 프로젝트들이 상당수 존재한다. (물론 안되는거 빼고 까라면 까겠지만 성능과 기능의 구현에서는 많은 차이가 날 것이다.)
그런데 왜 Ionic을 사용하는가?! (물론 어쩔 수 없을때 사용하게 된다.) 네이티브 앱 개발자가 존재하지 않을 때, 비교적 간단한 어플리케이션을 빠르게 만들어야 할 때 필요할 것이며 이 외에도 저마다의 이유가 여럿 있을것이다. 그중에서도 위의 네이티브 앱의 단점 3가지 중 3가지 모두가 부담이 되거나 가능하지 않을 때에는 하이브리드가 정답이 될 수 있을것이다. (이 부분은 지극히 개인적인 의견임!!!) 그 중에서도 AngularJS에 대한 경험이 있다면 Ionic 사용이 도움이 될것이다.
맛보기는 여기까지만...
'Front' 카테고리의 다른 글
JavaScript[ECMAScript] 2. 불리언 타입 (0) | 2016.07.08 |
---|---|
JavaScript[ECMAScript] 1. 데이터 타입 (0) | 2016.07.07 |
Angular Material (1) | 2016.06.17 |
AngularJS $watch (0) | 2016.06.16 |
HTML의 의미와 좋은 마크업 (0) | 2014.12.30 |