[Android APP] feat. Kotlin/Kotlin 공부(34)
-
Android Kotlin : Retrofit2 동적 Url주소 만들기
개요 Retrofit으로 통신을 하기 위해 코드를 작성 중에 고정 Url이 아닌 사용자마다 주소가 바뀌는 Uri를 넣어줘야하는 경우가 발생했다. 본문 @Path 이노테이션 사용하기 1. Interface interface chkUserIdService { @Headers("Content-Type: application/json") @GET("/user/checkUId/{userId}") fun requestchkUserId( @Path("userId") userId : String, @Header("code") code: String? ): Call } 서버 uri값이 /user/checkId/{userID}처럼 사용자의 아이디 값을 동적으로 넣어줘야하는 경우같을 때 @Path를 사용해서 주소에 user..
2022.09.08 -
Android Kotlin : SHA-512 암호화 함수
개요 개발 중 비밀번호를 웹으로 전송할 때 암호화를 해서 전송해달라고 요청이 왔다. 그래서 암호화하는 함수를 가져왔다. 단방향 해시 함수란? 수학적인 연산을 통해 원본 메시지를 암호화된 메시지인 다이제스트(digest)로 바꿔서 생성하는 함수이다. 원본을 알면 암호화된 메시지를 구할수 있지만, 반대인 암호화된 메시지로 원본 메시지를 구할 수 없기 때문에 '단방향' 이라고 부른다. 종류 SHA MD HAS 본문 SHA-256이나 md로 암호화하는 자료는 많이 있다. 하지만 SHA-512로 암호화하는 함수는 자료가 많지 않다. SHA-512로 암호화해서 전송하라는 요청을 받았고 아래 함수를 사용해 암호화해서 전송을 한다. 1. getSHA512 //비밀번호 암호화(SHA-512) fun getSHA512(i..
2022.09.08 -
Android Kotlin : URI에서 파일명 및 확장자 추출하기
개요 우선 기존에 Context 안에 플래그로 openFileOutput 함수에 전달하여 쓰던 방식이 안드로이드 정책상 막혀버렸다. 그래서 파일을 가져오면 content://로 시작하는 Content URI를 제공받게 된다. 아래 함수는 Content URI에서 파일명과 확장자를 추출하는 함수이다. 코드 1. getName(파일명 가져오는 함수) //Uri to 파일명 추출 함수 private fun getName(uri: Uri?): String { val projection = arrayOf(MediaStore.Files.FileColumns.DISPLAY_NAME) val cursor = managedQuery(uri, projection, null, null, null) val column_ind..
2022.09.08 -
Android Kotlin : Rest API 통신 방법(Retrofit2)
개요 앱을 개발할 때 서버에서 API를 통해 통신을 해서 데이터를 주고 받아야한다. 이 때 사용하는 라이브러리 중 하나가 Retrofit2이다. 본문 먼저 API란 데이터베이스와 통신을 원활하게 도와주는 일종의 통로같은 역할이다. 우리가 API서버에 무언가를 요청(Request)하면 API서버에서 처리하고 원하는 값들을 답변(Response) 해준다. 안드로이드 개발이라 하면 보통 클라이언트 개발을 한다고 생각하면 된다. 그림으로 설명하면 아래와 같다. 이런 관계라고 볼 수 있다. 게임을 하는 사람들은 알겠지만 우리가 게임을 하기위해 다운받는 건 서버가 아닌 클라이언트다. 사용자가 서버에 서비스를 요청하면 서버는 요청을 받아 답변을 해주는 것이다. ===============================..
2022.08.30 -
Android Kotlin : SharedPreferences를 이용한 자동 로그인
개요 sharedPreferences란 - 간단하게 값을 저장하기 위해 사용하는 일종의 저장소이다. - 토큰관리나 초기 설정값, 자동로그인 등과 같이 간단하게 값을 저장하기 위해 사용한다. - 앱이 삭제되기 전까지 보존되기 때문에 앱을 종료하고 다시 실행시켜도 값이 저장되어 있다. 본문 우선 sharedProference를 사용하는 것은 매우 쉽다. 값을 저장하고 저장된 값을 빼서 쓰면 된다. 안쓰는 값들은 삭제해주면 된다. 1. 선언 //간단한 데이터 저장 val sharedPreference = getSharedPreferences("user_auto", MODE_PRIVATE) val editor = sharedPreference.edit() 우선 위와 같이 데이터를 관리하기 위해 sharedPre..
2022.08.03 -
Android Kotlin : View Binding사용하기
개요 findViewById 매번 xml에 있는 위젯들을 코드에서 사용하려면 findViewById로 할당해주다보니 프로젝트가 커지면서 화면에 위젯이 많으면 코드가 점점 복잡해짐을 느꼈다. View Binding를 사용함으로 인해 코드상에서 할당하지 않고 바로 위젯을 끌어쓰기 때문에 훨씬 간결하고 편하게 사용할 수 있다. 본문 1. Gradle에 추가 viewBinding { enabled true } 2. Activity에 ViewBinding 사용 선언 private lateinit var binding: ActivityMainBinding binding = ActivityMainBinding.inflate(layoutInflater) val view = binding.root 여기서 Activity..
2022.08.03