전체 글 281

플러터에서 앱 상태복원하기

앱을 백그라운드에 두었다가 다시 열었을 때, 진행 상황이 모두 사라지고 처음 상태로 돌아가 있는 모습을 한 번쯤 본 적 있을 것이다.만약 사용자가 폼을 작성 중이었거나, 잠깐 연락을 주고 받던 중이었는데 앱으로 돌아오자마자 모든 게 초기화돼버린다면 어떨까? 유저 입장에서는 꽤나 불쾌하고 불편한경험일 것이다. 나 역시 어느 날, 앱이 백그라운드에서 돌아오면 초기화된다는 CS를 여러 차례 받은 적이 있다.사용자가 앱 밖에서 작업을 수행하고 다시 돌아올 때 기존 세션 상태가 유지되어야 했지만, 앱이 완전히 초기화되면서 불편함을 호소하는 문의가 다수 이어졌다. 처음엔 이 문제를 마주쳤을 땐 내가 앱을 다시 초기화하는 로직을 넣은 것도 아니고 앱이 저절로 초기화가 되는거라 해결해야 하나 싶었는데 CS..

🐦 Flutter 2025.11.02

[개념정리] Gradle Plugin

Flutter 개발을 하면서 Gradle을 단순히 빌드 도구로만 인식하고, 그동안은 설정을 그대로 복붙해 사용하는 데 그쳤었다.하지만 문법이 달라진 문서를 접하면서 단순히 따라 치는 방식에는 한계가 있음을 느꼈고, 이에 Gradle의 기본 개념과 문법을 제대로 이해할 필요성을 깨닫게 되어 이 글을 작성한다. Gradle Gradle은 Groovy 를 기반으로 한 오픈소스 빌드 도구이다. Ant, Maven과 같은 기존의 빌드툴은 xml 형식을 이용하여 정적인 설정정보를 구성했다.Gradle은 Groovy 라는 언어를 이용하여 코드로서 설정정보를 구성하기 때문에 구조적인 장점이 있다. 아래 코드 예시를 같이 보며 차이점을 한 번 알아보자! Ant 예시// build.xml ..

카테고리 없음 2025.10.04

Flutter MaterialApp 에서 home, initialRoute 차이

Flutter 의 MaterialApp 에는 많은 속성이 존재한다.Route 관련해서도 정말 많은 속성이 존재하는데 나도 처음엔 헷갈린 채로 사용했던 것 같다.이번 글은 혹여나 나와 같이 헷갈리는 사람이 있지 않을까 하여 포스팅해본다.MaterialApp 에서 home, initialRoute 의 차이는?이 둘의 차이가 도대체 무엇인지 헷갈린다.둘 다 앱 초기 라우트를 호출하는 것 아닌가?그건 맞다. 하지만 공식 문서를 보면 initialRoute 를 정의한다면 home 은 정의하지 말아야 한다.왜 둘을 같이 사용할 수 없는가에 대해서 생각해보려면 둘의 역할을 각각 알아봐야 한다.이 둘의 역할은 다음과 같다. home 의 역할- 앱의 최초 진입 화면을 지정한다.- 만약 home 을 지정한다면 routes..

🐦 Flutter 2025.09.17

[Flutter] iOS 웹뷰 흰 화면 뜨는 현상 2탄

지난번 썼던 글이 생각보다 찾는 사람이 많다는 것을 알게 되면서 좀 더 보완할 겸 2탄으로 돌아오게 되었다.또한 이번 회사에서 하는 업무도 웹뷰가 상당 부분 구성되어 있는 앱을 만들게 되면서 다시 똑같은 이슈를 맞닿뜨리게 되었다.1탄에서는 unity webgl 이라는 기술을 사용해서 flutter 앱 안에 웹뷰를 띄우는 방식이었는데 이번 회사에서는 앱 안에 react 로 만들어진 웹뷰를 띄우는 방식이었다.이직한 첫 날, 회사 사람들이 내게 질문했었다.다른 개발자들: 시간이 지나면 하얀색 화면이 뜨는데 혹시 ***님은 이유를 아시나요?나: 혹시 iOS 에서 발생하는 걸까요?다른 개발자들: 네 그랬던 것 같아요.그때 내가 맞닿뜨렸던 이슈가 생각나면서 unity webgl 과 같은 무거운 웹뷰뿐만 아니라 거의..

🐦 Flutter 2025.02.01

2024 회고록

순천에 추억을 남기다올해 초는 잠깐 이사님 회사의 소속이었다. 이사님의 회사가 전남 순천이어서 3월 달에 2번 정도 전남 순천에 내려가게 되었다. 전남 순천에서 순천만습지만 가본 나는 의외로 순천이라는 도시가 내 취향이었다.회사 주변에 위치한 문화마을을 걸어다니며 둘러보았는데, 가게와 카페들이 대체로 아기자기하였고 자연도 있어 매력적이었다. 모든 것이 한적하였고 여유로움이 느껴졌다. (서울에서 느껴본 적 없었던 느낌)이사님 회사 가서 이사님이랑 밥도 먹고 대화도 나누고 힐링의 시간을 가져서 좋은 추억이었다. 특이한 경력을 갖게 되다24년 7월에 이사님 회사에서 다시 대표님 회사로 이동하였다. 그렇게 나는 3개 회사의 경력을 가지게 되었다. 그때 당시 나는 회사 이동 경력에 대해 별 생각이 없..

⏳ 회고 2024.12.30

Flutter Unity 통합하기 2

2024.11.30 - [🐦 Flutter] - Flutter Unity 통합하기Flutter Unity 통합 과정에 대한 글을 보고 싶다면 위 글을 참고해주세요! 1. 만 대가 넘는 전화기기 지원 중단Flutter Unity 통합한 앱을 개발 완성하였고 앱 스토어에 심사 받고 배포할 일만 남았었다.이젠 정말 개발 끝인줄 알았는데 또 다시 난관에 봉착했다.   Google Play Console 에 해당 앱을 제출하게 되면 바로 아래와 같은 경고가 뜬다.    위 경고는 이 버전 앱을 출시하면 기기의 10,696대가 지원 중단될 것이고 설치수 986건에 영향을 미치게 될 것이니 검토해달란 경고이다.비록 우리 앱이 AR 관련 기능을 추가했지만 AR 기능은 우리 앱의 극히 일부분일 뿐 이것이 우리 앱에 설..

🐦 Flutter 2024.12.18

Flutter Unity 통합하기

Flutter에서 AR 화면 띄우기: Unity 통합 과정Flutter 애플리케이션에 AR 화면을 구현하기 위해 Unity 통합을 구현하였다.이번 글은 Flutter 와 유니티를 통합하며 진행했던 과정을 다시끔 되짚어보고자 한다. (flutter_unity_widget 이라는 라이브러리를 사용)     Unity 통합을 위한 Android 프로젝트 설정하기Unity를 통합한 Android 프로젝트를 생성하려면 여러 설정 파일을 수정해야 한다. 아래에서 설정 파일을 수정하는 과정을 알아보자. # 1. 멀티 모듈 설정을 위한 settings.gradle 구성MyProject/├── app/├── unityLibrary/└── settings.gradle 위와 같이 유니티 모듈(unityLibrary)을 포함..

🐦 Flutter 2024.12.01

안드로이드 인텐트

인텐트안드로이드 앱을 개발하면서 액티비티를 뛰우는 가정에서 인텐트라는 것을 만들고 그 인텐트의 파라미터로 액티비티 클래스를 전달하면 그 액티비티가 실행되는 것을 경험해봤을 것이다. val intent = Intent(this, TestActivity::class.java)startActivity(intent)  또한 인텐트 안에 웹 페이지 주소나 전화번호 등을 URI 객체로 만들어 넣으면, 웹 브라우저나 전화걸기 화면이 띄워지는 것도 모두 인텐트가 그 중심이 된다. val marketIntent = Intent( Intent.ACTION_VIEW, Uri.parse("market://details?id=$packageName"))startActivity(marketIntent) 이번 포스팅에서..

카테고리 없음 2024.11.09

[Flutter] iOS 웹뷰 흰 화면 뜨는 현상 1탄

얼마 전 웹뷰를 연동하는 업무를 했다. (근데 일반적이지 않는 웹뷰였다.)앱에 3D 이미지를 붙이기 위해서 유니티 WebGL 이라는 기술을 사용해서 웹뷰를 띄워보기로 했다.유니티와 플러터..? 정말 듣기만 해도 너무 멋진 기술 통합 같았는데.. 결과는 좋지 않았다. 왜 그러한 사례가 없었는지를 생각해봤었어야 했다.나는 웹뷰를 연동하면서 심각한 오류와 문제를 맞이하게 되었고 이를 기반으로 앱에 3D 이미지를 띄운다는 것은 정말 쉽지 않은 일이구나를 깨달았다. 아마 유니티 WebGL 이어서 더 쉽지 않은 일인 것일 수도 있다.. 왜냐하면 WebGL의 JavaScript 환경은 싱글 스레드이기에.. 유니티의 경우, 게임 엔진이 멀티스레딩을 지원하여 물리 계산이나 그래픽 렌더링 등을 별도의 스레드에서 처리..

🐦 Flutter 2024.10.21

글또 10기 다짐글

글또 8기부터 시작하여 어느덧 10기까지 왔다. 🍂신기한 점은 8기를 처음 시작했을 때와 다른 마음가짐인 것 같다.  글또 8기 (영유아기)8기는 그저 다른 개발자들과 커피챗?! 신난다!! 하며 참여했었다.이런 마음가짐으로 참여해서 그런지 글을 대충 쓴 것도 있었고 지금 보니 글 퀄리티가 형편없다고 느낀다. (첫 글짓기 걸음마 대실패)마치 어릴 때 작성한 일기장을 훔쳐 보는 느낌이다.   글또 9기 (청년기)9기를 시작하고 나서는 주로 회사 이슈 업무에 대해서 포스팅을 하였다.회사 이슈 업무에 대해 포스팅한 이유는.. 사실 나는 회사 업무가 재밌고 (매번 다른 프로젝트를 하니 사이드 프로젝트라고 생각하고 있다) 연차가 쌓여서 그런지 회사 일이 점점 많아지면서 일과 삶은 혼연일체가 되었다.   주로 회사..

카테고리 없음 2024.10.02