본문 바로가기

Mobile/Flutter11

[Flutter] Sentry 적용해보기 안녕하세요 . 이번글에서는 모니터링 서비스 Sentry에 대해 작성해볼려고합니다. 우선 모니터링이 필요한 이유를 설명해볼게요. 만약 서비스를 운영중에 특정에러가 발생했습니다. 근데 어떤 에러가 발생했는지, 어디서 발생했는지, 어떤 사용자에게서 발생했는지 체크해야 그 에러를 추적하여 정상화시킬수 있겠죠? 그런 부분에서 Sentry는 잘 알려져 있으며 많은 곳에서 사용되고 있습니다. 발생한 에러가 일시적인게 아니라 지속적으로 발생한다면 AppStore 평점이 낮아질 수 있으며, 이는 유저가 빠져나갈수 있는 지름길이기도합니다. 아래에서 하나씩 소개해보겠습니다. ( 적용하는 방법은 크게 어렵지 않습니다! )Sentry란?Sentry는 애플리케이션에서 발생하는 오류를 추적하고, 성능 문제를 모니터링하는 서비스입니.. 2024. 10. 15.
[Flutter] Monorepo 적용해보기(feat. Melos) 프로젝트의 규모가 커질수록 관리는 더욱 힘들어지는 경험을 해보신분이 있으실까요 ? 처음에는 기능이 얼마없었는데, 계속 기능이 추가되면 프로젝트가 점점 더 커질것인데 이를 해결할 수 있는 방법중하나는 Monorepo입니다. (반대는 Multirepo가 있지만 이번글에서는 소개하지 않겠습니다.)Monorepo란?- 코드 공유와 재사용 용이공통된 코드베이스를 여러 프로젝트에서 쉽게 공유하고 재사용이 가능 - 통합된 빌드 및 테스트 환경모든 프로젝트에 대한 빌드 및 테스트를 하나의 환경에서 실행 가능 - 일관된 버전 관리와 의존성 관리프로젝트 간 의존성 충돌을 줄이고, 한 번의 업데이트로 여러 프로젝트에 영향을 줌 하지만 장점만 존재할 수는 없겠죠? 하나의 앱을 여러개의 모듈로 쪼개고, 각각의 모듈을 빌드해야되.. 2024. 9. 26.
[Flutter] FCM 메세지 수신시 알람음 변경하기(Android) 이번에 FCM 수신시에 알람음을 변경하는 방법을 삽질해보았는데, 작은 실수로 삽질을 오래하고있었습니다...(channelId를 설정안함)  우선 FCM알람음을 변경하기 위해서는 서버와 클라이언트 모두 작업을 해줘야합니다.1. Sound 추가우선 사용하고자 하는 알람음 파일을 /res/raw 경로에 추가해줍니다.2. 추가한 Sound파일이름을 payload에 추가/res/raw에 추가한 파일의 이름을 추가합니다 (확장자는 불필요함){ "data": { "data" : "string", }, "notification": { "title": "title", "body": "body", "android": { "channelId": null, "clickAction".. 2024. 9. 18.
[Flutter] flutter_gen을 이용한 Asset 관리 저는 개발할 때 폰트, 색상, 이미지등을 관리할 때 어려움을 느낀적이 있었습니다.아래 처럼 선언할 경우 관리 및 추적이 어려움.Widget build(BuildContext context) { return Image.asset('assets/images/profile.jpeg');} flutter_gen을 사용하니 아래 처럼 사용가능함.Widget build(BuildContext context) { return Assets.images.profile.image();} flutter_genflutter_gen은 플러터 프로젝트에서 Asset 관리 및 코드 자동 생성을 도와주는 도구입니다.이 도구를 사용하면 Flutter에서 이미지, 폰트, 색상 등의 리소스를 더 간편하게 관리할 수 있습니다. flut.. 2024. 8. 13.
[Flutter] Flutter Flavorizr 를 통한 Flavor 설정 프로젝트를 진행하다보면 동일한 기능이지만 다른 버전이 필요할 경우가 있습니다.예를 들어 개발(development), 스테이징(staging), 프로덕션(production) 환경에 맞게 설정을 달리할 수 있습니다.플레이버(flavor)는 소프트웨어 개발에서 동일한 애플리케이션의 여러 가지 변형 버전을 말합니다. 각 변형은 공통적인 코드베이스를 공유하지만, 설정, 리소스, 환경 변수, 또는 특정 기능이 다를 수 있습니다. 이 기능을 직접 설정하는것은 약간의 공수가 필요한데 이것을 쉽게 설정해주는 라이브러리가 있습니다.Flutter Flavorizr기능다양한 환경에 맞는 플레버 관리: 개발, 스테이징, 프로덕션 등 다양한 환경에 맞게 애플리케이션을 구성할 수 있습니다.자동화된 코드 생성: 각 플레버에 대해.. 2024. 8. 9.
[Flutter] 위젯이 생성되기 까지 Flutter로 개발을 할 때 Widget tree, Element Tree, Render Tree를 다들 한 번쯤은 들어보셨을 겁니다.대충 어떤 내용인지는 알고 계시겠지만 그 정도에서 넘어가기에는 더 심도있게 알아야한다고 생각하여 이번 글에서 정리하여 소개해보겠습니다. 우선 Flutter는 선언형 UI 입니다.해당 접근 방식은 UI를 함수나 객체로 선언하여, 상태가 변경될 때마다 UI를 새로 빌드하는 방식입니다.선언형 UI개발자는 UI의 최종 상태만을 선언하고, 해당 상태를 어떻게 표현할지 지정합니다. Flutter에서는 build() 메서드 내에서 UI를 구성하는 위젯을 선언적으로 정의하며, 이 위젯들이 트리 구조를 형성합니다.명령형 UI와 비교하면 명령형 UI에서는 UI의 각 상태를 명령으로 정의하.. 2024. 8. 8.