전체 글 234

요즘 포스팅이 뜸한 이유

나는 요즘 생산성의 폭발을 경험하고 있다.cursor ai 로 프로토타입 정도는 순식간에 뽑아내고내가 약했던 디자인도 cursor to figma 같은 mcp 플러그인으로 수준급으로 뽑아낼 수 있어졌다.그 반대로 figma 의 디자인을 cursor 로 옮겨와서 바로 레이아웃을 완성할 수도 있다.내가 필요한 이미지나 그래픽 리소스는 gpt 를 이용하면 수준급으로 뽑아낸다.그리고 내가 필요한 부분 ai 누끼를 이용하면 추출해서 바로 적용이 가능하다. 머릿속에 가득했지만 시간이 없다는 이유로 다른 영역에 약하다는 이유로 못했던 것들을막힘없이 만들 수 있게 됐다.앞으로 이 속도는 더 빨라질거고 미래에는 1인 창업자들의 시대가 될 거라고 확신한다.미친듯한 생산성의 증가로 한명이서 5명의 일을 할 수 있게 됐으니의..

잡담 2025.04.04

구글 플레이의 쓰레기 같은 정책

최근에 앱을 출시해보려는 사람들이면 알겠지만2023년 11월 이후로 만든 계정이라면 이제 앱을 출시할때 비공개 테스트를 거쳐서 테스터를 직접 모집한 뒤에14일간 테스트를 시켜야 프로덕션으로 갈 수 있게 변경됐다. 전에는 20명을 모으라고 했지만 지금은 12명으로 줄어든거 같다.반발이 많았던건지 어떤건지는 모르겠지만 완화를 할게 아니라 그냥 폐지해야하는 쓰레기 정책이다. 본인들은 이 방식이 앱이 더 성공할 가능성이 크고 품질이 좋은 앱들이 등록되게 되어서 모두가 좋다는 논리인거 같은데그들이 예상했는지는 모르겠으나 테스터를 대신 모집하고 대리로 테스트해주는 외주 업체가 생기고오래된 살아있는 개발자 계정을 거래하는 시장이 생겨났다.설마 이렇게 될거라고 예상을 못했을까? 기업에서 개발하는 앱이라면 상대적으로 쉽..

잡담 2025.03.20

개발 근황

요즘은 이것저것 재밌는걸 개발하고 있다. 일단 요즘하고 있는 "모닥모닥" 이라는 앱이다.플러터로 개발됐고 백엔드는 따로 개발하지 않고 supabase 라는 firebase 와 비슷한걸 사용해서 구성했다.캐릭터를 선택하고 모여서 그냥 채팅하는 앱이다. 프라이빗한 채팅 커뮤니티와 초대로만 입장 가능한 채팅방, 그리고 모두가 캠프파이어를 떠나면 사라지는 채팅방이라는 컨셉이다. 이렇게 출시를 할까도 생각했는데 추가로 업데이트 해나가고 싶은 기능들에 한계를 느껴서 내부를 유니티로 개발할까 생각중이다.캠프파이어랑 주변에 캐릭터 배치, 카메라 시점이동 기능까지는 구현을 했고 잘 통합시키는건 앞으로 해봐야한다.    다른 프로젝트는 스크린샷은 아직 없는데 홍보를 위한 서비스가 될 것 같다.나는 항상 앱을 개발하는 것 ..

카테고리 없음 2025.03.14

MVI 를 찍먹해보자.

mvi 이야기는 한참전부터 나왔던거 같은데대충 아~ 이런게 있다더라 너 써봤니?하고 말았던 mvi 이제는 현업에서도 꽤 많이 사용하고 있다는 소식이 들린다.mvi 는 쉽게 개발해주는 라이브러리도 많이 쓰는거 같은데역시 튜닝의 끝은 순정이라고나는 기본 개념을 익히는 느낌으로 만들어볼까한다.이렇게 익히고나서 라이브러리를 쓰는게 편해지는거 같고 기분이 좋으니까 그래서 mvi 가 뭘까 짠.View ( Model ( Intent( ) ) ) 첨에 이거 봤을때는 그래서 이게 뭔데 라고 생각했지만알고나니까 아! 역시는 역시다 라고 생각한다.하지만 나는 친절한 개발자니까 좀 더 풀어서 적어보자. 대충 요렇게 돌아가는건데 view : 우리가 맨날 만드는 화면이다. view 나 compose 모두가 될 수 있다.inten..

Android 2025.01.19

플러터의 화면이동 go_router

Go_Router  플러터에는 화면이동을 만드는 방법이 여러가지가 있는데기본적으로 플러터에서도 Navigator 가 있어서 라우팅에 전혀 문제는 없지만우리는 항상 좀 더 편하게 개발을 하고 싶으니까 go_router 를 써보자. 실제로 많은 프로젝트에서도 채택하고 있는 듯하고템플릿 구문(예: "user/:id')을 사용하여 경로 및 쿼리 매개변수 구문 분석목적지에 대한 여러 화면 표시(하위 경로)리다이렉션 지원ShellRoute를 통한 여러 Navigator 지원Material 및 Cupertino 앱 모두 지원Navigator API와의 하위 호환성같은 기능들도 지원하고 있어서 화면이동을 구현하는데 있어서 부족함이 없다. 기본 세팅 패키지를 추가해주자.dependencies: go_router: ^14..

Flutter 2025.01.05

2024년을 돌아보자.

정말 많은 일이 있었다. 내가 사랑하는 고양이가 생겼고다니던 회사를 갑작스럽게 나오게 됐고여러번의 이직시도와새로운 회사의 취직미루고 미루던 링크집의 출시 또 여러가지 개인적인 일들에서도 슬픔과 기쁨이특히나 많았던 한 해였다.한 마디로 표현하면 정말 인상깊은 1년이라고 해야할까 개발자로서는 어떤 인생을 보냈을까.사실 임팩트 있는 뭔가를 했는지는 모르겠다. 공부를 매우 열심히 했는가?  x성공적인 프로젝트가 있었는가? x블로그를 열심히 썼는가? x 그러나 잘한거도 한 번 적어보자... - 요구분석과 설계를 잘 할 수 있게 된거 같다. 이제는 보기 쉽고 명확한 설계를 작성하는 것이 어렵지 않다.- 코드를 작성할때 좀 더 좋은 코드를 위해 의식적인 노력을 하게 된거 같다. 개발 완료를 위해 달리기만 했던때의 작..

잡담 2025.01.01

안드로이드 컴포즈 네비게이션 startDestination 에 argument 전달하기

이 글은 컴포즈 네비게이션 2.7 버전을 기준으로 작성됐다. 네비게이션을 쓰다가 startDestination 로 시작하는 화면에서 바로 argument 를 전달하고 싶을수도 있다.처음 시작하는 화면에서 쓰이고 있는 hiltViewModel 에서 SavedStateHandle  에 argument 로 던진 데이터를viewModel 이 시작될때부터 가지고 있어야하는 상황이라던가 그럴때 말이다. 그런데 argument 를  startDestination 경로에 넣으면 SavedStateHandle 에서 값을 가져오질 못한다.정확하게 찾진 못했는데 startDestination 는 정적인 경로만 등록이 가능하다는거 같다. 이때 arguments 를 등록하는 곳에 defaultValue 를 전달하고자 하는 값을..

컴포즈 네비게이션 2.8 이후

안드로이드 네비게이션은 2.8 버전 이후로 Kotlin-Serializable 기반 타입 안정성 시스템이 도입됐다.이전에는 뭔가 나사 하나 빠진듯한 라이브러리였는데 이제야 좀 그럴듯해졌다.이거말고도 네비게이션은 버그가 참 많았던거 같은데 그런거도 많이 잡힌거 같다. 암튼 2.8 버전으로 달라진게 뭐냐면 아래처럼 화면을 이동할 수 있다. @Serializableobject Adata@Serializabledata class Bdata(val id: String)NavHost(navController, startDestination = Home) { composable { AScreen(onNaivateTo = { id → navController.navigate(Bdata(id)) }..

Android 2024.12.17

어쩐지 계속 잡담만 쓰는거 같지만

솔직히 요즘 블로그 쓰는게 귀찮다.써봐야겠다 라고 쌓아둔 소재는 많은데 글 쓰는게 그냥 귀찮은거 같다.글도 계속 안쓰니까 블로그 들어오는 사람도 확 줄어든게 느껴진다.뭐 그런거 신경쓰면서 썼던건 아니긴 하지만 기술적인 내용이 아니더라도 꾸준히 내 개발자 인생은 귀찮아도 기록을 남기려한다. 요즘은 설계를 많이하고 있다.바쁘다는 핑계로 그냥 시작하는게 빠르다는 핑계로 개발부터 먼저했던 습관을 버리는데 꽤 고생을 했다.요구사항을 분석하고 누가 읽어도 무슨 기능이 어디에 있어야겠구나를 알 수 있을 정도로간결하지만 명확하게 설계서를 적어내는건 나 뿐만 아니라 이걸 보고 개발에 참여할 사람들을충분히 고려해야 했기에 변수명 함수명 적는거 하나에도 신중해야했고코드 컨벤션을 항상 생각하면서 적어야했다. 그래도 이게 익숙..

잡담 2024.12.02