728x90

앱개발 9

플러터 - Stateless Widget과 Stateful Widget 차이점

한창 앱 개발이 진행 중이지만 개인적으로 플러터 공부에 대해 정리도 하고 쉬어가는 의미로 Stateless와 Stateful 차이점에 대해 포스팅한다. ​ Stateless Widget 화면이 로드될 때 한 번만 그려지는 State가 없는 위젯으로 변경이 필요한 Data가 없는 것을 의미하며 이벤트 또는 사용자 상호 작용에 의해 동작하지 않는다. ​ 예를 들어 지금 제작 중인 미소닭갈비 앱의 가게 안내, 메뉴 안내 화면처럼 사용자와 상호작용이 필요 없는 위젯은 Stateless Widget으로 구성하면 된다. ​ ​ Stateful Widget ​ 위젯이 동작하는 동안 Data 변경이 필요한 경우 화면을 다시 그려서 변경된 부분을 위젯에 반영하는 동적인 위젯으로 이벤트 또는 사용자 상호 작용에 의해 동작..

플러터 2021.01.13

플러터 화면 추가 - 메뉴 안내 추가

이제는 두 번째 화면인 메뉴 화면을 만들어보겠다. ​ 사실 메뉴판은 대표 메뉴로 어떤 음식이 있고 금액은 얼마인지 그리고 원산지가 어디인지만 잘 표현되면 된다. 그래서 홈페이지에 있는 메뉴판 내용을 그대로 가져왔다 ​ ​ 가게 안내 페이지와 동일하게 이름만 MenuGuide인 클래스에 NestedScrollView에 SliverAppBar와 ListView로 구성하였다. ​ 메뉴판 이미지는 SliverAppBar에 FlexibleSpaceBar에 넣었고 ListView 쪽에는 각 메뉴별 대표 이미지를 리스트로 줄줄이 넣었다. ​ ​ 소스 코드는 다음과 같다. import 'package:flutter/material.dart'; class MenuGuide extends StatelessWidget { ..

플러터 2021.01.03

플러터 화면 추가 - 매장 안내

매장 안내를 의미하는 화면을 만들 예정이다. ​ 페이지 특성상 특별한 기술도 필요 없을 것 같고 가게를 소개하는 내용만 잘 구성해서 보이면 될 것 같다. ​ 우선 이전 포스팅에서 만든 NestedScrollView 하단에 ListView 추가 후 내용을 때려 넣으려고 한다. ​ 우선 ShopGuide 클래스에서 아래와 같이 ListView와 그 자식으로 Text를 추가해봤다. ​ 디버깅하여 에뮬레이터 화면을 보면 아래와 같이 추가한 텍스트가 잘 표현되는 것을 볼 수 있다. ​ 이제 그 아래에 공백과 사진을 넣어보겠다. 아래와 같이 Container로 공백을 넣었고 그 아래에 이미지도 추가했다. ​ 이전 포스팅에서 MediaQuery 클래스로 size.height를 이용해 핸드폰 화면 높이를 얻었는데 Co..

플러터 2021.01.03

플러터 Sliver 효과 - 앱 바 애니메이션 스크롤

첫 번째 화면에 해당하는 '가게 안내' 페이지를 작성하기 전에 앱 상단 바를 애니메이션 스크롤 형태로 만들겠다. ​ SliverAppBar를 사용하여 앱 상단 바를 동적으로 표현할 예정이다. 위로 스크롤 하면 바가 작아지는데 이걸 Sliver 효과라고 부른다. ​ 우선 만들어놓은 화면 중 shopguide.dart 파일로 이동 후 아래 소스 코드를 추가한다. ​ 먼저 한 화면에 여러 개의 스크롤을 사용할 수 있는 NestedScrollView를 추가했고 그 안에 위젯으로 SliverAppBar를 추가했다. SliverAppBar에는 여러 옵션들이 있는데 중요해 보이는 pinned, floating, snap에 대한 내용은 위 주석을 참고바란다. 나는 우선 깔끔하게 화면을 구성하기 위해 appbar를 안 ..

플러터 2020.12.31

플러터 - 애니메이션 탭 메뉴 추가

지금까지는 워밍업이었고, 이제 본격적으로 앱 개발을 시작하려고 한다. ​ 나는 누구나 쉽게 따라 할 수 있는 소스 코드를 좋아하기 때문에 쉽고 단순하게 만들어보겠다. ​ 우선 하단에 구성할 탭 메뉴를 만들어보자. 플러터 개발 첫 포스팅 때 얘기했지만 메뉴는 총 4개로 구성할 예정이다. ​ 1. 가게 안내 2. 메뉴 안내 3. 오시는 길 4. 스토어 ​ 4개의 메뉴는 탭으로 구성할 예정이며 쉽게 그리고 이쁘게 만들기 위해 애니메이션 탭을 지원하는 convex_bottom_bar 패키지를 다운로드할 예정이다. 더 이쁜 패키지도 있지만 이 버전이 안정적인 것 같아서 다운로드했다. ​ pubspec.yaml으로 이동하여 convex_bottom_bar를 추가 후 Get Packages를 누른다. convex_b..

플러터 2020.12.29

플러터 디버그 띠 표시 삭제

VS Code에서 플러터로 소스를 수정 후 디버깅할 때 에뮬레이터 우측 상단에 디버그 배너가 항상 보이는데 이 배너가 거슬리는 사람을 위해서 포스팅한다. ​ 아래 이미지 우측 상단을 보면 DEBUG라는 표시가 보임 ​ 소스 코드에서 다음을 추가한다. ​ debugShowCheckedModeBanner: false, 이후 디버깅을 수행해보면 우측 상단에 보이던 DEBUG 배너가 사라진 것을 볼 수 있다. 별거 아니지만 디버깅할 때마다 DEBUG 띠가 보이는 게 거슬리는 사람을 위해서 포스팅한다. ​ 아 그리고 이전 포스팅에서 앱 이름을 5글자로 정했더니 잘려서 고민이었는데 앱 이름은 그냥 '닭갈비'로 심플하게 정리했다. ​ 좌측 상단 앱을 보면 '닭갈비'라고 아주 심플한 앱이 보인다.

플러터 2020.12.28

플러터 앱 아이콘 추가 및 앱 이름 설정

이번에는 플러터 앱 아이콘을 아주 쉽게 추가해보겠다. 패키지를 이용해서 안드로이드와 iOS를 한방에 바꾸는 것이 바로 플러터의 매력이 아니겠는가?! 아이콘 추가 우선 이 전 포스팅에서 추가했던 Assets 폴더에 Icon 폴더를 추가 후 Icon을 해당 폴더에 삽입했다. 패키지 추가 이제 pubspec.yaml에서 flutter_launcher_icons 패키지를 호출하자. 현재 0.8.1 버전까지 나왔다. 아직 1.0까지는 안되서 아쉽네 그리고 줄 바꿈 주의 후 flutter_icons와 내용을 추가하자. android: true, ios: true 부분이 각각 플랫폼에 자동으로 처리해준다. flutter_launcher_icons: ^0.8.1 flutter_icons: android: "launch..

플러터 2020.12.28

플러터 앱 만들기 - 플러터 프로젝트 생성

자 플러터(flutter)로 앱(app)을 만들어보자. ​ 사실 환경 세팅부터 포스팅하려고 했지만, 자마린처럼 서론만 얘기하다 끝날까 봐 이번 플러터 포스팅은 어떤 앱을 만들지 정하고, 바로 프로젝트 생성부터 들어가겠다. (자마린은 오픈을 앞두고 너무 바빠져서 포스팅을 포기했었다. 현업에서는 잘 쓰고 있음) ​ 자 거두절미하고 어떤 앱을 만들지 바로 정하고 프로젝트 생성 들어간다! ​ 어떤 앱을 만들 것인가? ​ 우선 복잡한 서비스 앱을 제작은 포스팅에 사용하기는 어렵기 때문에 나는 아주 간단하게 아래 닭갈비 매장을 홍보하는 앱을 만들어보겠다ㅋㅋ ​ ​ 메뉴는 가게 소개, 메뉴 소개, 오시는 길, 스토어로 이동 정도? 원래 기획을 다 하고 만들어야 하는데 그러면 또 기획하다 끝날까 봐 우선 만들어보겠다...

플러터 2020.12.23

플러터(Flutter)를 시작하다

플러터란? (Flutter) 플러터(Flutter)란 구글에서 개발한 크로스플랫폼 프레임워크로 안드로이드, iOS를 한번에 개발할 수 있는 매우 효율적인 개발 프레임워크다. 유사한 기술로 페이스북의 리액트 네이티브(React Native)와 MS의 자마린(Xamarin)이 존재하며 모두 개발하는 언어도 다르고, 각각의 장단점이 존재한다. 플러터는 성능도 좋고, 쉽고 빠르게 앱 개발이 가능한 반면 다트 언어가 생소하고 출시된 지 오래되지 않아서 성숙하지 못한 단점이 존재한다. 플러터 VS 리액트 네이티브 VS 자마린 구분 플러터 리액트 네이티브 자마린 운영 회사 구글 페이스북 마이크로소프트 출시년도 2017년 2015년 2011년 개발 언어 다트 자바스크립트 C# 장점 높은 생산성 빠른 성능 핫 리로드 핫..

플러터 2020.12.17
728x90