노마드 코더 flutter 필기

배코딩·2023년 5월 8일
0

note

목록 보기
61/151

flutter와 네이티브 앱 개발의 차이점

네이티브 앱은 호스트(운영체제)에서 직접적으로 위젯(안드로이드의 홈 버튼 뒤로가기 버튼 등등등)을 사용하고 화면에 띄우는데, 플러터는 호스트의 위젯을 사용할 수 없음.

플러터 앱을 들어갔을 때 안드로이드 UI처럼 보이더라도 그건 실제 안드로이드 위젯이 아니고 그저 플러터 코드로 유사하게 구현한 것 뿐임. 이게 한계점

호스트가 runner(다트 컴파일본 등)를 실행시키고(빈 캔버스 생성을 상상하자), runner가 C/C++ 기반 엔진을 실행시키면, 이 엔진이 캔버스 위에 플러토 코드대로 쭉 그려주는거라고 생각하자.

물론 이런 부분으로 인해 화면 상의 픽셀 모든 것을 온전히 코드로 통제할 수 있어 디자인의 자유도가 높다고 볼 수도 있다. 다만 호스트 위젯을 흉내낸 것에 불과하기 때문에 100% 똑같을 수 없고 약간의 괴리감이나 어색함이 있을 수도 있음.

암튼 핵심은 flutter 앱이 동작하는 방식은, 호스트 운영체제는 암것도 안하고 플러터 엔진이 모든 렌더링을 다 손수 한다!


flutter vs react native (크로스 플랫폼 지원 프레임워크 비교)

flutter를 쓰면 좋은 경우

  • 아주 세밀한 디자인을 요구하는 경우 (react native로 하는 것보다 쉽기도 함)
  • 디자인적으로 커스터마이징의 비중이 높은 경우
  • OS(플랫폼)에 구애받지 않고, OS 차이에 의한 오류를 최소화하고 싶은 경우 (react native는 플랫폼 차이에 의한 버그가 있는 편)
  • 개발 경험이 좋음 (react native는 개발 프로세스(개발 경험)가 좋지 못함)

react native를 쓰면 좋은 경우

  • 네이티브 앱의 컴포넌트, 위젯을 쓰고 싶은 경우 (대상 OS의 환경과 최대한 비슷하게 앱을 만들고 싶은 경우, ex iOS스러운 버튼, 인풋, 네비게이션 바 등)
  • 디자인에 신경 크게 쓰고 싶지않고, 그냥 호스트 운영체제에서 제공하는 디자인을 그대로 최대한 쓰고 싶은 경우
  • 외부 패키지 활용 강점
  • 일단 아직은 flutter보다 시장 규모도 크고 자료도 많음

  • 한 마디로 걍 네이티브 컴포넌트나 위젯 써야되면 react native, 그 외에는 flutter 쓰면 될 듯? 물론 react native의 규모와 실제 현업 TO가 더 많기 때문에 이런거까지 고려하면 react native를 써야되는 경우도 꽤 있을 듯

Column과 ListView

ListView는 구현이 까다로워서, 아이템 개수가 적으면 그냥 Column으로, 개수가 많아서 최적화가 필요할 땐 ListView 쓰자


파일 관리

models 폴더 : json 속 객체 하나하나를 모델링하는 dart 파일

services 폴더 : api를 활용하여 모델이나 모델 리스트 등을 리턴하는 메소드들을 갖고 있는 api service 클래스 파일

screens 폴더 : 화면 전체 하나를 구성하는 dart 파일들

widgets 폴더 : 독립적으로 재사용하고자 하는 위젯 dart 파일

profile
PS, 풀스택, 앱 개발, 각종 프로젝트 내용 정리 (https://github.com/minsu-cnu)

0개의 댓글