Firebase를 사용한 사용자 인증 Firebase로 사용자를 인증하려면 클라이언트 애플리케이션이 HTTP 요청의 승인 헤더에 있는 JSON 웹 토큰(JWT)을 백엔드 API로 전송해야 한다. API 게이트웨이가 사용자의 API 대신 토큰을 검증하므로 인증 처리를 위해 API에 코드를 추가할 필요가 없지만 선택한 인증 방법을 지원하도록 게이트웨이에 대해 API 구성을 설정해야 한다. // 수정 필요 Firebase Authentication Firebase는 Authentication으로 회원가입과 로그인 관리를 쉽게 할 수 있다. -> 이메일 로그인, 구글 로그인, 전화 등 다양한 방법을 지원한다. 1. Sign-in method 설정 이메일/비밀번호를 활성화 2. Firebase Auth 관련 de..
API 연동 Open API를 통해 http 통신을 하는 솔루션이 주어졌다. 서버와 네트워킹을 하기 전 API 규약에 대해 알아두어야 할 필요성이 있었기에 해당 과제를 수행하였다. 기상청의 일 기상자료를 조회 서비스의 Open API를 이용하여 어제의 최고 기온, 최저 기온, 평균 기온 등을 받아온 뒤 평균 기온의 구간에 따라 다른 이미지를 출력하는 서비스이다. (최초의 계획으로는 오늘의 기온을 받아오려고 했지만 해당 서비스를 제공하는 적당한 API가 존재하지 않아 어제의 기온을 받아오는 앱 서비스로 계획을 변경하였다.) 기상청 정보 출력 서비스 1. 데이터 선정 및 상세 정보 확인 가장 먼저 공공 데이터 포털(https://www.data.go.kr/index.do)에서 원하는 데이터를 찾아서 활용 신..
Solution 해결 과정 이전에 xml 화면끼리 화면 전환을 할 때 인텐트를 이용하여 액티비티를 부르는 방식으로 화면 전환을 진행하였는데 이번에는 바텀 내비게이션 바를 이용하여 프래그먼트로 작성한 화면을 FragmentManager을 사용하여 전환하였다. 시연 영상 어려웠던 점 2가지 1. 내비게이션바 버튼에 클릭 이벤트를 주는 것 bottomNavigationView에 id를 이용해서 클릭 이벤트를 주려고 해도 실행되지 않아서 한참을 찾아 헤맸다. 구글링을 하다가 bottomNavigationView에 setOnNavigationItemSelectedListener() 함수를 사용하면 된다는 해결 방법을 찾았고 이를 적용하였다. binding.bottomNavigationView.setOnNaviga..
Solution 해결 과정 이전에 구성한 화면의 레이아웃을 토대로 xml 파일을 작성하여 직접 화면을 만들어보았다. 기존 화면인 '메인화면'에 새로운 화면인 '프로필 변경 화면'을 추가하여 2가지 액티비티를 xml 파일로 작성하였고, Intent를 통해 이 두 액티비티 화면을 전환하였다. 시연 영상 메인 화면 메인 화면에는 버튼 3개 아래 recyclerView 3개가 존재하는데, Adapter를 이용하여 구간별 모든 recyclerView에 할 일 목록 아이템을 넣어 주었다. 각 recyclerView의 아이템은 화면 스크롤을 통해 확인할 수 있다. 또한, 프로필 사진 옆 텍스트 버튼을 누르면 Intent를 통해 '메인 화면'에서 '프로필 변경 화면'으로 넘어가도록 화면 전환을 수행해준다. 프로필 변경..
Solution 해결 과정 화면의 레이아웃을 구성하는 방법을 학습하기 위해서 기존에 많이 사용하는 애플리케이션 하나를 선정하여 해당 애플리케이션의 뷰와 레이아웃을 정의하였다. *본 게시글은 학습을 위한 글으로 내용 상 오류가 존재할 수 있습니다. - To Do Mate 앱을 선정 뷰 정의 먼저 뷰를 정의해보았는데, 다음으로 화면 좌측 상단에서부터 확인을 해보도록 한다. 프로필이 ImageView(청록색)로 나타나 있는 것을 확인할 수 있다. 바로 아래 작은 글씨로 나타난 사용자 이름은 TextView(보라색)로 나타나 있는데 사용자 이름의 첫 글자가 이미지 뷰 안에 텍스트 뷰로 겹쳐져 있는 모습이다. 프로필을 기준으로 아래쪽에는 어플의 로고와 사용자의 이름, 자기소개가 각각 ImageView와 TextV..
Layout 레이아웃은 앱에서 사용자 인터페이스를 위한 구조를 정의한다. 이 레이아웃은 View 위젯들을 화면에 배치하는 과정에서, 위젯의 위치를 정렬하거나, 연관된 위젯들을 그룹화하는 역할을 수행한다. 즉, Layout 클래스는 View 위젯들을 그룹화하여 배치하기 위한 용도로 사용되는 ViewGroup이며, 자체적인 UI 표시 기능이나 사용자 이벤트 처리 기능은 매우 제한적이다. Layout 종류 LinearLayout RelativeLayout ConstraintLayout FrameLayout TableLayout GridLayout DrawerLayout 기타 레이아웃 LinearLayout 가로 혹은 세로로 순차적으로 쌓아나가는 레이아웃 대표적으로 많이 사용하는 레이아웃이다. RelativeL..
Palette 정리 안드로이드 스튜디오 내에서는 팔레트(Palette)로 액티비티의 화면을 구성할 수 있다. Palette 메뉴에는 Common / Text / Buttons / Widgets / Layout / Container / Google에서 제공하는 카테고리들이 존재한다. Palette의 카테고리별 몇 가지 컴포넌트를 조사한 내용이다. Text TextView : 화면에 텍스트를 표시하는 기능 Password : 키보드를 표시해주고, 비밀번호와 같은 개인 정보 보호 정보들을 치도록 텍스트 숨김처리 Phone : 사용자가 전화번호 형식의 텍스트(xxxx-xxxx)를 입력하기 쉽게 숫자 키보드가 올라오고 '-'가 위치 Number : 기본 숫자 키보드 표시 ( '-', ',' 등의 부호 표시 안됨)..
Manifest 모든 앱 프로젝트는 프로젝트 소스 세트(소스 코드와 리소스의 그룹)의 루트에는 반드시 AndroidManifest.xml 파일이 존재해야 한다. (이때, xml 파일은 정확히 AndroidManifest.xml이라는 이름을 갖는다.) 다시 말해, 매니페스트 파일(AndroidManifest.xml)은 앱의 필수 구성요소로 해당 애플리케이션의 기본적이고 필수적인 정보들을 담고 있다. 매니페스트 파일에 적힌 이 필수 정보들은 안드로이드 빌드 툴과 Android OS, 그리고 구글 플레이에 제공된다. 매니페스트 파일에는 여러 정보가 담겨 있지만 아래의 정보들은 애플리케이션의 구동을 위해서 특히 선언되어야 한다. 앱의 패키지 이름 앱에서 사용되는 컴포넌트(Activity, Service, Bro..