본문 바로가기

Flutter

Do it! 플러터(Flutter) 앱프로그래밍

Flutter책을 찾아보면, 몇 가지가 나오는데 이지스 퍼블리싱 Do it시리즈가 눈에 들어왔습니다.

최근에 개정판이 나왔고, Do it시리즈가 서비스 수준과 비슷하게 최종 결과물을 도출하는 컨셉이여서 흥미로웠습니다.

우선 책을 살펴보면서 전체적인 리뷰를 해볼려고 합니다.

어떤 부분이 책에 언급되고, 배울수 있는 항목은 무엇인지 리뷰하면서 

필요하신 분들은 책을 구매해서 좀더 자세히, 언급되지 않은 부분에 대해서 학습하시는 것이 목적입니다.

 

  • 제가 관심가는 부분은 박싱을 했습니다.
    • 플러터에 Dart언어 학습과 구성을 학습하고
    • IOS, Adroid의 Native와 통신하는 것은 필수로 학습이 필요하고
    • 평소 궁금했는데, 사용해보지 못한 파이어베이스에 대해서 알 수 있을거 같고
    • 샘플 여행정보 App을 등록해 볼 수 있습니다.
  • 책은 All-칼러로 되어 있어서 보기 편했는데, 중요하고 저자분이 전달하려고 하는 부분에 Hight-Lighting이 되어 있어서
    강조하려는 부분이 잘 표시되어서 참 좋은거 같습니다. 
  • 책에 테스트 환경은 Window 환경입니다.
    • 별도의 맥 환경에 대한 설치 환경은 제공하지 않습니다.
    • 이 부분은 조금 아쉬운 부분이지만, 크게 어렵지는 않습니다.
    • 제가 환경구성하면서 블로깅을 하겠습니다.
  • Chap1 (플러터 시작하기)
    • mac에서 설치
      • https://flutter.dev/docs/get-started/install/macos#update-your-path (현재는 2.5.2)
        책에는 2.2.3버전이 캡쳐되어 있는데, 버전 업데이트가 빠르네요 (좋은 현상)
      • mac에서 Path설정하기
        • https://flutter.dev/docs/get-started/install/macos#update-your-path
          export PATH="$PATH:[PATH_OF_FLUTTER_GIT_DIRECTORY]/bin"​
          Flutter설치 환경 확인
        • 안드로이드 스튜디오에 Flutter-Plugin설치하기
          • Window용 차이인지 버전 차이인지 화면은 책과 조금 다르지만
            Plug-in 탭에서 아래와 같이 Flutter 를 검색해서 설치합니다.
          • 프로젝트 설정창
            Platform을 보니, Flutter에서 다양한 플랫폼을 지원한다고 한 내용이 느껴집니다.
            선택은 3가지 사항만 되는것으로 보입니다.
          • 화면은 JetBrain에서 만든 안드로이드 스튜디오여서 IntellJ나 PyCharm등을 사용하보시면 분이라면 익숙하거라고 생각이 됩니다.
      • Local에서 실행하기
  • Chap2 (다트를 알면 플러터가 보인다)
      Dart에 대해서 Flutter개발에 필요한 필수적인 부분에 대해서 설명을 하고 있습니다. 
      Dart를 처음 보았을때, Carmel표기법을 사용하고 있어서 느낌이 Java와 비슷하다는 느낌을 받았습니다.
      Python문법보다는 Java문법에 가까운거 같습니다. 
    • main함수를 시작합니다.
      • java도 main함수를 사용하지만, go언어가 생각이 납니다.
    • Java처럼 제네릭 타입을 지원합니다.
    • public, protected 같은 접근제어자가 없습니다. 
      • 이 부분은 python과 비슷합니다. 
      • 사용시 _을 이용해서 표시합니다.
    • 삼항연산자 지원 (대부분 언어에서 지원합니다.)
    • 상속시 extends를 사용하는건 java와 비슷
    • Null safety 
      • Flutter 2.0버전부터 지원하기 시작했습니다.
      • 가장 오류가 많이 나는 Null에 대해서 컴파일시 오류를 체크합니다
    • 비동기를 지원합니다.
      • async와 await 키워드를 사용합니다.
      • Dart는 단일 쓰레드로 동작합니다.
    • Json을 받을수 있고, 순서대로 통신을 위한 Stream모듈이 있습니다.
  • Chap3 (플러터 내부 구조 살펴보기)
    • Flutter의 컨셉에 맞게 iso, android폴더가 구별되어서 제공된다.
    • 위젯에 대한 개념과 생명주기에 대해서 학습
  • Chap4 (플러터 위젯 사용법)
    안드로이드 코드와 왠지 비슷한 느낌이 들었습니다.
    실제 안드로이드 코드는 작성해보지 않았는데, 쉽게 하실수 있을거 같은 생각이 들었습니다.
    • 우선 기본적인 위젯을 이용해서 화면구성을 실습합니다.
      • 아이콘, Text, 이미지, 폰트 구성
      • javascript처럼 이벤트 넣기 (클릭등.)
    • 미티리얼 화면 제공(구글에서 제공하는 화면 template)
  • Chap5 (탭바와 리스트 만들기)
    • 탭바의 개념을 잡고 화면 구성하기
      • 웹화면의 네비게이션 같은 역활로 구성을 실습합니다.
    • 화면 구성에 필요한 List를 실습합니다.
  • Chap6 (iOS 스타일로 플러터 만들기)
    • 안드로이드는 미티리얼 가이드로 화면을 구성하는데, iOS는 쿠퍼티노 가이드로 화면구성해야 하는 것을 진행합니다.
      • Flutter여서 2가지 모든 경우를 커버하려고 필수적인 부분인거 같습니다.
    • Chap5와 같은 기능에 대해서 iOS스타일로 구성 작업을 합니다.
  • Chap7 (네트워크를 이용해 통신하기)
    • 외부 라이브러리를 이용합니다.
      • pub.dev에서 검색하면 다양한 패키지를 검색 후 찾을수 있습니다.
      • pubspec.xml 파일에 관련 모듈을 dependencies 항목에 복사합니다.
        다운로드 받아서 사용하는 방식이, Spring의 maven이나 gradle과 비슷합니다.
    • kakao API를 통해서 데이타 연동 및 위젯을 구성해서 스크롤 및 이미지 다운로드까지 실습을 진행합니다.
  • Chap8 (내비게이션 활용하기)
    모바일 화면에서 중요한 것이 작은 화면에서 여러페이지의 이동과 선택의 복잡도가 높다는 것입니다.
    일반적으로 웹에서는 그런 고려가 적지만, 모바일에서는 페이지 이동이 자유롭고, Back기능도 많아서 해당 개념이 매우 중요하다고 생각합니다.
    • 페이지 이동 및 여러페이지가 있는 경우 선택적으로 이동하는 기능에 대해서 설명을 합니다.
    • 간단하게 TO-DO 앱을 구성하여서 기본적인 네이비게이션 Flow을 설명합니다.
  • Chap9 (내부 저장소 이용하기)
      동적인 서비스를 위해서 필요한 데이타 저장에 관한 부분입니다.
    • 데이터 저장하는 방법 
      • 공유환경설정(9장), 파일(9장), 데이타 베이스(10장)
    • 공유환경설정 → shared_preferences 패키지를 이용해서 구성합니다.
    • 파일 → path_provider 패키지를 이용해서 구성합니다.
  • Chap10 (데이터베이스에 데이터 저장하기)
    실제 DB를 고객 핸드폰에 설치하는 경우는 드물고, 보통 서버와 통신을 REST로 구성해서 서버에 데이타가 저장하는 방식이 주로 사용 되어질 것으로 생각됩니다.
    • SQLite를 사용하는 sqflite패키지를 이용해서 구성합니다.
    • DatabaseApp클래스를 이용해서 CRUD 화면을 실습합니다.
  • Chap11 (애니메이션 활용하기)
    • 앱의 각종 동작을 매끄럽게 진행하기 위해서 일반적으로 사용됩니다.
    • 대상은 화면 이동이나, 위젯입니다.
    • Flutter의 Curves클래스를 실습합니다.
      • 색상에 대해서도 애니매이션 
      • 이동시 인트로 애니매이션
      • 스크롤 이동시 애니메이션
  • Chap12 (네이티브 API 통신하기)
    Flutter에 가장 관심이 가는 부분입니다.
    Native API는 계속 버전up이 진행되면서 Flutter에서 해당 기능을 바로 사용은 힘들것입니다.
    다만, 가장 일반적으로 사용되어지는 Native API를 어떻게 사용하는 방식인지 궁금했습니다.
  • Chap13 (파이어베이스와 광고 수입 얻기)
    • 파이어베이스 
      • 구글에서 제공하는 DB, 사용자 인증, 푸시알림 등 여러가지 서비스를 간편하게 지원하는 플랫폼
      • 일정 용량까지는 무료 이용
    • 푸시, 광고넣기, 애널리틱스등을 사용해서 연동하는 실습이 진행됩니다.
  • Chap14 (오픈 API 활용한 여행 정보 만들기) / Chap15 (여행 정보 앱 완성하고 출시하기)
    • 공공데이타를 이용해서 여행정보 앱을 만들어 봅니다.
    • 파이어베이스와 연동을 해서 앱을 구성합니다.
    • 광고 연동 및 구글 플레이에 등록하는 과정까지 진행을 실습합니다.
    • 구글에 대해서만 설명이 되어 있고, iOS관련된 부분은 없습니다.
  • 소감
    • 플러터 학습에 필요한 부분이 과하지 않게 필요한 요소가 잘 설명되어 있어서 좋았습니다.
    • 전반적으로 중요한 부분이 형광색으로 표시되고 편집도 가독성이 좋았습니다.
    • 실습을 통해서 전반적인 필요한 1-Cycle이 구성된 책이였습니다.
    • 아쉬운점은 Flutter의 장점인 iOS관련해서 Android처럼 설명이 많이 없는 부분과,
      Web관련 부분도 설명이 보강되었으면 좋았을거 같다는 생각이 들었습니다.

'Flutter' 카테고리의 다른 글

Flutter 관심&흥미  (0) 2021.10.04