본문 바로가기

flutter/basic10

Flutter 아키텍처 패턴 아키텍처 패턴이란? - 소프트웨어에 아키텍처의 공통적인 발생 문제에 대한 일반적인, 재사용이 가능한 해결책을 의미한다. 사용을 왜 해야하는가 ? - 프레임워크에 독립적이며 - 테스트를 쉽게 할 수 있고, - 기능 수정이나 추가가 용이하다 아키텍처 패턴 종류 - 대표적인 아키텍처 패턴으로는 MVC, MVP, MVVM 세 가지가 있다. MVC | 모델 - 뷰 - 컨트롤러 Model : 사용되는 데이터의 형태를 정의하고 데이터를 처리하는 부분 View : 사용자에게 보여지는 UI 부분 Controller : 사용자의 입력을 받고 처리하는 부분 동작 - Controller를 통해 사용자의 입력을 받고 Model을 업데이트하면 View는 Model을 통해 View를 업데이트한다. 특징 - 가장 단순한 패턴으로 구.. 2022. 12. 20.
Flutter 라이브러리 정리 필수 패키지 get - 상태관리 패키지. Most Likes 1위. (대체, provider, flutter_bloc) shared_preferences - 디바이스에 단순 데이터 저장. Most Likes 3위. (비슷, sqflite(SQLite), hive(nosql)) http - api 연동 패키지. Most Likes 4위. (대체, dio) url_launcher - 기본 브라우저 url 열기, 기본 이메일 앱에서 이메일 보내기, 기본 전화앱을 사용해 전화걸기, 기본 메시징 앱을 이용해서 sms 메시지 보내기 등 지원 Most Likes 5위. flutter_launcher_icons - 앱 아이콘 한번에 바꿔주는 패키지 Most Likes 9위. image_picker - 앨범 또는 카메라.. 2022. 12. 4.
GetX란 ? GetX Flutter를 위한 *state 관리 라이브러리이다. * state란? 간단하게 말하면 앱에서 사용되는 데이터들이라고 보면 된다. - 성능 : 성능과 리소스 소비의 최소화에 집중한다. Streams, ChangeNotifier를 사용하지 않는다. - 생산성 : 쉽고 간결한 구문을 사용한다. 사용하지 않는 리소스는 메모리에서 자동으로 제거해준다. 따라서 개발자가 메모리에서 컨트롤러를 제거하는 것을 신경쓰지 않아도 된다. - 조직화 : 화면, 프레젠테이션 로직, 비지니스 로직, 종속성 주입, 네비게이션을 분리할 수 있다. 프레젠테이션(보여지는 부분)과 비즈니스(데이터 처리) 로직에 대한 분리 - GetX는 statefulWidget을 사용하지 않아도 된다 ! 준비 작업 - pubspec.yaml .. 2022. 12. 4.
Flutter 기본 위젯 StatelessWidget - 변수 값을 변경한다 하더라도 화면이 변경되지 않는다. 상태가 없는 위젯이기 때문이다. - 최초 앱 실행 시 한 번만 실행된다. StatefulWidget - 변수 값을 변경하게 되면 화면이 변경된다. 상태가 있는 위젯이다. - 앱이 실행되고 난 뒤에도 상태가 변경되면 다시 실행한다. - final 변수가 아닌 변경할 수 있는 일반적인 변수를 가질 수 있다. Scafflod - 사용자에게 좋은 경험을(UX) 줄 수 있도록 플렅처에게 개발자에 제공해주는 클래스, Scaffold로 감싸는 순간 휴대폰 화면에 구조가 만들어지고 쉽게 앱을 만들 수 있다. - MaterialApp 안에 Scaffold 구조를 가져야 한다. - AppBar : 해당 화면에 대한 메뉴나 이동 버튼, 그.. 2022. 11. 28.
Dart 기본 문법(3) Mixin - 여러 클래스 계층에서 클래스의 코드를 재사용하는 방법이다. Mixin을 사용하게 되면 다중 상속의 문제를 해결할 수 있고 컴퍼지션을 사용하지 않고 다른 클래스의 코드를 재사용할 수 있다. 추상 클래스란? - 추상 클래스는 추상 메서드를 가지고 있다. 추상 클래스를 사용하는 이유는 수많은 객체를 추상화하는 공통 부모를 만들 수 있기 때문이다. - 추상 클래스 Animal을 사용하여 Dog, Cat클래스를 Animal 타입으로 묶을 수 있다. 이것을 다형성이라 한다. 다형성을 이용하여 추상 클래스의 함수를 호출했을 때 자식 클래스에서 함수를 오버라이드(무효화)하게 되면 자식의 함수가 동적으로 실행된다. 컬렉션 List - 데이터의 중복이 가능하고 순서가 있는 자료를 담는 컬렉션이다. - 자료는.. 2022. 11. 23.
Dart 기본 문법(2) 클래스 - 클래스는 객체를 정의하는 설계도이다. - 현실 세상에 존재하는 대부분의 것들을 클래스로 표현할 수 있다. 객체(Object)란 - 객체란 클래스(설계도)를 통해 현실 세계에 뿌리내릴 수 있는 것을 말한다. 현실 세계에 존재하진 않지만 존재할 수 있는 가능성이 있는 것을 객체라고 한다. 그리고 현실세계에 존재하게 되면 인스턴스가 된다. - 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신과 다른 것을 식별가능한 것을 말한다. 예를 들어 물리적으로 존재하는 학생, 회원 등과 추상적인 생산, 주문, 배송 등이 모두 객체가 될 수 있다. 객체 지향 프로그래밍 - 프로그래밍에서 필요한 데이터를 추상화시켜상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성.. 2022. 11. 23.
Dart 기본 문법(1) 다트 언어의 9가지 특징 다트는 main() 함수로 시작한다. 다트는 어디에서나 변수를 선언하고 사용할 수 있다. 다트에서는 모든 변수가 객체이다. 모든 객체는 Object 클래스를 상속받는다. 다트는 자료형이 엄격한 언어입니다. 만약 여러 자료형을 허용하려면 dynamic 타입을 사용할 수 있다. 다트는 제네릭 타입을 이용해 개발할 수 있습니다. List처럼 int형을 넣을 수 있고, List처럼 다양한 키워드도 넣을 수 있다. 다트는 public, protected 같은 키워드가 없습니다. 외부로 노출하고 싶지 않다면 변수나 함수 이름 앞에 언더스코어(_)를 이용해 표시할 수 있다. 변수나 함수의 시작은 언더스코어 또는 문자열로 시작하고 그 이후에 숫자를 입력할 수 있다. 다트는 삼항 연산자를 사용할.. 2022. 11. 23.
플러터, 다트 이해하기 플러터란? Flutter는 고성능, 고품질의 iOS, Android 앱과 웹을 단일 코드 베이스로 개발할 수 있는 구글의 모바일 UI 프레임워크이다. 구글에서 만든 다트(Dart)라는 언어를 사용합니다. 하나의 코드베이스로 크로스 플랫폼 개발을 가능하게 해준다. 플러터의 특징 구글이 지원하는 무료 오픈소스이다. 네이티브앱으로 컴파일이 가능하여 네이티브 수준의 성능을 자랑한다. 또한 크로스플랫폼용 앱을 구현할 수 있게 해준다. 플러터의 모든 것은 위젯이기 때문에 위젯에 대해서만 개념을 숙지하면 쉽게 개발이 가능하다. Flutter는 Dart를 프로그래밍 언어로 사용한다. 또한 Dart를 네이티브 코드로 컴파일하여 앱을 빌드할 수 있다. 또한 앱 개발시에는 핫 리로드라는 특수 기능이 있는 가상 머신(VM)을.. 2022. 11. 23.
위젯의 생명주기 스테이트풀 위젯의 생명주기 스테이트풀 위젯은 10단계로 구분하는 생명주기가 있다. 번호순으로 진행되므로 순서도 눈여겨봐야 한다. 1. 상태를 생성하는 createState() 함수 - StatefulWidget 클래스를 상속받는 클래스를 반드시 createState() 함수를 호출해야한다. 이 함수는 다른 생명주기 함수들이 포함된 State 클래스를 반환한다. 즉, 위젯의 상태를 생성하는 함수이다. 2. 위젯을 화면에 장착하면 mounted == true - createState() 함수가 호출되어 상태가 생성되면 곧바로 mounted 속성이 true로 변경된다. mounted 속성이 true라는 것은 위젯을 제어할 수 있는 buildContext 클래스에 접근할 수 있는 의미입니다. buildConte.. 2022. 11. 7.
반응형