chatgpt로 simple flutter code 만들기
flutter를 사용해서 앱을 만들 적에 상태관리 위젯 없이 앱을 만들 경우 context를 계속 신경써주면서 코드를 만드는 것이 복잡하고 어렵기 때문에, provider 혹은 더 진보된 riverpod 위젯을 사용해서 상태관리를 해주는 것이 좋겠다는 방향성만 가지고 chatgpt로 코드를 짰습니다. riverpod를 사용해본 적이 없어 아는 게 없지만, 원하는 코드를 만들 수 있습니다.
각 영상 아래의 설명은 chatgpt에게 준 instruction입니다.
[영상]
[영상]
[영상]
[영상]
[영상]
[영상]
[영상]
[영상]
[영상]
이제 이전에 만들다가 상태관리가 안되어서 중단했던 'favorites' 앱을 다시 만들 수 있게 되었음.
+추가)
이어서…
[영상]
다시 이어서…)
중간중간 언급은 생략하고, 이제 24번째 커밋까지 진행함.
[영상]
또 이어서…)
uI 의 에러가 자꾸 발견되고, 이는 UI 설계 상 고려하지 않았던 요소들을 추가해줌으로써 해결되는 경우도 있고, 꼼꼼히 코드를 들여다보고 수정해줘야 하는 부분도 있었다. Re-ordering 후 Drawer Item을 select하지 않고 Drawer 밖을 클릭하여(예상하지 못했던 방법) Drawer를 접고 Screen으로 이동할 시, 변경된 order가 반영되지 않은 문제를 해결. Add를 할 시 Order가 반영되지 않는 문제를 해결. 즉, 원래는 select를 다시 해줄 경우에만 order가 업데이트되고 있었기 때문에 다양한 상황에서도 업데이트가 이뤄질 수 있도록 여러 코드가 추가되어야 했음. 그리고 highlight 기능을 넣음. 26번째 커밋 이후 다음과 같다.
[영상]
업로드한 코드 https://gist.github.com/southglory/cb84f738771701da77b51d6a73b71a6a
flutter riverpod drawer flutter riverpod drawer. GitHub Gist: instantly share code, notes, and snippets. flutter riverpod drawer. GitHub Gist: instantly share code, notes, and snippets.
이걸 favorites라는 앱으로 진행시킬 예정인데, 느낀 점이 있음.
일단 상태관리가 복잡하고, 쉽진 않음. Unity프로그래밍이 정말 편리했구나 라고 여러 번 떠올렸음.
이렇게 간단한 것 같은 UI도 구현이 복잡한 것 같음. 하지만 UI를 조금 바꿨다면 더 쉬웠을 수도 있음. 예를 들어, 수정 작업에 별도의 dialog를 띄워서 입력 및 업데이트를 그 창 안에서만 진행할 수 있도록 하면, 별도의 에러 방지를 위한 작업들이 덜했을 것 같음. 물론 이렇게 처음 계획하고 손이 가는대로 구현할 수 있는 것도 성취감을 주는 일이기는 함.
chatgpt에 대해서 할 말은, 문제 해결을 위해 chatgpt가 제안해주는 방법이 최선이 아닌 경우가 많이 있음. 아무리 코드를 주고 문제를 설명해도 chatgpt가 못해결해주는 문제를 해결하는 경우가 여럿 있었음. 가끔 어느정도 맥락과 방법이 파악, 유추된다면 내가 스스로 바꾸는 것이 훨씬 빠르고 간단히 유일하게 문제를 해결할 수 있었음. 그렇다고 chatgpt없이 전부 코딩하고 싶다는 말은 아님.