앱 내에서 백엔드와의 통신을 돕는 라이브러리입니다.
http는 플러터 앱에서 HTTP요청을 보내고 응답을 받을 수 있는 라이브러리입니다. REST API와 통신할 때 주로 사용되며 이 라이브러리를 통해 우리의 서버와 통신할 수 있습니다.
http 요청과 응답을 파싱하는 데 사용되는 라이브러리입니다. 서버와의 http 통신을 진행할 때 http 응답을 구조화된 데이터로 변환하여 저장할 수 있습니다.
앱 내에서 보안을 높이기 위해 사용된 라이브러리입니다.
환경 변수를 편리하게 로드하고 사용할 수 있게 해줍니다. .env 파일을 통해 엔드포인트, 비밀키 등을 관리하여 코드 내에서 안전하게 사용할 수 있습니다.
암호화 기능을 제공하는 라이브러리로 해시, HMAC, SHA-256 등의 암호화 알고리즘을 지원합니다. 사용자의 Access Token, Refresh Token, UUID 정보를 관리할 때 사용됩니다.
플러터 내 앱 내부에서 민감한 데이터를 저장하는데 사용됩니다. 암호화된 저장소를 제공하고, 비밀번호, 토큰 등의 보안 데이터를 저장하는데 사용됩니다. 각 OS별로 네이티브 보안 스토리지를 사용하며 Android 루팅 또는 iOS 탈옥을 하더라도 접근할 수 없습니다.
앱 내에서 회원가입, 로그인, 로그아웃을 진행할 때 사용된 라이브러리입니다.
플러터 앱에서 파이어베이스 기능을 사용하기 위해 필요한 라이브러리입니다.
플러터 앱에서 파이어베이스 인증을 사용하기 위해 필요한 라이브러리입니다.
앱 내에서 주요 기능들을 구현하는 데 사용한 라이브러리입니다.
앱에 있는 언어를 다국어로 쉽게 설정할 수 있게 해주는 라이브러리입니다. json 파일을 통해 번역 문자열을 쉽게 관리할 수 있으며 사용자의 언어 설정에 따라 자동으로 번역된 문자열을 표시해줍니다.
앱을 종료하고 다시 시작할 때 이를 편리하게 함수로 호출하여 진행할 수 있습니다. 언어를 재설정할 때 앱을 재시작해야 언어가 적용되는데 이 때 사용되었습니다.
HTML 문자열을 Flutter 위젯으로 변환해주는 기능을 제공합니다. 공지사항을 HTML 형식으로 크롤링하여 앱에 보여줄 때 사용됩니다.
이미지를 갤러리에서 선택하거나 카메라로 촬영하여 불러오는데 사용됩니다. QnA의 글 작성에서 이미지를 업로드할 때 사용됩니다.
앱에서 다양한 사용 권한(카메라, 녹음 등)을 요청하고 관리하는 데 사용됩니다. 사용자는 권한을 허용하거나 거부할 수 있으며 이에 따라 권한 상태를 확인하고 관리하는 데 사용합니다.
오디오 녹음 및 재생 기능을 제공하는 라이브러리이다. 발음평가를 위해 오디오를 녹음하고, 재상하며, 서버로 전송할 때 사용됩니다.
플러터 앱 내부에서 오디오 설정 및 제어를 하기 위한 라이브러리입니다. 녹음을 진행할 때 사용하는 코덱 관리를 할 때 사용하였습니다.
오디오 녹음 기능을 제공합니다. 발음 연습에서 발음을 녹음할 때 사용됩니다.
파일 시스템 경로 관리 및 편집을 하는 데 사용된다. 발음 평가에서 음성을 녹음하고 불러오는 데 사용된다.
오디오 파일 재생을 위한 라이브러리로 재생, 일시 정지, 중지 등의 기능을 제공합니다. 발음 연습에서 나의 발음을 재생할 때 사용됩니다.
이미지를 확대/축소할 수 있는 위젯을 제공합니다. 홈 화면의 기타 정보에서 학교 지도, 시설 정보를 확인할 때 사용됩니다.
플러터 내부에서 사용하는 페이지 간의 네비게이션을 쉽게 관리할 수 있게 해주는 라이브러리입니다. url경로 기반의 라우팅을 지원하고, 페이지 전환 애니메이션, 동적 라우팅 등의 기능을 제공합니다.
앱을 처음 실행하면 등장하는 Splash Screen을 관리할 수 있습니다. 특히 Android의 경우 Android 12 버전 이후로는 Splash Screen 기본값이 설정되어있어 Android 버전에 따라 Splash Screen을 다르게 설정해야하는데 이를 편리하게 관리할 수 있습니다.
사용자의 화면 크기에 따라 UI 요소의 크기와 배치를 자동으로 조정하여 모든 사용자가 동일한 디자인의 화면을 볼 수 있도록 해준다.
간단한 알림 메시지를 화면에 표시해줍니다. 특정 작업을 수행했을 때 피드백을 제공하는 용도로 사용됩니다.
국가를 선택할 수 있는 UI 컴포넌트를 제공합니다. 회원가입을 진행할 때 국가 정보를 입력받기 위해 사용하였습니다.