반응형

📜 TIL 67

[Android] 로그인 시 아이디 창에 적힌 글자 한 번에 clear하는 기능 구현

공부한 내용 Android Studio 빌드 안되는 문제 해결하기 → 컴퓨터가 심하게 느려져, Chrome을 켠다던가 바탕화면으로 넘어간다던가 하는 모든 동작이 되지 않음 → 해당 프로그램은 Ahnlab V3 Service. 즉, V3가 CPU를 다 잡아먹고 있었던 것이었다 → 결론적으로 V3를 업데이트 하니 해당 문제가 사라졌다..고 생각했는데 다시 뻑났다 → 일주일간 V3를 지우고 회사업무 보기로 전산팀과 이야기 됨🤣 → V3가 Android Studio의 소스코드를 악성코드로 인식한 것 같다는 추측 → Ctrl + Alt + Del 하여 [작업관리자]모드로 들어가보니 ASDF Service Application 이라는 것이 CPU를 98%이상 잡아먹고 있었음 → Android Studio를 열어 소..

📜 TIL 2023.03.14

Fragment에서 뷰바인딩(ViewBinding)해주는 방법과 적용

오늘 공부한 내용 📋 ViewBinding에 대해 공부 EditText에 적힌 text를 버튼 하나로 한 번에 clear하는 기능 구현 ViewBinding해주는 이유? 화면요소(view)에 접근하여 값을 입력하거나 사용자와 상호작용하는 방식을 제어하기 위해 View Binding을 사용하기 위해서는 build.gradle 파일에 다음 내용을 추가해야 한다. android { buildFeatures { viewBinding true } } 자동으로 생성된 FragmentLoginBinding 클래스를 사용하여 멤버변수를 선언해주자. (onCreateView 이전에 선언해주자) 이제 binding이란 이름의 멤버변수를 사용하여 위젯에 접근이 가능하다. class LoginFragment : Fragmen..

📜 TIL 2023.03.12

Soft Keyboard(virtual keyboard) 띄워졌을 때 키보드 바로 위에 버튼이 보여지도록 만들기

To-do list 📌 Login화면의 ID, PW글자를 text형식에서 img로 바꾸기 Soft Keyboard(virtual keyboard) 띄워졌을 때 키보드 상단에 Enter버튼이 보여지도록 만들기 결과물 아이디 혹은 패스워드 입력창을 클릭 하면 키보드가 올라오면서 Enter버튼이 보여짐 키보드가 내려가면 Enter버튼이 사라짐 키보드가 올라왔을 때 sns로그인하는 버튼과 회원가입 버튼은 사라진 상태여야 함 오늘 공부한 내용 📋 Soft Keyboard(virtual keyboard)가 띄워졌을 때 혹은 그렇지 않을 때를 인식하는 로직을 구현하는 법을 배움 class LoginFragment : Fragment() { private lateinit var loginViewModel: LoginV..

📜 TIL 2023.03.10

[Android] NullPointerException -ViewTreeObserver.dispatchOnGlobalLayout

LoginFragment.kt에서 NullPointerException 발생 처음 이 에러를 맞닥드렸을 땐 제일 첫 번째 줄에 getBinding이 보여서, binding이 되지 않은건가? 하고 생각했었다. 그러나 알고보니 ViewTreeObserver와 OnGlobalLayout에 대하여 문제가 생겨서 발생한 에러였다 에러코드를 읽을 때 반드시 윗부분만 보지 않고 아래쪽도 좀 챙겨보는 습관을 길러보자! LoginFragment.kt class LoginFragment : Fragment() { private var _binding: FragmentLoginBinding? = null private val binding get() = _binding!! private var waitTime = 0L @S..

📜 TIL 2023.03.06

[Android] Navigation으로 Fragment간 이동을 편리하게 만들어주기

Fragment에서 Fragment로 이동에 용이한 Navigation라이브러리 적용시켜보기 → 해당 라이브러리를 사용하는 방법이 다소 어려워 이 영상을 시청하고 그대로 따라하면서 익혀보았다. -> 결과물 부터 보고 싶다면 글 제일 아랫 부분으로 이동! Navigation적용하는 이유 내가 현재 만들고있는 앱은 Single Activity - Multiple Fragments구조이기 때문에 Fragment탐색을 돕는 것에 초점이 맞춰져있는 Navigation라이브러리를 적용하는 것이 좋다 화면 전환 시 Fragment tansaction을 다루지 않아도 된다. 화면 전환 시에 필요한 Back/Up 동작을 기본적으로 지원하기 때문에 수고로움을 줄여준다. Navigation을 구성하는 요소 NavHost N..

📜 TIL 2023.03.01

[Android] 서버 로그인 시 비밀번호 암호화 적용해주기

비밀번호 암호화 기능 구현 우선 기존앱에서 사용하던 암호화 클래스.kt 를 그대로 내 앱에 복붙하였다. 그리고 회원가입을 위해 id와 password를 입력하고 enter버튼을 클릭했을 때 joinEmail(joinEmailRequest)를 실행시키는 소스코드(JoinFragment.kt)로 이동! password값을 edittext.text로 바로 들고왔던 로직에서, 암호화를 적용시킨 password값으로 전환시키는 로직을 추가했다. binding.joinEnterButton.enterButtonRoot.setOnClickListener { val joinEmailRequest = JoinEmailRequest() val 암호화 = 암호화클래스(클라이언트 아이디) val password = bindin..

📜 TIL 2023.02.27

[Android] 안드로이드 개발자 면접질문 정리 part 1

Android 4대 컴포넌트 ❗️ 컴포넌트: 앱의 구성 단위 Activity UI화면을 담당하는 컴포넌트 안드로이드에서 화면을 관리하고 사용자의 다양한 이벤트를 처리하는데 사용 Service 화면에 존재하지 않고 백그라운드에서 실행되는 컴포넌트 화면이 없는 액티비티로서, 메인 스레드를 사용하여 백그라운드에서 동작하는 작업을 수행한다. 액티비티가 종료된 상태(백그라운드 상태)에서도 필요한 동작을 수행시킬 때 사용 사용 중이던 앱에서 다른 앱으로 전환하더라도 서비스에서 실행시킨 작업은 백그라운드에서 계속 실행된다. 음악듣기, 전화받기와 같이 화면이 종료되어도 계속 재생이 필요할 때 사용 그 외에 파일 입출력과 네트워크 트랜잭션을 처리 서비스는 앱에서 오직 1개의 인스턴스만을 생성할 수 있다. 서비스에는 크게..

📜 TIL 2023.02.22

[Android] Retrofit활용해 서버와 통신 및 okHttp로 로그찍어보기

Retrofit활용하여 서버와 앱이 통신하도록 만들기 https://www.youtube.com/watch?v=LyM5v9WqhTM https://www.youtube.com/watch?v=TozBFVVLfq0 → Retrofit을 활용하여 서버와 통신할 준비는 위 영상강의를 통해 구축했다. → 그런데 서버로부터 아무런 반응을 얻어내지 못했다. 서버에게 데이터를 요청할 때 header값을 같이 넣어 요청해야하는데 header를 넣지 않아서 아무런 값을 얻어내지 못한 것 같다. 아무 개발자나 ODDICT서버에 접근하여 데이터를 빼낼 수 없도록, 서버로 데이터를 요청할 때 header에 요청값을 넣어 보내야 하기 때문이다. 서버와 앱이 잘 통신되고 있는지 okHttp로 로그를 찍어 확인하기 https://j..

📜 TIL 2023.02.20

[Android] 화면 이동하자마자 키보드가 생기며 입력창에 포커스 맞추는 기능 구현

결과물 회원가입으로 넘어가자마자 바로 ID 입력창에 포커스가 맞춰지면서 Soft Keyboard가 자동으로 올라오게 만들기 우선 키보드 보이게 만드는 매서드 구현하자 InputMethodManager를 사용하여 해당 기능을 구현할 수 있다. InputMethodManager manager=(InputMethodManager)getSystemService(INPUT_METHOD_SERVICE); 이렇게 우선 InputMethodManager를 만들고 키보드를 보여주는 매서드인 showSoftInput을 호출하자 manager.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT); 만약 키보드를 숨기고 싶다면 hideSoftInputFromWindow를 사용..

📜 TIL 2023.02.19

[Android] OnBackPressedCallback 사용하여 뒤로가기(Back Press) 구현하기

구현하게된 계기 회원가입 버튼 클릭 시 회원가입하는 창으로 이동하는 기능을 만들었다. Fragment -> Fragment이동 근데 휴대폰의 뒤로가기 버튼을 눌러 이전 Fragment로 되돌아 가려하면 회색 창이 나타난 뒤 그 다음 Fragment가 보인다..왜지? 또한 Logcat을 확인해보니 LoginFragment의 binding에서 NullPointerException이 발생 회색창과 앱이 죽은 이유 회색 창에 대해서는, 뒤로가기를 누르면 기존 JoinFragment만 종료되고 이 Fragment의 container역할을 한 JoinActivity(회색창)는 억지로(?) 종료되었기 때문에 아주 잠깐 보였다가 없어지는 것 같다 또한, LauncherActivity(최상단 view)가 화면에 보여지는..

📜 TIL 2023.02.17
반응형