수정 전수정 후수정 전의 앱은 각각의 탭에 들어갈 때마다 로딩 스피너가 돌아가면서 API 콜을 해서 데이터를 새로 불러왔다.하지만 교정일기 앱은 사용자가 데이터를 추가하는 경우가 아니라면 업데이트할 필요가 전혀 없다.따라서 불필요한 네트워크 통신을 줄이고, 더 빠른 사용자 경험을 제공하기 위해 최초 1회만 데이터를 불러오고, 그 이후에는 탭을 이동해도 기존에 불러온 데이터를 유지해서 보여주고 싶었다. 위젯의 상태 유지하기 AutomaticKeepAliveClientMixin플러터에서는 기본적으로 탭을 이동하면 보이지 않는 탭의 상태가 `dispose` 되어 메모리에서 제거된다.하지만 ` AutomaticKeepAliveClientMixin`을 사용하면 탭을 이동하더라도 위젯이 보존되며 상태를 유지할 수 ..
마이 탭에 "피드백 남기기"와 "개발자 응원하기" 버튼을 추가하고 싶었다.이를 위해서는 버튼 클릭 시 외부 브라우저를 통해 URL로 이동하는 기능이 필요했다. url_launcher | Flutter packageFlutter plugin for launching a URL. Supports web, phone, SMS, and email schemes.pub.devurl_launcher 패키지는 URL 실행 기능을 제공한다. import 'package:url_launcher/url_launcher.dart'; TextButton( onPressed: () { launchUrl(Uri.parse("https://pub.dev/packages/url_launcher")); }, child:..
스플래시 스크린에서 로그인 여부를 확인해야 하는데 만약 네트워크가 아예 연결되어 있지 않다면 어떻게 처리해야 할까?와이파이와 데이터를 모두 끄고 앱에 접속하면 어떻게 대처하는지 여러 가지 앱에 접속해 봤다. 네트워크 연결에 문제가 있다는 사실을 알려주고, 재시도 버튼을 제공하기도 한다. connectivity_plus | Flutter packageFlutter plugin for discovering the state of the network (WiFi & mobile/cellular) connectivity on Android and iOS.pub.dev플러터에서는 connectivity_plus 패키지로 어떤 타입의 네트워크를 사용하고 있는지 혹은 네트워크 연결이 끊겼는지를 확인할 수 있다. i..