[Flutter Happy Path] - 1

김영진·2022년 11월 2일
0

Flutter Happy Path

목록 보기
1/1

목적

플러터 공식 홈페이지에 happy path가 업데이트 되었는걸 확인하였다. 나중에 봐야지 하고 차일피일 미루다가 평소 알고 지내신 '갓'쿠로님이 원티드와 함께 스터디를 진행하여서 happy path를 공부하려고 한다. 오늘 포스팅은 본격적인 스터디에 앞서 공식문서를 간략하게 읽는 정도의 포스팅을 할 예정이다.


내용

intro

고급 플러터 개발자가 되려면 어떻게 해야할까? pub.dev 웹사이트에는 수천개의 패키지와 플러그인이 있다.

이것들을 어떻게 선택해야할까?

아마도 결정하기 힘들것이다.

행복한길 프로젝트가 도와준다고 한다. 다양한 유형의 기능을 앱에 추가하는데 도움이 되도록 행복한 길 권장사항을 만들어주었다. 다양한 방법으로 목표를 달성할 수 있지만, 더 크고 복잡한 앱을 빌드하기 시작하면서 새로운 플러터 개발자들에게 몇가지 지침을 제공하고 싶었다고 한다. 이것들은 추천할 수 있는 솔루션 이라는것을 명심해라.


광고

인앱 광고로 모바일에서 수익을 창출하세요
google_mobile_ads 패키지를 활용한 인앱 광고를 권장한다. AdMob에 무료 계정을 등록해야 하며 다음을 포함하여 하나 이상의 AdMob기능을 활용할 수 있습니다.

  • 다양한 광고 형식이 있다 : 배너, 전체화면, native, 보상
  • 광고가 표시되는 시점을 제어합니다. 예를들어, 게임의 레벨 사이, 작업을 완료한 후 또는 새 게임을 시작하기 전에
  • 앱에 대한 결정을 내리는 데 도움이 되는 수익 창출 보고서

유용한 링크


백그라운드 처리

Dart코드의 Headless실행을 활성화합니다

백그라운드 처리 경로는 모바일 장치의 백그라운드에서 Dart기능을 실행하는 방법을 보여줍니다. 백그라운드 처리를 사용하면 Http 요청 만들기, 무거운 계산, 다른 isolate에 알림 표시와 같은 작업을 수행할 수 있습니다.

백그라운드 처리를 모바일 앱에 통합하는 몇가지 방법이 있다
1. Dart isolate를 활용하는 방법 : Dart isolate를 사용하면 별도의 스레드를 만들어 백그라운드에서 동시에 작업을 실행할 수 있습니다.
2. WorkerManager 플러그인을 사용하는 방법 : Dart 코드의 영구적인 헤드리스 실행을 활성화할 수 있습니다. 앱 다시시작, 시스템 재부팅을 통해 작업이 예약된 상태로 유지됩니다.

패키지와 플러그인의 차이점이 있는가? 물론 있지! 플러그인, 패키지 둘다 패키지다, 하지만 플러그인은 패키지의 한 타입이다. 플러그인은 플랫폼별 코드(코틀린, 자바, 스위프트, 옵젝씨)가 포함된 패키지를 플러그인이라고 부른다. 자세한건 이글을 참고

WorkManager의 일부 기능은 다음과 같습니다

  • 지속적인 작업 처리
  • 유동적인 스케쥴링
  • 작업에 제약 조건을 적용할 수 있다 : 네트워크 연결 확인, 디바이스가 충전중일때만 실행, idle 상태일때만 실행(안드로이드만 가능)

유용한 링크


지리적 위치

향상된 앱 기능을 위해 사용자의 위치를 결정합니다

사용자의 위치를 파악하는 Geolocation은 많은 애플리케이션에서 중요한 기능입니다. 예를들어 쇼핑 앱은 배송위치를 알아야하고 피트니스앱은 이동거리를 추적해야합니다. 플러터 생태계의 플러그인은 이러한 경험을 구축하는데 도움이 되는 다양한 기능을 제공합니다

이 기능을 제공하는 플러그인은 flutter favorite에 rated 된 geolocater 플러그인 입니다. 이 플러그인을 사용하면 1. 권한 확인 및 요청 2. 일회성 위치 가져옴 3. 사용자가 이동할때 지속적으로 업데이트되는 값 스트림을 제공할 수 있습니다.

기능은 다음과 같습니다

  • 장치의 현재 위치를 가져오는 기능
  • 위치 업데이트 수신
  • 장치의 위치 서비스가 활성화되어 있는지 확인하는 기능

유용한 링크

  • Geolocator 플러그인 튜토리얼로 사용자의 위치를 파악하는 방법
  • geolocator 플러그인

불변 데이터

변경할 수 없는 데이터 구조를 처리합니다

변경할 수 없는 애플리케이션 데이터를 쉽게 표현하려면 변경 불가능한 데이터를 처리하고 조작하는 방법을 제공하는 두 가지 플러그인을 확인하세요
1. frezzed
2. json_serializable
위 두 패키지는 Flutter favorite다

이 플러그인들은 독립적으로 사용될 수 있지만 함께 사용해도 좋다. freezed 패키지는 인메모리 객체를 다루고 json_serializable은 이러한 변경 불가능한 객체를 json 형식과 매핑합니다.

유용한 링크


구조화된 로컬 스토리지

데이터를 유지 및 보존합니다

구조화된 로컬 저장소는 사용자 장치에 비싸거나 느린 데이터를 선택적으로 저장하여 앱 성능을 높이고 사용자 경험을 개선합니다. 로컬 데이터 유지를 위한 두 개의 플러그인을 제안합니다. 하나는 drift 그리고 hive. 어느 플러그인을 너의 니즈에 따라 골라야할까.

Drift 는 플러터 favorite에 rated 되어 있다.Drift는 SQLite를 중심으로 모든 플러터 플랫폼에서 완벽하게 타입화된 객체 관계 매핑(ORM)을 제공한다. 사용자 기기에 완전한 관계형 데이터베이스가 필요한 개발자는 이 패키지의 혜택을 가장 많이 받을 것이다

Hive는 사용자 지정 스토리지 솔루션을 중심으로 완벽하게 타입화된 객체 문서 매핑(ODM) 을 모든 flutter 플랫폼에서 제공한다. 완전한 관계형 데이터베이스가 필요하지 않은 개발자들은 특히 서버에서 문서 기반 스토리지를 사용하는 경우(파이어스토어) 이 패키지의 혜택을 가장 많이 받을 것입니다.

유용한 링크


웹 소켓

클라이언트 및 서버 연결을 처리합니다

웹 소캣들은 플러터 클라이언트와 서버와의 의사소통을 가능하게한다. 이 path 에서는 웹 소켓을 사용하고 설치할때 사용할 두가지 패키지를 소개한다

web_socket_channel 패키지를 클라이언트 측 웹 소켓 연결에 사용하고,
web_socket_connections 패키지를 서버사이드 다트 웹소켓에 사용해라.

유용한 링크


결론

이런이런 작업들을 위해서 이런이런 패키지들을 사용할 수 있겠구나 라는것을 알 수 있었고, 예제를 직접 작성해보면 좋을 것 같음.

profile
2021.05.03) Flutter, BlockChain, Sports, StartUp

0개의 댓글