플러터 웹 아파치 배포 방법 깃허브나 파이어베이스 등에서 배포하는 것이 일반적이지만, 나의 경우 내부망에서만 열람이 가능한 웹 페이지를 배포해야 했기 때문에 아파치를 이용하는 방법을 선택했다. 먼저 아파치를 설치한다. https://inpa.tistory.com/entry/APACHE-%F0%9F%8C%90-%EC%95%84%ED%8C%8C%EC%B9%98-%EC%84%9C%EB%B2%84-%EC%B4%88%EA%B0%84%EB%8B%A8-%EC%84%A4%EC%B9%98-%EC%A0%95%EB%A7%90-%EC%89%BD%EA%B2%8C-%EC%A0%95%EB%A6%AC 🌐 아파치(Apache) 서버 초간단 설치 방법 Apache 서버 설치하기 1. 아래 링크로 들어가 아파치 서버를 설치해준다. Apa..
[Flutter] 플러터 웹에서 scroll 안될 때 해결방법 플러터에서 스크롤 기능을 처리하기 위해 일반적으로 SingleChildScrollView를 사용하곤 한다. @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text('예약 조회 페이지'), ), body: Padding( padding: const EdgeInsets.all(16.0), child: SingleChildScrollView( scrollDirection: Axis.vertical, child: SingleChildScrollView( scrollDirection: Axis.horizontal, child: Dat..
GetxService 1. GetxController와의 차이점 GetxController는 인스턴스를 자동으로 생성, 삭제할 수 있었지만, (permanent: true 속성을 적용할 경우 자동 삭제 방지 가능) GetxService는 생성은 자동이나, 삭제는 수동으로 호출해야 한다는 차이점이 있다. 2. GetxService 활용 예제 지난번까지는 컨트롤러를 구현할 때 GetxController를 extends 해왔다. 이번에는 GetxService를 상속받아 컨트롤러를 구현하고, 버튼 누르면 카운트가 되는 간단한 예제에 적용시켜보자. (main.dart) import 'package:flutter/material.dart'; import 'package:flutter_getx/src/home.dar..
바인딩, 컨트롤러 선언과 사용 간소화 목차 1. 바인딩 2. 컨트롤러 선언, 사용 간소화 예제 1. 바인딩 ElevatedButton( onPressed: () { Get.to( () => const GetPut(), binding: BindingsBuilder(() { Get.create( () => DependencyController()); }), ); }, child: const Text("create") ), 바인딩은 페이지 라우트 단계(페이지를 보내는 부분)에서 해당 페이지에서 사용하게 될 컨트롤러를 주입하는 방법이다. 넘어갈 페이지가 어디인지, 어떤 컨트롤러를 주입할 것인지 한번에 지정할 수 있다. 위와 같은 방법으로 BindingsBuilder를 이용해 특정 위젯 내부에 선언해도 상관없으나..
종속성 관리, 의존성 주입(put, lazyPut, putAsync, create) 목차 1. Get.put() 2. Get.lazyPut() 3. Get.putAsync() 4. Get.create() provider 방식과 달리 getX는 context에 의존하지 않아서 Controller를 사용할 때만 선언하고 제거하기가 용이하다. 이러한 방식을 종속성 인스턴스 선언 방법이라고 하며, 총 4가지 방식이 제공된다. Get.put() Get.lazyPut() Get.putAsync() Get.create() 4가지 방식을 구현하기 위해 아래에 코드로 4개의 버튼을 구현하였다. (main.dart) import 'package:flutter/material.dart'; import 'package:flu..
반응형 상태 관리 목차 1. 버튼 카운트 예제 2. 이벤트 트리거 3. 다양한 자료형 선언과 변경 방법 반응형 상태 관리 방식의 장점 1. 값이 바뀌지 않는다면 굳이 update가 발생하지 않기 때문에 리소스 낭비를 줄일 수 있다는 것이다. 2. 이벤트를 트리거 할 수 있다. 대신 단순 상태 관리 방식에 비해 코드 구현이 다소 직관적이지 않을 수 있다. 1. 버튼 카운트 예제 (lib/main.dart) import 'package:flutter/material.dart'; import 'package:flutter_getx/src/home.dart'; import 'package:get/get.dart'; void main() { runApp(const MyApp()); } class MyApp ext..