[Flutter] Fastlane 친해지기
·
Flutter/Basic Knowledge
TL;DRFastlane은 iOS와 Android 앱의 빌드, 테스트, 배포 과정을 자동화하는 오픈소스 도구입니다. Ruby 기반으로 작동하며 간단한 문법으로 복잡한 작업 흐름을 정의할 수 있습니다. 테스트, 빌드, 배포의 과정을 수동으로 진행한다고 하면 할 수는 있지만, 만약 여러 번의 테스트 그리고 배포가 이뤄지는 프로젝트 및 작업 환경이라면 한번의 자동화 처리를 해두면 매우 수월하게 일을 진행하실 수 있으실 겁니다. 저도 CI/CD를 적용하지 않고 앱을 관리해본 적이 있는데 정말 .... 삽질과 노가다의 향연입니다. (나와의 싸움이 시작..)그렇기에 이렇게 편리하게 모든 걸 자동화해주는 프레임워크가 있다면 바로바로 배워야겠죠.친해지러 가봅시다.목차Fastlane 소개Fastlane 작동 원리기본 문..
[Flutter] Riverpod - DI
·
Flutter/Basic Knowledge
DI 란?의존성 주입(Dependency Injection, DI)은 한 객체가 다른 객체의 의존성을 제공하는 디자인 패턴입니다.의존성이 있다는 건 무슨 의미 일까요?: A를 구현함에 있어 B를 사용해서 B가 정상 동작 하지 않으면 A도 결함이 발생할 때, A가 B에 의존성이 있다고 표현을 합니다.당연히 의존성은 최소화하는게 좋습니다. 예를 들어, A가 B에 의존하고 B가 C에 의존하고 C가 D에 의존하는 구조라면, D가 변경되는 경우 A까지 실행이 안될 수 있거든요. 이렇게 복잡하게 얽혀있는 경우에 문제가 발생하면, 문제의 시작점이 어디인지 찾기가 매우 어려울 수 있습니다. -> 이런 경우 코드의 결합도가 높다고 표현합니다. 그렇기 때문에 DI라는 개념이 생긴 것입니다. 의존성을 외부에서 주입받도록..
[Flutter] Riverpod - 상태 관리
·
Flutter/Basic Knowledge
TL;DRRiverpod은 Flutter의 강력한 상태 관리 프레임워크로, Provider의 여러 한계를 극복한 프레임워크입니다.Provider에서 글자 배열만 바꿔서 Riverpod이라고 만들었을 정도로 같은 사람이 만든 티가 나죠?이 글에서는 Riverpod의 기본 상태 관리 방식과 MVVM 아키텍처에서 View, ViewModel, Provider를 효과적으로 연결하는 방법을 실제 코드 예제와 함께 알아봅니다.목차Riverpod 소개기본적인 상태 관리 방식MVVM 패턴과 Riverpod 통합실제 예제 구현성능 최적화 팁결론1. Riverpod 소개Flutter 애플리케이션을 개발하다 보면 상태 관리는 피할 수 없는 과제입니다. Provider 패키지가 인기를 얻었지만, 타입 안전성과 컴파일 타임 검..
[Flutter] 앱 개발을 위한 클린 아키텍처 기본기 다지기 - 1단계
·
Flutter/Basic Knowledge
- LLM Model(ChatGPT, Claude)을 통해 생성된 정보를 바탕으로 제가 읽고 공부하며 수정한 글입니다.- 클린 아키텍쳐를 Flutter 프로젝트에 적용해보기 위한 기초 공부 글 입니다.- 제가 첨언한 부분은 기울여져 있습니다.TL;DR클린 아키텍처는 Flutter 앱을 유지보수하기 쉽고, 테스트 가능하며, 확장성 있게 만드는 설계 방법론이야. 로버트 마틴이 제안한 이 방법론은 비즈니스 로직을 UI나 외부 요소로부터 독립시켜서 앱의 핵심 가치를 보호해. SOLID 원칙을 기반으로 하고, 계층 구조를 통해 의존성 방향을 제어함으로써 Flutter 프로젝트의 복잡성을 관리하고 장기적 유지보수성을 향상시킬 수 있어.-> 목표: Flutter 앱을 유지보수하기 쉽고, 테스트 가능하며, 확장성 있게..
[Dart] Stream 이란?
·
Flutter/Basic Knowledge
Dart 언어의 비동기 프로그래밍에서 Future와 함께 중요하게 사용되는 개념 중 하나인 Stream에 대하여 알아보고자 한다. Future와 Stream의 차이점은 아주 간단 명료 하다. "단일 값" vs "다중 값". Future는 단일 비동기 작업에 대해 단일 값 혹은 단일 오류를 처리하는데에 사용되는 개념이고, Stream은 다중 비동기 작업에 대해 다중 값 혹은 다중 오류를 처리하는데에 사용되는 개념이다. 또한 Stream은 Future로 불가능한 작업 중 하나인 실시간 데이터 리스닝이 가능하다. 이를 이해하기 위해, 전통적인 Data Pulling 방식을 생각해보자 전통적인 Data Pulling 방식 Flow 1. 초기에 필요한 데이터를 Database로 부터 받아온다. 2. 새로고침 혹은..
[Dart] Asynchronous & Future
·
Flutter/Basic Knowledge
Dart 언어는 비동기 프로그래밍을 지원하고 이때 주요하게 쓰이는 개념으로 Future, Stream, await, async 등이 있다. 이번 포스팅에서는 Dart 언어에서의 비동기 프로그래밍의 기본 방식과 Future, await, async 키워드에 대해 다뤄 볼 예정이다. 어떤 프로그래밍을 하던 Data Fetching, Writing, Reading 이 존재하는 분야라면 비동기 처리 방식이 중요할 수 밖에 없기 때문에 이에 대해서 정리를 해보고자 한다. 아래의 내용은 Dart 공식 도큐먼트 내용을 기준으로 발췌하고 정리하였다.  Asynchronous Programming: Futures, async, await 비동기 작업이 대표적으로 사용되는 부분네트워크에서 데이터를 불러오는 작업데이터베이스..