개발자_이훈규
천천히, 빠르게. 개발자의 Repository
개발자_이훈규
전체 방문자
오늘
어제
  • 분류 전체보기 (473)
    • 티스토리 (4)
    • 개발자 뉴스 (2)
    • 소프트웨어 (203)
      • C (7)
      • c++ (25)
      • Objective-C (3)
      • Do it! 반응형 웹디자인 (4)
      • openGL (8)
      • Java (24)
      • Jni (3)
      • Android (9)
      • Wordpress (2)
      • 버그 만난 후 느낀점 (2)
      • Git (3)
      • node js (2)
      • window tablet (1)
      • HTML (3)
      • javascript (3)
      • perl (1)
      • AngularJS (0)
      • JSON (0)
      • Docker (3)
      • python (5)
      • jQuery (1)
      • MFC (4)
      • cocos studio (6)
      • Golang (1)
      • SQLite3 (0)
      • Spring Boot (8)
      • thymeleaf (0)
      • Django (0)
      • iOS (3)
      • skia (0)
      • VBA (0)
      • PHP (2)
      • Oracle (1)
      • JSP (0)
      • R (0)
    • TCP IP (2)
    • 금융 (0)
      • 금융 Study (0)
      • 금융 Archive (0)
      • 금융 Article (0)
    • 개인 프로젝트 (7)
      • gif 홈페이지 만들기 (0)
      • study app만들기 (0)
      • 크롤러 만들기 (1)
      • 카툰 홈페이지 만들기 (1)
      • 외주 홈페이지 만들기 (3)
      • 웹 홈페이지 만들기 (0)
      • 미디어 서버 만들기 (0)
      • 소개팅 어플 만들기 (0)
      • 인스타그램 풀스택 클론 코딩(인강 노트) (0)
      • 주식 모의거래 만들기 (1)
    • html php mysql (0)
    • node.Js (2)
    • 일상 (2)
    • 빈공간 uml 공부 (0)
    • Ubuntu(linux) (12)
    • 맥OS (10)
      • android 설치하기 (2)
    • Programming quizzes (0)
    • IoT (구 유비쿼터스) (16)
      • 라즈베리 파이 (11)
      • 아두이노 (5)
    • 하드웨어 (5)
      • 아수스 비보탭 노트8 asus vivotap no.. (2)
      • 크레마 카르타 (3)
    • 분석할 문장, 구문, 코드 (0)
    • 키보드 (1)
      • 해피해킹 (1)
    • 코드 라이언 (0)
    • 전자기기 (4)
    • Ted (0)
    • NAS (0)
    • 알고리즘 (0)
    • 연합인포맥스 (0)
    • 이벤트 응모함 (4)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • Example
  • Java
  • 개발
  • 설치
  • 라즈베리 파이
  • 코드
  • 우분투
  • 소스
  • ubuntu
  • 방법
  • 에러
  • install
  • 설명
  • error
  • CODE
  • C++
  • C
  • GIT
  • Python
  • 예제

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
개발자_이훈규

천천히, 빠르게. 개발자의 Repository

카테고리 없음

모두가 할 수 있는 플러터 UI입문 - 실전

2021. 8. 21. 04:49

Tag & Linked Page

[[플러터]]

서평

앱은 화면과 데이터로 서비스가 이루어진다. 그 중에 화면에 집중한 책이다. 넷플릭스, 당근마켓, 마켓컬리의 UI를 클론코딩해보면서 이런 컴포넌트 구조는 어떤 Class내에 chlidren을 어떻게 구성할지 연습할 수 있다. 이 책 하나면 트렌드한 UI의 대부분을 다 경험해볼 수 있다.

 

이 책으로 UI 빼대를 잡은 다음엔 global state관리 같은 상태관리, API를 사용해서 데이터를 연결하기 등 여러가지를 더 찾아서 살을 붙이면 플러터를 시작하는 러닝커브를 많이 낮출 수 있을것 같다.

(플러터와 다트의 기본 문법은 입문편에 있다)

 

책을 보면서 경험한것 하나는 클론코딩이지만 PC환경이 전부 다르기 때문에 책과는 다른 예외처리를 해야할 순간들이 오는데 이 때는 연관된 키워드를 구글에 검색해서 하나씩 처리해야하는 일들이 생겼었다. 그래도 안되면 앤써북 네이버 카페에서 책 내용 관련 문의게시판에서 질문을 하면된다.


당근마켓 클론코딩

모두가 할 수 있는 플러터 UI실전의 수록된 클론코딩 중 하나이다. (당근마켓, 마켓컬리, 넷플릭스)

https://youtu.be/NLlGp-oQ73Q

1. Flutter

skia engine

렌더링 엔진으로 skia를 사용한다
https://brunch.co.kr/@myner/5
https://skia.org/

cupertino

iOS style
https://flutter.dev/docs/development/ui/widgets/cupertino

2. Run

emulator으로 실행

Termianl에서

$ flutter run

emulator 동작

Flutter run key commands.
r Hot reload. 🔥🔥🔥
R Hot restart.
h Repeat this help message.
d Detach (terminate "flutter run" but leave application running).
c Clear the screen
q Quit (terminate the application on the device).

web으로 실행

$ flutter run -d chrome

3. 자동완성

stl, stf만 치면 stateless, statefull 번들을 제공해준다.

4. flutter material theme

https://api.flutter.dev/flutter/material/TextTheme-class.html

5. 정오표시

p14.

폴더 이름이 neighborhood 여야 하는데 heighborhood로 되어 있다. (h->n)

p16.

main_screens.dart의 소스코드의 아래 부분이 바뀌어야 한다. 안그러면 검은 배경에 빨간색 글씨인 화면을 만나게 된다. 뒷 부분에서 Scaffold로 바꾸긴 하지만 github에도 Scaffold로 되어 있으니 책 내용에 오류가 있다고 봐도 무방할듯하다.

return Container(
  child: Center(
    ...
  )
)


return Scaffold(
  body: Center(
    ...
  )
)

troubleshooting

1. missing static target

clean하고나서 다시 run하면 된다.

$ flutter clean
$ flutter run

2. Shader compilation error

로그가 아래처럼 나온다

D/skia    (22925):    1 Shader compilation error
D/skia    (22925):    2 ------------------------
D/skia    (22925):    3 Errors:
D/skia    (22925):    4

그래서 아래처럼 run을 할 때 옵션을 주면 해결된다 달려라 승이

$ flutter run --enable-software-rendering  

3. NumberFormat은 어느 library에 있을까?

import 'package:intl/intl.dart';  

https://frozenrainyoo.tistory.com/9


flutter 심화

1. ? operation

Key? key
삼항연산자도 아니고 .?도 아니고 의미는 이해되지만 javascript와는 다른 문법이다

class MyHomePage extends StatefulWidget {
  MyHomePage({Key? key, required this.title}) : super(key: key);

2. stateful 코드 분석하기

class MainScreens extends StatefulWidget {
  @override
  _MainScreensState createState() => _MainScreensState();
}

...
  • 코드 내용 알아보기

Reference

  1. 모두가 할 수 있는 플러터 UI 실전
  2. 앤써북 네이버 카페
 

앤써북_ IT/컴퓨터, 경제경영, 취... : 네이버 카페

앤써북은 IT/컴퓨터, 경제경영, 취미/실용/여행/건강 전문 출판사입니다.

cafe.naver.com

 

 

엔써북에서 도서를 무상 제공받아 제작하였습니다
저작자표시 (새창열림)
    개발자_이훈규
    개발자_이훈규
    혼자 꽁양꽁양 개발하면서 놀아요~ - 노트같은 블로그

    티스토리툴바