분류 전체보기
-
[Flutter] 플러터 injectable을 사용한 클린아키텍처 적용 (Clean Architecture)카테고리 없음 2024. 9. 2. 11:23
안녕하세요? 지스입니다.이번에는 제가 첫글에 썼던 https://hrjy6278.tistory.com/2 이 클린아키텍처 적용부분을 실제 프로젝트에는 어떤식으로 적용시켰는지 알아보겠습니다. 일단 di를 위한 라이브러리는 get_it 의 슈가코드인 injectable을 사용할 계획입니다. 이 두개의 라이브러리는 의존성 주입시 자동으로 해주는 편리한 도구 입니다. 만약 의존성 주입(di)이 뭔지 잘 모르겠다 하시면! https://hrjy6278.tistory.com/3 제가 쓴 글을 참조 부탁드려요 ㅎ 자 그럼 시작해보겠습니다. 먼저 완성된 앱의 전체적인 구조를 파일트리 형식으로 볼까요? 그림 처럼 구조에서 중요한점이 있습니다.lib 파일에 main만 남게 되는 것이고 각각 독립적인 모듈로 레이어를 ..
-
[Flutter] InAppWebView에서 키보드 커서가 컨트롤 안될 때카테고리 없음 2024. 8. 27. 10:53
안녕하세요. 지스 입니다. 오늘은 제가 웹뷰에서 트러블 슈팅 했던 경험을 공유하려고 글을 씁니다.저희 앱은 글쓰기를 지원합니다. 하지만 이 부분은 웹뷰로 처리한 상태인데요.문제가 여기서 발생하였습니다. 많은 앱 사용자 분들이 패드에 블루투스 키보드를 연결하여 글을 쓰고 싶어하지만키보드의 방향키가 전혀 먹질않아 문의사항이 많이 왔습니다.제가 테스트 해보니 동작 재현이 되었습니다.답은 간단했는데요, Flutter 이슈에도 등록이 되어있더라구요. https://github.com/flutter/flutter/issues/102505 다만 저희는 플러터에서 배포한 패키지가 아닌 InAppWebView 패키지]를 쓰고있는데요.결국 두가지 라이브러리 다 메소드 채널링을 이용하여네이티브 코드에서 WebView를 구성..
-
[Flutter] 플러터 앱 배포 후기카테고리 없음 2024. 8. 12. 15:24
안녕하세요. 지스 입니다. 드디어 2024/08/08 기준 저희 회사의 신규 앱이 런칭 되었습니다!!!! 와!! 정말 이게 되나 했는데 됐네요 ... ^^ 개발인원은 총 4명이며, 2명 2명씩 안드로이드 개발자, iOS 개발자였습니다. 저는 iOS 개발을 하고 있었구요..ㅎ 개발 기간은 2024.01 ~ 2024.03 까지는 다트언어와 플러터에 대한 공부를 진행하였습니다. 4월 부터는 본격적으로 기획자 분과 디자이너분들, 백엔드 개발자와 회의를 주로 진행하였고 4월 말부터 본격적인 개발을 들어가게 되었습니다. 정말 마지막까지는 QA와 개발을 동시에 하느라 야근도 정말 많이 했고, 출시 기간이 3일정도 밀리는 일도 있었습니다. 그럼에도 모두들 고생을 많이 하셔서 배포를 할 수 있게 되었는데요! 이쯤에서 ..
-
[Flutter] FCM Push Notification 삽질기카테고리 없음 2024. 8. 5. 14:27
안녕하세요. 지스입니다.제가 앱 개발시 FCM을 사용하여 Remote Push Notification 쪽을 담당하여 개발하였는데요.제가 겪었던 문제와 헷갈렸던 부분을 정리해 두었습니다. 여러분들도 Push 개발시에도 문제가 없길 바라며,,1. iOS, AOS 둘 다 앱이 완전히 종료된 상태 (Terminated)에서도 Push 수신이 되어야 합니다.위 이미지는 FCM 공식 가이드 문서 입니다. 자세히 보면iOS의 경우 사용자가 앱 전환기에서 애플리케이션을 스와이프하여 닫은 경우 백그라운드 메시지가 다시 작동하려면 수동으로 다시 열어야 합니다.Android의 경우 사용자가 기기 설정에서 앱을 강제 종료한 경우 메시지가 다시 작동하려면 수동으로 다시 열어야 합니다.이렇게 앱이 완전히 종료 되었으면 푸쉬를 못..
-
Flutter 버튼 컴포넌트 만들기카테고리 없음 2024. 6. 23. 18:56
Flutter 버튼 컴포넌트 만들기들어가기 전안녕하세요. 요새 플러터 디자인을 입히느라 정신없는 지스입니다. (주말에도 일을 ㅜㅜㅜㅠㅠ)요새 한참 디자인 입히면서 컴포넌트를 만드는 작업을 같이 하고 있는데요. 컴포넌트를 만들면서 제가 어떻게 대응을 했는지 말해보고자 합니다.먼저 디자인팀과 저희는 플러터로 만드는걸 미리 얘기 했고, Material Design 3 가이드라인도 같이 한번 보고 얘기를 나눠봤습니다.다만 디자인쪽에서는 Material Design 3를 사용한 기본 컴포넌트 보다는 커스텀을 하고 싶어하는 쪽으로 얘기가 기울였고 저희도 최대한 공부를 하고 맞춰드릴 수 있도록 다같이 공부를 했습니다.그래서 컴포넌트의 Button, Input TextField, Bottom Sheet, Chip, D..
-
Flutter Macro카테고리 없음 2024. 5. 20. 21:22
매크로5월 15일 구글 I/O 2024에서 플러터 3.22가 공개 되었네요.미디엄에도 글이 올라왔습니다. Landing Flutter 3.22 and Dart 3.4 at Google I/O 2024웹어셈블리도 공식적으로 지원하게 되었고, 매크로 기능을 소개하였습니다.웹어셈블리는 관심있게 보고 있던 주제였습니다. 최근에 회사에서 러스트 스터디를 진행했는데 스터디 중 웹어셈블리 언어로 러스트가 가능하다는 걸 알았기 때문이죠..!특히 러스트의 소유권에 대한 개념은 참 흥미롭고 재밌었던 것 같습니다.이거에 대한 주제도 따로 한번 써봐야겠네요.. 다시 돌아와서..오늘 볼 주제는 매크로 입니다. Swift에서도 최근 매크로가 도입되었고 조금 공부해봤는데 이번 기회에 플러터에도 매크로가 개발중이라는 사실을 알게 되..
-
의존관계 역전 원칙 (Dependency inversion principle) with Dart, Flutter카테고리 없음 2024. 5. 4. 10:16
SOLIDSOLID는 프로그래밍을 하면서 몇 번 들어보고 공부도 해봤다. 간단히 말하자면 프로그래밍 중 지켜야할 다섯 가지 원칙이다. 사실 단일책임 원칙을 지키게 되면 나머지는 자연스럽게 지켜지는 경우가 많다. 해당 원칙을 지키게 되면 자연스럽게 코드는 높은 응집도(High Cohesion)와 낮은 결합도(Low Coupling)를 가지게 된다. 하지만 마지막에 있는 의존관계 역전법칙이 좀 난해했다. 몇번을 공부해봤지만 그게 뭔데? 의존이 뭐고 역전이 뭔지? 대충 알고 있는 것보다는 한번 공부를 해보는 게 좋겠다 생각하여 글을 쓴다. 내가 헷갈리는 이유가 명칭에 대한 생소한 느낌이 있는 것 같다. 천천히 명칭에 대한 정리를 해보자.의존 (Dependency)말그대로 누군갈 의존한다는 뜻이다. 객체지향 프..
-
[Flutter] Flutter에 Clean Architecture 끼얹기카테고리 없음 2024. 4. 21. 18:13
Clean Architecture(클린 아키텍처)모바일 개발자라면 한번씩 다 들어봤을 단어 입니다.안드로이드나 iOS 개발시에 클린 아키텍처 구조로 프로젝트를 구성하는 경우가 많았습니다.이론은 검색하면 수만가지가 나옵니다. 아래 사진과 같이 말이죠. 간단히 설명하자면 로버트 B 마틴 이라는 개발자가 내놓은 소프트웨어 개발 방법론 입니다. 선대 개발자들이 이렇게 이렇게 ~ 개발하니깐 더 편하고 유지보수도 쉽더라.. 이런 말 입니다. 간단히 알아볼까요? 이 아키텍쳐를 작동시키는 가장 우선적인 규칙은 Dependency Rule입니다. Dependency Rule 저 원들(Circle)은 소프트웨어 각각의 다른 영역입니다. - 소스코드 종속성은 안쪽으로만 향할 수 있음.- 안쪽에 있는 원들은 안에 있는 것들은..