Android/Basic
![[Android] RecyclerView](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc4WlPe%2FbtrAGguTW3e%2FtAitoj0lOec6Pu2LdXimQK%2Fimg.png)
[Android] RecyclerView
RecyclerView ? -개요 RecyclerView는 리스트뷰(ListView)의 문제점들을 개선했다. 리스트뷰는 위의 그림처럼 아이템들이 삭제되고 생성되는 것을 반복했었다. 이로 인해 굉장히 낭비가 심해지면서 이러한 문제들을 해결하고자 리싸이클러뷰가 등장했다. 원래라면 사라질 뷰의 객체를 삭제하지 않고, 아래쪽 새로 나타날 곳에 재사용을 해서 RecycleView이다. 여기서 주의해야할 점은 데이터까지 재사용하는 것이 아니라!! 뷰객체의 아이템을 재사용할 뿐이다 즉! 원래 만들어 놓은 객체만 재사용한다. -특징 위의 그림처럼 리싸이클러뷰에 담길 데이터는 데이터리스트 클래스에 담긴다. 가운데 있는 어댑터가 아이템뷰(객체)를 생성하고 객체들의 데이터리스트들의 데이터를 가져와서 바인딩해준다. 실질적으로..
![[Android] ViewModel, LiveData](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fl7kT4%2FbtrAB0Fb1tq%2FgQmr68O7d0qeSGlgfrVFw0%2Fimg.png)
[Android] ViewModel, LiveData
ViewModel ? -MVVM 패턴에서 수명주기를 고려하여 데이터를 저장하고 관리한다. -ViewModel 객체는 다른 activity나 fragment에서도 사용할 수 있다. 위 그림은 뷰 모델의 생명주기이다. 위의 그림과 같이 액티비티가 시작되고, 종료될 때 까지 뷰모델은 유지된다. 안에서 프래그먼트가 생성되고, 다른 프래그먼트로 옮겨진다고 한들 액티비티가 살아있는 동안에는 뷰모델도 살아있다! 즉, ViewModel은 생명주기의 영향을 받지 않고 데이터를 유지, 보관하기 위해 사용한다고 볼 수 있다! LiveData ? -보통 ViewModel과 같이 사용되며, observer패턴을 구현하기 위하여 사용된다. -관찰 가능한 일반 클래스와 달리 LiveData는 수명 주기를 인식한다. 실습 실습하기전..
![[Android] Retrofit2 사용하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRqNZL%2FbtrAc6eU3w3%2F7XayKbaFKe0rtNJwMeKFWk%2Fimg.png)
[Android] Retrofit2 사용하기
Retrofit2 ? -Rest API 통신 라이브러리 -Rest API 통신을 위해 구현된 스퀘어사의 OkHttp 라이브러리의 상위 구현체 -android와 서버 환경에서 HTTP API를 쉽고 안전하게 사용할 수 있도록 도와준다. Retrofit을 사용하기 위해 사전준비를 해보자! 1. 준비 네트워크를 사용할 것이니 다음과 같이 AndroidManifest.xml파일에 추가하자. 또한, build.gradle에 의존성도 추가해주자!! // Retrofit2 implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:retrofit-mock:2.9.0' implementation 'com.goo..
![[Android] UnknownServiceException:CLEARTEXT communication to **** not permitted ....Error](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9kU6A%2FbtrAcQQTwmk%2Fhjmkjup9CN1lU3sH3PIvxK%2Fimg.png)
[Android] UnknownServiceException:CLEARTEXT communication to **** not permitted ....Error
서버 rest api 연동을 하다가 다음과 같은 에러가 발생했다. UnknownServiceException:CLEARTEXT communication to **** not permitted network security policy 서버하고 연동을 하다보니 에러를 해결해도 계속해서 또 다른 에러가 발생했다. 하지만 위와 같은 에러는 처음봤다.. 구글링을 해보니 안드로이드 pie에서 http로의 전송이 기본적으로 차단된다고 한다........... 알고보니 내가 지금 사용하고 있는 주소 네트워크 경로가 https가 아니고 http로 되어있었다. private const val BASE_URL = "http://********:8080" 너무 쉬운 에러였다고 생각하고 https로 바꾸고 실행해보니 또 다른..
![[Android] Splash 화면 만들기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbism3X%2FbtrAeJvY6IV%2FKiF3NCrjcuSoiP3fiWiISk%2Fimg.png)
[Android] Splash 화면 만들기
Splash Screen ? 앱의 대표 이미지, 로고, 앱을 표현할 수 있는 것을 그래픽요소로 보여주는 화면으로 프로그램이 실행되거나, 로그인 했을 때 나오는 화면이다. 목적 안드로이드 앱을 실행할 때 약간의 시간이 소요되는데, 그 때 아무것도 없는 빈 화면 보다는 지루함을 방지하기 위해 사용된다. 간단한 뷰이므로, drawble 폴더에 xml파일을 만들어 하기도 하는데 이 글에서는 직접 레이아웃을 만들어보자!! 레이아웃에 직접 activity_login_success.xml 이라는 파일을 만들어 로그인을 했을 때 홈화면에 들어가기전에 보이는 스플래시 화면을 직접 구현했다. class LoginSuccessActivity : AppCompatActivity() { override fun onCreate(..