전체 강의 목록 (링크)
앱을 만들고 싶으면
Kotlin을 배워서 Android 앱을 만들거나
Swift를 배워서 아이폰 앱을 만들거나
그래도 되지만 실은 요즘 Flutter 혹은 React Native를 사용해서
코드 하나로 Android/아이폰앱 둘 다 만들 수 있습니다.
Flutter를 사용하면 이런 것들이 가능합니다
Android/iOS용 이쁜 레이아웃 만들기
서버와 통신해서 DB자료 가져오기
앱알림
사진, 연락처, 위치정보 사용하기
PG사 카드결제
광고달기
구글페이연동
등 기존 앱과 별 차이 없습니다.
그래서 기존 Android, iOS 앱을 이걸로 바꾸라는 소리가 아니라
새로 앱 만들 일이 있으면 Flutter 쓰는 것도 좋은 선택지라는 소리입니다.
아니면 요즘은 Flutter 프로젝트의 윈도우/리눅스 앱과 웹페이지 발행기능도 지원해서
하나의 코드로 멀티플랫폼 배포도 빠르게 가능해졌습니다.
플러터 도입시 따져봐야할 요소
신기술은 유행이라고 마구마구 도입하면 파멸을 맛보게 됩니다.
항상 미리 따져봐야합니다.
- 코드 많이 짜도 관리가 쉬운가
- 버그찾기 쉬운가
- 개발자 편의성 도구가 잘 되어있는가
- 안되는 기능 없나
- 외부 라이브러리 양과 질
- 꾸준한 업데이트
이런걸 충족하면 도입해도 됩니다.
플러터 초창기엔 저런거 기대하면 안되는 정도였지만 지금은 다릅니다.
Dart 언어와 Flutter 2.5 업데이트가 지나며 그나마 쓸만해졌는데
그에 맞게 구글 검색 관심도도 React Native는 뛰어넘은지 오래며
구글 자체 설문 결과 요즘은 비즈니스용으로 플러터 쓰는 사람들이 훨씬 많아졌다고 하는군요.
기존 앱개발보다 쉬운 이유는
1. Dart 언어 하나만 알면 됩니다
웹개발하려면 HTML CSS JS 알아야하고
React 혹은 React Native는 JS와 JSX까지 알아야하는데
Flutter 개발은 Dart 언어 하나만 알면 됩니다.
Dart는 구글 사내에서 개발한 언어인데
실은 자바스크립트 대용품으로 쓰려고 만든 언어입니다.
그래서 많은 문법들이 자바스크립트랑 거의 똑같이 생겨서 웹하시던 분들은 앱개발도 쉽게할 수 있을겁니다.
▲ 왼쪽이 dart 문법 오른쪽이 JavaScript 문법입니다.
거의 비슷합니다.
2. 디자인 어려워하는 사람에게 좋습니다
디자인하라고하면 손발이 덜덜 떨리는 사람들에게 특히 좋은데
그냥 미리 만들어진 UI들을 가져다쓰고 그걸 커스터마이징하는 식으로 개발하기 때문입니다.
뼈대부터 직접 레이아웃 짤 이유 없습니다.
간단한 팝업창 만들고 싶으면 Dialog() 쓰면 이런게 나오고
상단바 만들고 싶으면 AppBar() 쓰면 이런게 나옵니다.
그냥 자주 쓰는 UI 대부분은 코드 한 줄로 마련되어있습니다 가져다 쓰면 됩니다.
3. 대충해도 완성도 높음
완성도라함은
- 빠른 성능
- 앱 조작시 눈에보이는 피드백
- 전환 애니메이션
- 버그없는 반응형 레이아웃
이런거 없으면 딱 봐도 초딩이 만든 것 같이 초보티가 확 납니다.
근데 플러터로 개발하면 이런거 신경 쓸 필요없습니다.
특히 애니메이션 같은게 기본제공되는게 많아서 좀 많이 편리합니다.
4. 웹개발과 개발방식이 똑같습니다.
웹에서 React Vue 이런거 하셨으면 Flutter도 똑같다고 느낄겁니다.
component, state, props, redux 이런거 다 똑같이 만들어서 개발합니다.
표현방법만 다를 뿐
하지만 단점도 있긴 한데
1. 구글 느낌 디자인이 너무 많은데요
-> 그건 코드 못짜서 그런거지 커스터마이징 다 할 수 있습니다.
구글 물 빼는 작업하면 됩니다.
2. 문법이 넘 어려운데요
-> 예제를 보면 class부터 보이지만 class 부분은 복붙만 해서 쓰는 셋팅부분일 뿐입니다.
실제로 class부터 시작하는 객체지향 프로그래밍 할 일이 전혀 없습니다.
딱 React, Vue 정도 난이도입니다.
3. 원하는 기능이 없는데요
-> 플러터 안에 특정 기능을 개발하고 싶은데 누가 만들어놓은 외부 패키지가 없다?
요즘은 정말 이상한 기능 아니면 거의 다 있긴 있습니다.
없다면누가 만들어줄 때 까지 악으로 깡으로 버텨야합니다.
React Native는 어떰
이것도 쉽습니다 React 문법과 똑같아서 HTML CSS 문법만 따로 배우면 끝날 수준입니다.
하지만 React 개발방식을 알고 있는 분들께 쉽다는 것이지
완전 처음이면 어려울 수 있습니다.
그리고 React만의 특징인데 라이브러리 자체에 들어있는게 별로 없어서
외부 라이브러리 의존성이 조금 높습니다.
뭐 하려면 라이브러리 설치할 일이 좀 많은데
설치과정에서 나와 맞는 버전과 씨름하고 그런게 단점일 수 있겠군요
그래서 이거 배워서 취직하라는게 아니고
플러터는 지금 퍼지는 단계에 있기 때문에
이 기술로 지금 바로 먹고살 수는 없겠지만 (미래엔 모르겠지만)
평소에 앱만들고 싶었던 분들이 듣는게 어떨까요.
플러터로 앱 만들어서 광고달아서 부수입 올리는 사람들도 있고
친구끼리 private한 앱만들어서 쓰는 사람들도 있고
아니면 중소기업에서 간단한 업무처리하는 용도의 앱 만들어서 쓰는 곳도 있습니다.
이번 강의는 플러터를 이용해서
1. 연락처관리 앱
2. 인스타그램
을 만들어볼 것인데
이번 강의도 역시 여러분들 혼자서도 코드잘짜는 법을 주로 알려드릴 것입니다.
그래야 저에게 안물어보고도 알아서도 코드잘 짤 수 있을 것 아닙니까
다음시간에 플러터 개발환경 셋팅부터 진행합시다
전체 강의 목록 (링크)