Navigator.push로 보낸 정보를 final result에 저장하여 해당 result를 snackbar에 표시하는 예제. /// 선택된 정보를 홈 화면의 snackbar에 보여줍니다. /// 선택 창을 띄우고 결과를 기다리고 있습니다. 이제 결과 값을 갖고 무언가 할 차례입니다. /// 이 예제에서는 결과 값을 보여줄 수 있도록 Snackbar를 띄우겠습니다. /// 이 작업을 하기 위해 SelectionButton의 _navigateAndDisplaySelection 메서드를 수정할 것입니다. // SelectionScreen을 띄우고 navigator.pop으로부터 결과를 기다리는 메서드 void …
더 읽기 »Flutter: 새로운 화면으로 데이터 보내기(Send data to a new screen)
새 화면으로 이동하며 데이터를 넘겨줘야 할 때. 플러터 쿡북에서 단서를 찾았다. 기억하세요: 화면은 단지 위젯입니다.https://flutter-ko.dev/docs/cookbook/navigation/passing-data 위젯에 데이터를 넘겨주기 위해 필요한 것은 파라미터! Navigator.push( context, MaterialPageRoute( builder: (context) => DetailScreen(todo: todos[index]), ), ); Reference: https://flutter-ko.dev/docs/cookbook/navigation/passing-data import 'package:flutter/material.dart'; /// Todo를 표현하기 위한 간단한 정보가 필요합니다. /// 이 예제에서는 두 가지의 데이터를 갖고 있는 클래스를 정의할 것입니다: 제목과 상세 설명 class Todo { …
더 읽기 »Flutter: 인터넷에서 데이터 가져오기(fetch data)
플러터 소스코드를 작성하던 중, HTTP Status 200 OK 이외의 상황에서, 에러 메시지를 어떻게 표시하는지 궁금해졌다. 이에 대한 좋은 예제가 flutter-ko.dev에 있었다. import 'dart:async'; import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; Future<Post> fetchPost() async { /// http.get() 메서드를 사용하여 JSONPlaceholder 으로부터 샘플 Post를 가져올 것입니다 /// http.get() 메서드는 Response를 포함하고 있는 Future를 반환합니다. /// Future는 비동기 연산에 사용되는 Dart의 핵심 …
더 읽기 »Flutter: Checkbox, Switch, Radio
Checkbox와 Switch 체크박스와 스위치는 사용법이 동일. var isChecked = false; Checkbox(value: isChecked, onChanged: (value) { setState(() { isChecked = value!; }); }), Switch(value: isChecked, onChanged: (value) { setState(() { isChecked = value!; }); }), RadioListTile로 라디오버튼과 텍스트를 함께 선택하도록 하기 enum Answer { yes, no } class _MyHomePageState extends State<MyHomePage> { Map<int, Answer?> answerVal = {}; @override Widget build(BuildContext context) …
더 읽기 »Dart: 기초 배우기
Flutter In Action을 읽으며 Dart의 기초부터 실습하는 중이다. /// 화살표 함수 사용하기 void main() { // 기본 함수 String makeGreeting(String name) { return '안녕, $name'; } print(makeGreeting('Park')); // 고차 함수: => 는 {return 표현식}과 같다. 화살표 함수에서는 return 키워드 불필요. String makeGreetingArrow(String name) => '안녕, $name'; print(makeGreetingArrow('Park')); } 오래된 Java 문법에 익숙해져 있던 터라, Dart가 많이 낯설다. /// 이름 지정 …
더 읽기 »Flutter: Hello World
얼마만일까. 도서의 코드를 하나부터 열까지 직접 입력하며 실행해본 것이. 특히나 안드로이드 앱 프로그래밍은 2017년 이래인 듯 하다. 업무를 위해 Flutter 공부를 시작하고 있어서, ‘요즘 앱 프로그래밍’을 하나씩 터득하는 중이다. 한국 도서를 읽으며 예제를 따라하는 중… import 'package:flutter/material.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); // This widget is the root …
더 읽기 »