OOP에서 기본적으로 객체는 가장 기본적인 요소입니다. 이러한 객체의 == 여부를 아주 쉽게 판단할 수 있는 Equatable 플러그인에 대해서 알아보겠습니다.Equatable은 Flutter 외에도 많은 곳에 존재합니다. kotlin에서는 data class를 이용하
우리는 앱에서 CRUD를 위해서 반드시 Model을 작성하게 됩니다. 기본적으로 Model은 프로퍼티와 toJson, fromJson과 같은 메소드들을 함께 포함하며 작성하게 됩니다만, Model은 필요할때마다 계속 만들어내야합니다. Freezed는 이러한 Model을
Flutter에서는 기본적으로 Http 라이브러리를 이용하여 REST API를 연결할 수 있었는데요. 요새 아주 핫한 Dio를 이용하여 REST API를 이번 글을 통해서 해보도록 하겠습니다.Flutter에서 Http 통신을 위한 여러 라이브러리 중 하나로 근래의 가장
앱을 개발하며 기능을 하나씩 만들어낼때 마다 빌드하여 결과를 확인하는 것은 예기치 못한 오류가 발생할수도 있습니다. 이를 위해서 TDD라는 개념이 탄생하였는데요. 다만, TDD는 오류를 줄일 수 있다는 점에서 굉장히 사랑받고 있지만서도 생산성이 떨어진다는 단점이 있으니
여기에 3개의 UI가 있다고 하겠습니다. 이 UI들은 각각 동일한 데이터를 공유해야 된다고 하겠습니다. 그렇다면 우리는 해당 위젯을 아래처럼 아규먼트를 넘겨주면서 데이터를 전달할 수 있을 것입니다.이렇게 되면 한가지 문제점이 나타날 수 있습니다. 만약 서로 공유하고 있
앱에서 이미지를 가져오려는 경우 갤러리로 접근하여 이미지를 가져와야합니다. Flutter는 ImagePicker라이브러리를 이용해서 간단하게 갤러리에 접근 및 이미지를 가져올 수 있습니다. 이번에는 image_picker에 대해서 알아보겠습니다.image_picker는
들어가며 > 수많은 소셜앱은 대부분 사용자가 로그인을 하는 로그인기능을 제공합니다만, 직접 로그인 기능을 제작하는 경우에 그에 따른 개발비용 및 시간이 증가하게 됩니다. 그 때, 이미 충분히 인증된 소셜 서비스의 로그인기능을 사용하여 로그인을 구현할 수 있습니다. 이를
들어가며 > 이전 글에서는 카카오 로그인을 구현해봤습니다. 이어지는 시리즈 느낌으로 이번에는 구글 로그인을 플러터 프로젝트에서 구현하는 방법에 대해서 알아보겠습니다. > 구글 로그인과 같은 소셜로그인은 Firebase를 이용하면 쉽게 사용할 수 있습니다만, Fireba
들어가며 > 지금까지 카카오, 구글 로그인에 대해서 알아보았습니다. 근데, 애플을 빼놓으면 섭섭하죠. 아시는 분들도 많겠지만, 소셜로그인을 사용하는 IOS 앱은 애플로그인이 반드시 구현되어 있어야 합니다. 그래서 이번에는 소셜로그인 중 애플로그인을 하는 법에 대해서 알
수많은 예제에서 주로 다루는 인터넷 통신은 REST 통신입니다. 이는 간단하게 설명하자면 요청과 응답 사이에서 HTTP를 이용해서 JSON을 주고받는 통신이에요. 그런데, 상대방과의 실시간 채팅에 경우 이러한 통신방식이 적절할까요? 아닙니다. 채팅이 오갈때마다 요청과
Flutter에서는 기본 위젯으로 여러가지 버튼 위젯들을 제공하고 있습니다. 가장 대표적으로 ElevatedButton 위젯이 존재합니다. 이를 이용해서도 충분히 훌륭한 UI를 제작할 수 있지만, 만약 그라데이션 색상의 버튼 등등 요구사항에 따라서 새롭게 버튼을 제작해
Flutter에서 상태관리를 도입한 프로젝트는 필요에 따라서 MVC, MVP, MVVM 그 외에도 여러가지 아키텍쳐 패턴을 적용할 수 있습니다. 그 중 MVVM은 기존의 MVC, MVP의 문제점을 개선한 아키텍쳐 패턴이에요.디자인 패턴은 코딩을 하며 자주 나타나게 되는
서버와의 통신을 위해서 반드시 엔드포인트를 제작하게 됩니다. 엔드포인트는 가장 기본적인 데이터 소스의 출처라고 할 수 있으며, http, dio 등을 함께 활용하여 제작하게 됩니다.이러한 엔드포인트는 대부분 비슷한 형식으로 제작되게 됩니다. 이러한 반복적인 작업을 줄일
Flutter 에서는 MaterialPageRoute를 이용하여 각 플랫폼에 맞는 라우팅을 제공하고 있습니다. 하지만, 요구사항에 따라서 여러가지 네비게이션 효과를 구현해야 되는 경우가 있는데요. 이러한 경우에 네비게이션에 애니메이션 효과를 줄 수 있습니다.가장 기본적
Flutter에서는 UI 화면간 라우팅 및 딥링크 처리를 위하여 Navigator를 이용합니다. Navigator를 이용해도 훌륭한 라우팅을 구축할 수 있는데요. 더욱 간편하게 라우팅을 구축할 수 있는 go_router 패키지에 대해서 알아보겠습니다.go_router는
Flutter에서 UI의 대부분은 위젯으로 이루어져 있습니다. Flutter의 위젯에 대해서 알아보도록 하겠습니다.Flutter에서는 UI를 구성하는 가장 기본 단위를 위젯이라고 합니다. 공식문서에서는 위젯을 아래와 같이 소개합니다."Flutter emphasizes
이전 글을 참고하시면 본 글을 읽을 때 굉장히 도움이 될 것이라고 생각합니다. 아래 링크를 통해서 이전에 Flutter의 위젯에 대한 이야기를 미리 읽어주세요.\[Flutter]StatelessWidget & StatefulWidget위 글에 상단부에는 위젯에 대한 내
Flutter의 모든 위젯은 Stateless Widget 또는 Stateful Widget으로 구분되며 위젯 내부의 build()메소드를 이용해서 UI의 렌더링 될 위젯을 선언합니다. 그리고 build()메소드는 항상 아래와 같은 형식으로 이루어집니다.Flutter에
Flutter에서 네트워크 통신(예를 들어, Http 통신) 등을 이용하는 경우 Data source인 Repository를 정의합니다. 보통 이러한 경우 바로 코드를 작성하고 연결하는 것 보다는 테스트를 작성하면 효율적으로 비즈니스 로직의 정상적인 동작 여부를 확인할
"오잉 Flutter는 Stateful이랑 Stateless 위젯만 있던게 아니었나?" 라고 생각한 당신을 위해
Scroll UI를 이용하면 사용자에게 훌륭한 UX를 제공할 수 있습니다. 아무래도 정적인 화면보다는 Scroll UI에 익숙하기에 사용자는 자연스럽게 아래로 스와이프하며 앱을 탐색할 것입니다.오늘은 Flutter에서의 Scrolling 그리고 이러한 Scrolling
이 글을 읽기전에 먼저 하단의 링크의 글을 읽는 것이 이해에 큰 도움이 됩니다.\[Dart]동시성과 IsolateFlutter는 모든 작업을 main isolate에서 처리합니다. 단일 스레드로 작업을 처리하지만, 대부분의 경우 굉장히 빠르게 처리할 수 있기 때문에 사
Flutter에서의 상태관리를 위해서 가장 기초적으로 Provider가 있습니다. 그 외에도 여러가지 상태관리가 존재합니다. 오늘은 BLoC의 개념에 대해서 알아보도록 하겠습니다.들어가기에 앞서, BLoC은 Stream의 개념을 이해한 상태에서 시작하는 것이 좋습니다.
이번에는 Flutter에서 BLoC을 이용한 상태관리를 카운터앱 예제를 통해서 알아보도록 하겠습니다.BLoC을 사용하기 위해서는 Cubit, Bloc이라는 개념을 알아야 합니다. 그에 대한 내용은 아래의 글에서 확인할 수 있습니다.\[Flutter]BLoC에 대해서 알
우리는 StatelessWidget과 StatefulWidget을 이용하여 Flutter 어플리케이션을 개발합니다. 하지만, 어떠한 경우 앱의 상태관리를 위해서 Provider, GetX, BLoC 등을 이용하고 대부분은 StatelessWidget을 주로 이용하게 되
모든 프로그래밍 언어에서 어려우면서도 반드시 알아야 되는 것 중 하나는 메모리 관리입니다. 컴퓨터의 자원은 한정되어 있고, 어플리케이션은 반드시 메모리를 할당합니다. 여러 인스턴스가 존재하면 그만큼 많이 할당합니다. 그렇기에 사용되지 않는 인스턴스는 메모리에서 제거할
두개의 차이점을 아주 간단하게 알아봅시다.
Stateful Widget에서 상태관리가 제대로 적용되지 않았던 이슈를 해결해봅시다.
??? : 상욱님! 육각형 위젯 만들어주세요. 감사합니다 ㅎㅎ