본문 바로가기

전체 글248

플러터 - BasicMessageChannel 본 글은 [Do it! 깡샘의 플러터&다트 프로그래밍] 의 내용을 발췌한 것입니다. 책의 모든 내용을 저자 직강으로 진행한 강의는 ssamz.com 에서 들으실 수 있습니다. 플러터 앱에서 네이티브와 연동하는 방법으로 메시지 채널, 메서드 채널, 이벤트 채널을 제공합니다. 먼저 메시지 채널을 살펴보겠습니다. 메시지 채널은 다트와 네이티브 간에 문자열을 주고받을 때 사용합니다. 다트에서 네이티브로 보내기 메시지 채널을 이용해 다트에서 네이티브에 문자열 데이터를 보내는 방법을 살펴보겠습니다. 다트 코드 먼저 메시지 채널을 사용하는 다트 코드를 살펴보겠습니다. 플러터는 BasicMessageChannel 클래스를 제공합니다. 이 클래스를 이용해 네이티브와 연동할 수 있는 채널을 만들고 이 채널을 통해 데이터를.. 2023. 3. 13.
플러터 - GetX로 상태 관리하기 본 글은 [Do it! 깡샘의 플러터&다트 프로그래밍] 의 내용을 발췌한 것입니다. 책의 모든 내용을 저자 직강으로 진행한 강의는 ssamz.com 에서 들으실 수 있습니다. GetX 준비하기 먼저 GetX를 사용하려면 pubspec.yaml 파일의 dependencies 항목에 다음처럼 get 패키지를 등록해야 합니다. dependencies: get: ^4.6.5 GetX를 이용하면서 앱의 루트 위젯을 MaterialApp이 아닌 GetX에서 제공하는 Getmaterial App을 이용할 수도 있습니다. 사실 상태 관리나 종속성 관리를 목적으로 GetX를 사용한다면 GetMaterialApp을 사용하지 않아도 됩니다. GetMaterialApp 위젯은 GetX로 라우팅이나 스낵바, 국제화 기능을 구현.. 2023. 3. 13.
플러터 - Bloc Cubit 본 글은 [Do it! 깡샘의 플러터&다트 프로그래밍] 의 내용을 발췌한 것입니다. 책의 모든 내용을 저자 직강으로 진행한 강의는 ssamz.com 에서 들으실 수 있습니다. 큐빗이란? bloc 패키지를 이용할 때 Bloc를 상속받은 클래스를 작성하고 이 클래스에 이벤트를 주입해 등록된 이벤트로 업무 로직을 실행합니다. 그런데 Bloc 클래스 대신 큐빗cubit 클래스를 이용할 수도 있습니다. Bloc와 큐빗 클래스는 역할은 같지만 동작 방식에 차이가 있습니다. Bloc 클래스는 이벤트 주도 방식이며 이미 살펴본 것처럼 이벤트를 먼저 정의하고 이 이벤트를 Bloc 클래스에 등록하여 위젯에서 Bloc 클래스에 이벤트가 발생할 때 등록된 내용을 실행하는 방식입니다. 그런데 큐빗은 함수 직접 호출 방식입니다... 2023. 3. 13.
플러터 - Provider 본 글은 [Do it! 깡샘의 플러터&다트 프로그래밍] 의 내용을 발췌한 것입니다. 책의 모든 내용을 저자 직강으로 진행한 강의는 ssamz.com 에서 들으실 수 있습니다. 앞서 살펴본 것처럼 Provider()나 Provider.value()로 상태를 등록하고 하위 위젯에서 Provider.of()로 프로바이더의 상태를 이용할 수 있습니다. 그런데 앱의 상태 데이터는 다양한 타입일 수 있으며 여러 개를 등록할 수도 있습니다. 이를 지원하는 다양한 프로바이더를 제공합니다. 변경된 상태를 하위 위젯에 적용하기 — ChangeNotifierProvider 프로바이더를 이용해 상태 데이터를 하위 위젯에서 이용할 수 있지만, 프로바이더에 등록된 상태 데이터는 값이 변경되더라도 하위 위젯이 다시 빌드하지 않으므.. 2023. 3. 13.
플러터 - InheritedWidget 본 글은 [Do it! 깡샘의 플러터&다트 프로그래밍] 의 내용을 발췌한 것입니다. 책의 모든 내용을 저자 직강으로 진행한 강의는 ssamz.com 에서 들으실 수 있습니다. 이 절에서 살펴볼 InheritedWidget은 여러 위젯이 이용하는 상태를 가지는 상위 위젯을 만드는 클래스입니다. 위젯은 계층 구조를 이룹니다. 그리고 하위의 여러 위젯이 공통으로 이용하는 상태가 있다면 상위 위젯에서 상태를 관리하고 하위 위젯은 상위의 상태를 이용하는 식으로 작성하는 것이 좋습니다. 이미 살펴본 것처럼 하위의 공통 상태를 관리하는 상위 위젯을 StatefulWidget으로 만들고 하위에서 이 StatefulWidget의 상태 객체를 얻어서 이용하거나 상위의 함수를 이용하게 작성할 수 있습니다. 그런데 하위에서 .. 2023. 3. 13.
플러터 - Isolate 본 글은 [Do it! 깡샘의 플러터&다트 프로그래밍] 의 내용을 발췌한 것입니다. 책의 모든 내용을 저자 직강으로 진행한 강의는 ssamz.com 에서 들으실 수 있습니다. 퓨처와 스트림은 한 줄기 수행 흐름에서 비동기 처리를 합니다. 다트 애플리케이션은 메인 함수부터 실행되는데 이 메인 함수의 수행 흐름을 메인 아이솔레이트(또는 루트 아이솔레이트)라고 합니다. 이 메인 아이솔레이트에서 퓨처나 스트림 등의 비동기 처리가 수행됩니다. 만약 메인 아이솔레이트 하위에 새로운 수행 흐름을 만들고 싶다면 별도의 아이솔레이트를 만들어야 합니다. 이처럼 새로운 아이솔레이트를 만들려면 spawn() 함수를 이용합니다. 그리고 아이솔레이트에서 처리할 로직은 함수로 작성합니다. 이 함수는 클래스의 맴버로 선언할 수도 있.. 2023. 3. 13.