Mobile22 Dart에서 비동기 작업을 처리하는 방법 - 1 (Future) 대표적인 싱글 스레드 언어인 JavaScript는 비동기 작업을 처리하기 위해 Web API와 Event Loop를 활용합니다. JavaScript 엔진 내부에서 직접 비동기 작업을 처리하는 것이 아니라, 작업을 Web API에 위임한 후 **이벤트 루프(Event Loop)**를 통해 결과를 받아와 실행하는 방식이죠.Dart도 이와 유사한 방식으로 비동기 작업을 처리합니다. Dart 내부에서 모든 작업을 실행하는 것이 아니라, Dart VM과 Event Loop를 활용하여 비동기 작업을 관리합니다.공식 문서에서도 Event Queue 에 대해 설명하고 있으며, Dart의 이벤트 루프 동작 방식에 대한 자세한 내용은 아래 링크에서 확인할 수 있습니다. Dart Event Loop Dart의 동시성Isol.. 2025. 3. 15. [SwiftUI] SwiftUI 문서 찍먹하기 이번 글에서는 예전에 UIKit, Storyboard 개발을 다 해보았지만 SwiftUI에 대해서는 얕은 지식을 가지고 있다는 생각이 들었습니다. 저의 궁극적인 목표는 UIKit과 SwiftUI 모두 구현하여 두가지를 하나의 프로젝트에 녹여내는게 제 목표입니다.아래는 각각의 사용후기를 적어보았습니다.사용후기UIKit장점오랫동안 사용되어 아직도 사용되는곳이 많습니다.레퍼런스가 많습니다.단점CodeBase로 UI를 구현하다보니 코드의 양이 방대해집니다. (관리가 필요하다)SwiftUI처럼 Preview가 지원되지않음습니다.SwiftUI장점UIKit에 비해 적은 양의 코드로 UI개발이 가능합니다.실시간 미리보기를 통해 빠른 개발이 가능합니다.단점UIKit에 비해 새로운 개념과 접근 방식을 익혀야 합니다.iO.. 2024. 11. 11. [Flutter] Sentry 적용해보기 안녕하세요 . 이번글에서는 모니터링 서비스 Sentry에 대해 작성해볼려고합니다. 우선 모니터링이 필요한 이유를 설명해볼게요. 만약 서비스를 운영중에 특정에러가 발생했습니다. 근데 어떤 에러가 발생했는지, 어디서 발생했는지, 어떤 사용자에게서 발생했는지 체크해야 그 에러를 추적하여 정상화시킬수 있겠죠? 그런 부분에서 Sentry는 잘 알려져 있으며 많은 곳에서 사용되고 있습니다. 발생한 에러가 일시적인게 아니라 지속적으로 발생한다면 AppStore 평점이 낮아질 수 있으며, 이는 유저가 빠져나갈수 있는 지름길이기도합니다. 아래에서 하나씩 소개해보겠습니다. ( 적용하는 방법은 크게 어렵지 않습니다! )Sentry란?Sentry는 애플리케이션에서 발생하는 오류를 추적하고, 성능 문제를 모니터링하는 서비스입니.. 2024. 10. 15. [Dart] Equatable 뽀개기 이전에 Swift에서는 Equatable 프로토콜을 기본으로 지원해주었는데, Dart에서는 pub으로 제공되어있습니다. 객체를 비교하는 방법에는 Equatable을 사용하는 방법도 있다는것을 소개해보겠습니다.(다른 강의에서도 많이 사용함) Equatable을 사용하는 이유?Dart에서 객체를 비교할 수 있으려면 종종 == 연산자와 hashCode를 재정의해야 합니다.이 과정은 번거롭고 지루할 뿐만 아니라, 이를 올바르게 수행하지 않으면 코드가 비효율적이거나 예상대로 동작하지 않을 수 있습니다. Equatable의 역할은?Equatable을 사용하면 == 연산자와 hashCode를 직접 오버라이드할 필요 없이 객체 비교를 간편하게 처리할 수 있습니다. 이 덕분에 보일러플레이트 코드를 많이 작성하는 데 시.. 2024. 10. 7. [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. 이전 1 2 3 4 다음