요즘은 무료로 독학 할 수 있는 자료가 많아(유튜부만 봐도 쉽게 잘 알려주는 분들이 많다.)
먼저 어떤것을 선택해서 공부를 해야할지 알아보았습니다.
제가 검토한건 이런것이었습니다.
<검토사항>
1. 어떤 OS(안드로이드와 IOS 둘중)를 기준으로 해야할까?
2. 어떤 개발도구를 사용할까?
그런데 찾다 보니 안드로이드와 둘 다 개발 가능한 것이 있었습니다.
1. React native
2. Codova
3. Futter
계속 공부해 오던 분야가 아니기 때문에 동향이나 어떻게 공부하면 좋은지
망설여 졌습니다.
그래서 우선 위의 것들의 장단점을 알아보았습니다.
1. React-Native
[장점]
1) ios, android를 동시에 개발하기가 쉽다.
react(javascript)의 문법만 익혀서 개발하면 되기 때문에 부담이 덜 할것이라고 합니다.
애니메이션 보단 정보 제공이 목적인 화면 구성에 적합한것 같습니다.
2) 핫 리로드(Hot Reload) 와 라이브 리로드(Live Reload)
수정하면 바로 반영 된다고 합니다.
모든 단점을 잊게 만들 정도로 좋다고 하네요.
3) 코드 푸쉬(code-push)
앱을 심사 없이 수정이 가능하게 해주는 라이브러리 모둘이리고 합니다.
javascript단의 코드와 assets(이미지, 폰트 등) 의 요소들을 심사없이 업데이트 할 수 있다고 합니다.
(앱에 문제가 발생할 경우 웹처럼 심사없이 즉각 대응)
4) 웹 확장 유리
5) 개발 툴 필요없음
[단점]
1) 유지보수가 힘듬
문제 발생 시 원인 찾기 힘들다고 합니다.
2) 한국어로 된 개발 자료 부족
(초급 개발자의 입문 힘들 것으로 예상)
3) 국내 개발자 부족
(후임자 찾기 힘듬)
3) 복작합 UI구현 힘듬
4) 난이도 높은 애니메이션 기능 구현 힘듬
youtube에서 [react native 강좌]로 검색해 보았습니다.
이정도면 간단히 이해하고 몇몇 앱을 따라 만들기에는 충분할 것 같습니다.
2. codova
[장점]
1) 배우기 쉽다.
웹 개발 가술들을 쉽게 모바일 앱에 적용 할 수 있다고 합니다.
2) 네이티브 기능에 접근하기
예를 들어 카메라, 연락처, 위치, 미디어, sms 등의 기능에 접근할 수 있다고 합니다.
3) 무료
4) 오픈소스
5) 큰 커뮤니티
6) 멀티 플랫폼
[단점]
1) 부족한 참조 문서
2) 네이티브 보다 느림
기본적으로 웹뷰 안에 포함되어 있는 웹앱이라 앱의 종류에 따라 네이브로 만드는게 더 좋다고 합니다.
3) 프레임워크
인터페이스 컴포넌트, 애니메이션, 그리고 네이티브 앱에서 찾을 수 있는 대부분의 것들이 달려지있지 않아
직접 추가 시켜야 한다고 하네요. 으때문에 유저 인터페이스를 구성할때 Ionic 또는 Onsen UI 같은 프레임 워크에
의존 한다고 합니다.
youtube에서 [cordova 강좌]로 검색해 보았습니다.
[cordova 강좌] 라는 제목 보다는 하이브리드 앱 개발 폰갭 이런 것이 많이 나오네요.
하이브리드 앱 네이티브 앱 등의 요어가 나오는데 정리해 보았습니다.
용어 | 앱설치 여부 |
앱스토어 판매 |
업데이트 | 반응 속도 |
개발 환경 |
설명 |
하이브리드 앱 [Hybrid] |
O | O | 불편 | 약간 느림 |
표준 | 앱의 기반이 되는 콘텐츠 영역은 HTML 기반의 웹앱으로 제작, 최종 앱 배포에 필요한 패키징 처리만 아이폰, 안드로이드 플랫폼 안에서 처리한 어플리케이션 |
네이티브 앱 [Native App] |
O | O | 불편 | 가장 빠름 |
스마트 폰별 |
모바일 기기에 최적화된 언어로 개발된 앱으로 안드로이드 SDK를 이용해 Java언어로 만드는 안드로이드 앱과 IOS SDK를 이용해 Objective-C언어로 개발된 아이폰 앱등 |
모바일 웹 [Mobile web) |
X | X | 용이 | 빠름 | 표준 | 테스크 탑 브라우저에 실행되는 웹 어플리케이션을 모바일 스크린 크기로 줄여 놓은 것 |
웹 앱 [Web App] |
X | X | 용이 | 약간 빠름 |
표준 | 모바일 웹과 네이티브 앱을 결합한 것으로 모바일 웹의 특징을 가지면서 네이트브 앱의 장점도 갖음 |
3. Flutter
flutter는 Dart 언어를 사용하는 구글에서 개밣한 크로스 플랫폼 앱 개발 프레임 워크라고 합니다.
모바일 앱 SDK를 빠르고, 아름답게 만들 수 있는 새로운 도구로 기존이 웹뷰를 사용하던 방식이나,
CSS의 복잡한 레이아웃으로 부터 탈출할 수 있게 도와준 프레임 워크라고 하네요.
[장점]
1) Android, ios의 대표 디자인 시스템 기본 제공
2) 통합 개발 환경 지원
3) 성능 문제 해설
React Native 또는 Hybrid App의 경우 브릿지를 통한 통신이 불가피 하다고 합니다.
하지만 Flutter는 직접 컴파일되서 렌더를 직접 하기 때문에 성느이 빠르다고 합니다.
[단점]
1) Dart 개발언어 사용
Dart로 단순 UI구성을 만드는 것은 쉽지만 코드가 나열됨에 따라 가독성이 떨어진다고 합니다.
2) 플로그인 부족
3) 참고자료 부족
참고 자료는 다 부족한 것 같습니다.
youtube에서 [flutter 강좌]로 검색해 보았습니다.
당장 시작해야한다고 하네요.
inflearn에서 [flutter], [react-native]로 검색해 보았습니다.
이정도가 나오네요.
[차이점은 무엇일까요?]
[결론]
모두 크로스 플랫폼 개발 지원하기 때문에 공통점 많고 참고 자료는 부족하고
만드려는 프로젝트에 더 적합한 것을 선택하라고 합니다.
다시 제자리입니다.
제가 직접 사용해 본것이 아니고 어떤 앱을 개발하겠다는 기획도 없기때문에
우선 다야하게 공부해볼 생각입니다.
'앱개발 > 일반' 카테고리의 다른 글
안드로이드 스튜디오 에뮬레이터 설치 (0) | 2020.05.13 |
---|