11월, 2025의 게시물 표시

내배캠47일차_Flutter복습

 1. Flutter 복습 GetX 패키지 추가 및 적용 1) 터미널 : flutter pub add get pubspec.yaml 에 추가되었는지 확인 2) main.dart 설정 MaterialApp대신 GetMaterialApp 사용 import 'package:flutter/material.dart' ; import 'package:get/get.dart' ; void main () { runApp ( MyApp ()); } class MyApp extends StatelessWidget { @ override Widget build ( BuildContext context ) { return GetMaterialApp ( // ⭐ MaterialApp 대신 GetMaterialApp 사용 title : 'GetX Demo' , theme : ThemeData ( primarySwatch : Colors . blue , ), home : HomeScreen (), ); } } GetX의 Obs 개념정리 반응형 프로그래밍 Observable 변수 : 값이 변경되면 자동으로 UI 업데이트 .obs 접미사로 반응형 변수선언, 반응형 상태값이 됨 값 변경 시 자동으로 관찰자에게 알림 GetXController 상태를 관리하는 컨트롤러 클래스 (ViewModle 역할) UI에서 상태와 로직을 분리하는 핵심 패턴 (클래스) 생명주기 관리기능 제공 Obx 위젯 Obx(() => SomeWidget()); 반응형 변수의 변화를 감지하는 위젯 값이 변경되면 자동으로 해당부분만 리빌드 가볍고 빠른 성능 class CounterController extends GetxController { var count = 0 . obs ; void increment () => count ++ ;...

내배캠46일차_Flutter복습

 1. Flutter 복습 상태관리패키지 GetX 사용법 GetX : 강력하고 가벼운 상태관리 솔루션, 간결한 코드, 빠른 성능, Context 불필요, 메모리 효율 좋음 GetX의 3대 기능 상태관리, 의존성관리(Get.put(), Get.find<>();), 라우트관리(페이지 관리) // 1. 상태 관리 (State Management) class CounterController extends GetxController { var count = 0 . obs ; void increment () => count ++ ; } // UI에서 사용 Obx (() => Text ( ' ${ controller . count } ' )) // 2. 의존성 관리 (Dependency Management) final counterController = Get . put ( CounterController ()); //처음 가져올 때 Get.put() 사용해서 가져옴 final counterController = Get . find < CounterController >(); //Get.put()을 처음 한 이후에는 Get.find() 사용해서 가져옴 // 3. 라우트 관리 (Route Management) Get . to (() => NextScreen ()); // 오른쪽 코드 대신 사용 가능 -> Navigator.push(context, MaterialPageRoute(builder: (context)=>NextScreen())); Get . back (); // Navigator.pop() 대신 사용 가능 1) 상태관리 (State Management) class CounterController extends GetxController { // .obs를 붙이면 반응형 변수가 됨 var count = 0 . obs ; void incr...

내배캠45일차_Flutter심화

1. flutter 심화 구글 플레이 스토어 앱 등록 과정 개발자 계정 생성 등록비 : 25$ 1회 납부 , 개인/업체 선택 가능 개발자 프로필 설정 이름, 이메일, 고객센터 연락처, 약관동의 play Console - 앱만들기 앱 스토어 등록 정보 - 앱 이름, 간단 설명, 상세 설명, 앱 카테고리, 연락처 스토어 리소스 업로드 - 앱 아이콘, 스크린샷, 프로모션 이미지, 앱 데모 영상 앱 정책 관련 설정 개인정보 처리방침 URL  관련 정보 포스팅  https://brunch.co.kr/@sungsiri/34 로폼 자동작성  https://doc.lawform.io/autodoc/read/55 웹사이트에 입력한 후 URL 사용함 위치권한, 카메라 권한 등이 있다면 꼭 설명이 필요함. 웹사이트 없으면 구글 사이트 만들기  https://sites.google.com/u/0/?pli=1&authuser=0 비공개 테스트 신규가입자 매번 20명씩 모아야 함. https://gyuwon-tech.tistory.com/56 https://eopla.net/magazines/21725 APK (Android Package Kit) APK 파일 안에 앱의 모든 코드, 리소스, 그리고 다양한 기기 환경을 위한 코드가 포함 고정된 크기: 앱이 설치될 모든 기기에서 동일한 크기의 APK 파일이 다운로드 즉, 사용하지 않는 기능이나 리소스까지 포함된 채로 다운로드되어 저장 공간을 많이 차지 App Bundle (Android App Bundle) 앱의 코드와 리소스를 모듈화하여 다양한 기기 환경에 맞춰 필요한 부분만 다운로드 되도록 구성 구글 플레이 스토어 앱 등록 시, aab 파일 업로드 2. 인사이트 클럽 더 이상 기회가 없다는 시장에서 탄생한 1조 기업 - 에이블리 https://www.youtube.com/watch?v=ETnROJe4OfA&t=5s 박터지는 이커머스 시장에 뛰어들었지만, 큰 시장 규모에 분명히 에이블리만...

내배캠44일차_Flutter심화

 1. Flutter 심화 상태관리 생명주기 createState()    statefulWidget에 반드시 존재해야 함 initState()    위젯이 생성될 때 호출되는 메서드, state를 초기화해주는 역할, 최초 한번만 호출 didChageDependencies()    위젯이 최초 생성된 후, initState() 다음에 바로 호출된다. 위젯이 의존하는 데이터의 객체가 변경될때마다 호출됨. build    UI구현하는 부분, 가장 많이 호출됨. 반드시 존재해야 override대상, 반드시 widget을 반환해야 함. setState()    내부 상태가 변경되었다는 것을 프레임워크에 알려주고, build() 호출. 사용하지 않으면 UI에 변경 데이터가 반영되지 않음. didUpdateWidget()    위젯의 구성이 변경될 때마다 호출됨, 부모 위젯이 변경되어 재구성해야 하는 경우 호출.  이전 상태의 자신을 받는다( oldWidget) dispose()    사용되었던 것을 영구적으로 제거할 때 사용. 제거하지 않으면 메모리 누수발생, 앱 성능 떨어짐. 예시) 글자가 서서히 나타나는 위젯 전체코드 import 'dart:math' ; import 'package:flutter/material.dart' ; void main () { runApp ( const MyApp ()); } class MyApp extends StatelessWidget { const MyApp ({ super . key }); // This widget is the root of your application. @ override Widget build ( BuildContext context ) { return MaterialApp ( title : 'Flutter De...

내배캠 43일차 _ Flutter 심화

 1. Flutter 심화 무한스크롤 : NotificationListener 위젯 사용 onNotification속성에 정의한 함수 실행 스크롤 시작 ScrollStartNotification 객체 스크롤 이동할 때 ScrollUpdateNotification 객체  스크롤 끝났을 때 ScrollEndNotification 객체 스크롤 이동할 때 ScrollUpdateNotification 객체  >> ScrollMetrics 타입, metrics속성 metrics.pixels: 현재 스크롤 위치 metrics.maxScrollExtent : 스크롤 가능한 최대범위 metrics.minScrollExtent : 스크롤 가능한 최소범위 metrics.extentAfter 현재 위치 이후 남은 스크롤 거리 metrics.extentBefore : 현재 위치 이전 남은 스크롤 거리 NotificationListener ( onNotification : ( notification ) { if ( notification is ScrollUpdateNotification ) { if ( notification . metrics . pixels >= notification . metrics . maxScrollExtent ) { // 여기서 업데이트 } } return true ; }, child : ListView . builder ( itemCount : items . length , itemBuilder : ( context , index ) { }, ), ) 실습코드 import 'package:flutter/material.dart' ; void main () { runApp ( const MyApp ()); } class MyApp extends StatelessWidget {...