728x90
반응형
- [ 언어·프레임워크/Flutter ][Flutter] "Do it! 플러터 앱 프로그래밍" - Dart 기초 문법 | 특징, async/await, JSON, Stream2022-02-10 00:55:41Dart 기초 문법 요약정리 "조준수. (2021). Do it! 플러터 앱 프로그래밍. 이지스퍼블리싱", 이 책에서 Dart 문법이 차지하는 비중은 적지만 서버와의 통신 부분(비동기 처리, JSON, 스트림 통신)을 꽤 많이 할애하고 있다. 이 점이 좋아 보인다! Do it! 플러터 앱 프로그래밍 플러터 기본 & 고급 위젯은 물론오픈 API와 파이어베이스를 이용한 앱 개발부터 배포까지!플러터 SDK 2.x 버전을 반영한 개정판!이 책은 플러터의 기초부터 고급 활용법까지 다루어 다양한 영역에 book.naver.com 다트 언어의 9가지 특징 main() 함수로 시작 어디에서나 변수 선언 및 사용 가능 모든 변수가 객체(Object 클래스 상속) 자료형이 엄격하나 유연한 var, dynamic 자료형도 ..
- [ 언어·프레임워크/Flutter ][Flutter] fvm을 이용한 Flutter 버전 관리 | 모두의숙소 앱 빌드 실패 문제 해결2022-02-09 01:41:16"최주호, 정호준, & 정동진. (2021). 모두가 할 수 있는 플러터 UI 입문. 앤써북" 중 모두의숙소 앱 빌드 중 [그림 1]과 같은 에러가 발생했었다. 다른 PC에서 GitHub에 Push 된 동일한 코드를 Pull 하여 실행해 보았다. 그 PC에서는 정상적으로 빌드되어 AVD에서 실행되었다. 따라서 에러의 원인이 코드는 아니라고 보았다. 예전에 스프링 프레임워크를 배울 때 프레임워크의 버전이 달라지면 없던 에러가 생길 수 있다는 유의사항이 생각났다. 그래서 각 PC에 설치된 Flutter 버전을 확인해 보았다. [!] Your project requires a newer version of the Kotlin Gradle plugin. 역시 버전이 서로 달랐다. [그림 1]의 에러가 발생한 P..
- [ 언어·프레임워크/Flutter ][Flutter] "모두가 할 수 있는 플러터 UI 입문" - 모두의숙소 웹 만들기 | 플러터 웹 | 빌드 실패 문제2022-02-08 10:24:52"최주호, 정호준, & 정동진. (2021). 모두가 할 수 있는 플러터 UI 입문. 앤써북"으로 플러터 공부를 하고 있다. 9장에서는 모두의숙소 웹을 만들었다. 플로터로 웹도 만들 수 있다. [그림 1]은 완성된 페이지이다. 앱으로도 빌드를 시도했는데 [그림 2]와 같은 에러가 발생했다. 최신의 Kotlin Gradle plugin이 필요하다고 한다. 기존에 만들었던 앱 프로젝트를 빌드해봐도 동일한 현상이 발생했기 때문에 이번에 작성한 코드의 문제는 아닌 것으로 보인다. [그림 2]는 VS Code에서 보여주는 에러 메시지이며, 안드로이드 스튜디오에도 역시 빌드되지 않았다. 이렇게 저렇게 만져 보았지만 아직은 해결방법을 찾지 못했다(2022년 02월 09일 해결함). [!] Your project re..
- [ 언어·프레임워크/Flutter ][Flutter] "모두가 할 수 있는 플러터 UI 입문" - 쇼핑카트 앱 만들기 | StatefulWidget, Stack, Positioned, CupertinoAlertDialog2022-02-07 00:42:08"최주호, 정호준, & 정동진. (2021). 모두가 할 수 있는 플러터 UI 입문. 앤써북"으로 플러터 공부를 하고 있다. 8장에서는 쇼핑카드 앱을 만들었다. 이번 장에서는 StatefulWidget과 SatelessWidget을 심도 깊게 다루었다. StatefulWidget은 변경 가능한 상태를 가진 위젯이다. 사용자와의 상호작용에 의해 변경되는 경우에 사용한다. 그래서 final변수가 아닌 일반적인 변수를 가진다. SatelessWidget은 앱이 최초 실행될 때 단 한번 그려진다. 반면 StatefulWidget은 build 함수가 실행되면 계속해서 다시 그려진다. setState 함수를 통해서 상태 변수를 변경하게 되면 build 함수가 다시 실행된다. 앱에는 다시 그려져야 하는 부분과 그렇지..
- [ 언어·프레임워크/Flutter ][Flutter] 어느 날 갑자기 멀쩡했던 AVD도 고장 날 수 있다 | Failed to launch emulator: Error: Emulator didn’t connect within 60 seconds2022-02-06 23:07:32"최주호, 정호준, & 정동진. (2021). 모두가 할 수 있는 플러터 UI 입문. 앤써북"으로 플러터 공부를 하고 있다. 8장 쇼핑카트 앱 만들기를 하던 중 [그림 1]과 같은 에러를 만났다. 작성한 코드를 실행시키자 발생한 에러이다. 수차례 확인했지만 작성한 코드에 문제는 없었다. 심지어 몇일 전에 정상적으로 작동한 앱을 실행시켜도 동일한 증상을 보였다. 빨간색 표시된 영역의 메시지는 다음과 같다. Exception has occurred. TestFailure (Expected: exactly one matching node in the widget tree Actual: _TextFinder: Which: means none were found but one was expected ) [그림 1..
- [ 언어·프레임워크/Flutter ][Flutter] "모두가 할 수 있는 플러터 UI 입문" - 로그인 앱 만들기2022-02-03 18:31:48"최주호, 정호준, & 정동진. (2021). 모두가 할 수 있는 플러터 UI 입문. 앤써북"으로 플러터 공부를 하고 있다. 이번 챕터에서는 size.dart 파일에 값을 지정하여 활용, 외부 라이브러리 SvgPicture 설치 및 사용, Theme 적용한 TextButton, Navigator로 화면 이동, 그리고 ListView와 TextFormField 위젯을 중요하게 다뤘다. 책에서는 ListView 위젯을 사용해 화면 overflow 문제를 해결하였는데, 아래 코드에서는 SingleChildScrollView 위젯을 적용하였다. 그리고 배경 터치 시 키보드를 사라지게 하는 기능을 추가하였다. 기존에는 키보드 숨기기 버튼으로만 사라지게 할 수 있었다. GestureDetector 위젯을 사용하였는..
- [ 언어·프레임워크/Flutter ][Flutter] "모두가 할 수 있는 플러터 UI 입문" - 프로필 앱 만들기2022-02-02 00:57:58"최주호, 정호준, & 정동진. (2021). 모두가 할 수 있는 플러터 UI 입문. 앤써북"으로 플러터 공부를 하고 있다. 이번 챕터에서는 Scaffold의 endDrawer 속성과 CircleAvatar, GridView, InkWell, TabBar, TabBarView 위젯 등을 다뤘다. components 폴더 아래에 dart 파일을 만든 후 main.dart에서 import하여 Scaffold의 body 영역에서 사용하는 방식은 앞서 만들었던 앱들과 다른 점이다. InkWell을 이용해 버튼을 만들고, TabBar와 TabBarView를 이용해 Tab을 구현하고, GridView.builder와 Image.network를 이용하여 특정 url주소의 이미지를 동적으로 처리하는 방법을 잘 기억하자..
- [ 언어·프레임워크/Flutter ][Flutter] "모두가 할 수 있는 플러터 UI 입문" - 레시피 앱 만들기2022-02-01 18:03:57"최주호, 정호준, & 정동진. (2021). 모두가 할 수 있는 플러터 UI 입문. 앤써북"으로 플러터 공부를 하고 있다. 이번 챕터에서는 AppBar, AspectRatio, ClipRRect, Column, Container, Icon, ListView 등을 다뤘다. 특별히 [그림 1]과 같이 RecipeListItem을 출력할 때 스마트폰 화면을 넘어가는 overflow 문제 해결 방법을 잘 기억하자! overflow 문제는 recipe_page.dart의 Scaffold 위젯 내 Column 위젯을 ListView 위젯으로 변경하여 해결한다. 그러면 세로 스크롤 기능이 추가되며 overflow 문제가 해결된다. // main.dart import 'package:flutter/material.d..
728x90
반응형