안드로이드
-
[Android] Activity Life Cycle안드로이드 2022. 1. 11. 15:00
Activity Life Cycle이란? 사용자가 앱을 탐색하고 앱에서 나왔다가 다시 돌아올 대 앱의 Activity 인스턴스는 생명 주기의 다양한 상태로 전환됩니다. Activity 클래스는 Activity 상태가 변경되었음을 알 수 있도록 하는 여러 가지 콜백 함수들을 제공합니다. 즉 시스템이 Activity를 생성, 중지 또는 재개하거나 Activity가 있는 프로세스를 파괴하고 있다는 것입니다. Activity 클래스가 제공하는 CallBack 함수들 onCreate() onStart() onResume() onPause() onStop() onDestroy() onCreate() 시스템이 처음 활동을 생성할 때 실행되는 콜백 함수입니다. Activity 생성 시 Activity는 onCreate..
-
[Android] API Key값 관리안드로이드 2022. 1. 4. 23:38
안드로이드에서 특정 API를 사용하려고 할 때 API Key값을 가지고 통신을 하게 됩니다. 이때 API Key값을 코드 내부에 작성을 해야 하는데 Git Hub에 해당 코드를 Push 하여 누구나 접근 가능하게 된다면 난처해질 수 있습니다. 이를 보완하기 위한 방법이 바로 local.properties에 Key값을 작성하는 것입니다. 1. gitignore 파일 작성 local.properties에 Key값을 저장할텐데 해당 파일이 Git에 commit 되는 것을 사전에 막는다. 그 이후에 /build 경로도 막는다. 해당 경로에는 BuildConfig라는 파일이 존재하는데, 여기에 API Key를 변수로 저장하기 때문에 이 파일 또한 commit 되면 안 된다. //.gitignore local.pr..
-
[Android] 안드로이드 4대 컴포넌트안드로이드 2022. 1. 3. 16:31
안드로이드 앱에 있어 컴포넌트는 필수적인 기본 요소입니다. 각 구성 요소는 시스템이나 사용자가 앱에 들어올 수 있는 진입점입니다. 다른 구성 요소에 종속되는 구성 요소도 있습니다. 각 유형은 뚜렷한 목적을 수행하고 각자 나름의 생명주기가 있어 구성요소의 생성 및 소멸 방식을 정의합니다. 안드로이드 앱의 4대 컴포넌트 1. Activity Activity는 사용자와 상호작용하기 위한 진입점으로 하나의 사용자 인터페이스 화면을 가지며 특정 작업을 수행하는 컴포넌트입니다. 안드로이드 앱은 반드시 하나의 Activity를 포함하고 있어야 합니다. Activity는 생명주기(Life Cycle)를 가지며, 생명주기를 통해 원하는 기능을 구현합니다. Intent를 통해 다른 앱의 Activity를 호출할 수도 있습..
-
[Android] 안드로이드 View Binding(뷰바인딩)안드로이드 2021. 12. 22. 19:52
View Binding(뷰 바인딩)이란..? 뷰 바인딩은 뷰와 상호 작용하는 코드를 보다 쉽게 작성할 수 있는 기능입니다. 모듈에서 뷰 바인딩이 활성화되면 해당 모듈에 있는 각 XML 레이아웃 파일에 대한 바인딩 클래스를 생성합니다. 바인딩 클래스의 인스턴스에는 해당 레이아웃에 ID가 있는 모든 보기에 대한 직접 참조가 포함되어 있습니다. 뷰 바인딩은 Android Studio 3.6 Canary 11 이상에서만 사용할 수 있습니다. findViewById와의 차이점 Null Safety: View Binding은 뷰의 직접 참조를 생성하므로 유효하지 않은 뷰 ID로 인해 null 포인터 예외가 발생할 위험이 없습니다. 또한 레이아웃의 일부 구성에만 뷰가 있는 경우 결합 클래스에서 참조를 포함하는 필..
-
[Android][Kotlin] BCrypt 암호화 알고리즘안드로이드 2021. 7. 16. 00:48
개발자에게 요즘 시스템 개발에 있어 가장 중요하게 생각해야 할 것 중 하나가 보안이라고 한다. 시스템의 정보를 암호화하여 비인가자로 부터 데이터 유출을 방지하고 사용자에게 시스템 가용성을 유지시키는게 암호화 하는 이유이다. 먼저 암호화 알고리즘에 대해 알아보도록 하자. 암호화 알고리즘이란? 데이터의 무결성 및 기밀성 확보를 위해 정보를 쉽게 해독할 수 없는 형태로 변환하는 기법 암호화 종류 대칭 암호화 알고리즘 : 암호화 복호화에 같은 암호키를 사용하는 알고리즘. ex) DES, SEED , AES, ARIA, IDEA, LFSR 비대칭 암호화 알고리즘 : 사전에 개인 키를 나눠 가지지 않은 사용자들이 안전하게 통신하는 알고리즘. ex) 디피-헬만, RSA , ECC,ElGamal 해시 암호화 알고리즘 ..
-
[Android][Kotlin] apply, let, also, with, run 함수 정리안드로이드 2021. 7. 15. 19:54
코틀린 강의를 듣던 중에 let함수가 나와서 공부하는 중에 너무 어려워서 이렇게 정리해보면 이해가 쉽지 않을까 싶어 정리해본다. 범위 지정 함수 먼저 apply, let, also, with, run 이렇게 5가지 함수들을 모두 범위 지정 함수라고 한다. 람다식이 제공된 객체에서 범위 지정 함수를 호출하면 임시 범위가 형성되는데, 이 범위에서 이름 없이 객체에 접근할 수 있다. 이러한 기능을 가진 함수를 범위 지정 함수라고 한다. 범위 지정 함수들의 공통적인 기능을 수행한다. 객체에서 코드 블록을 실행하는 기능이다. 그렇다면 범위 지정 함수의 각각 특징을 알아보자. 1. apply() 객체를 생성과 동시에 property값을 초기화하고 자기 자신을 반환하는 함수이다. 기존 방식 val k3 = Car("..
-
[Android][Kotlin] : Retrofit (MVVM 코루틴)안드로이드 2021. 7. 15. 18:50
Retrofit Retrofit의 사전적 의미부터 알아보자면 "개조" 라는 의미로, 안드로이드에서의 Retrofit은 안드로이드 애플리케이션(클라이언트)과 서버간에 REST 통신을 위해 사용하기 쉽게 만들어놓은 라이브러리이다. 해당 라이브러리를 통해 JSON 구조의 데이터를 쉽게 가져오고 업로드할 수 있다. *REST 란? : 웹과 같은 분산 하이퍼 미디어 환경에서 표준화된 HTTP 메서드(GET,POST,PUT,DELETE)를 통해 자원의 존재/상태 정보를 주고 받는 웹 아키텍처. 안드로이드 통신 라이브러리 초기의 안드로이드 통신은 HttpClient를 사용했다. HttpClient에는 몇 가지 버그가 있어 HttpUrlConnection이 권장되고 나서 쭈욱 사용하다 복잡했던 사용법으로 인해 Voll..
-
[Android][Kotlin] : PendingIntent 란?안드로이드 2021. 7. 15. 15:27
PandingIntent FCM 공부를 하던 중에 PendingIntent를 사용할 일이 생겨 공부를 하게 되었다. PendingIntent란 Intent를 가지고 있는 클래스로, 기본 목적은 다른 프로세스의 권한을 허가하여 가지고 있는 Intent를 마치 본인 앱의 프로세스에서 실행하는 것처럼 사용하게 하는 것. PendingIntent의 호출 방법 Activity를 시작하는 인텐트 : PendingIntent.getActivity(Context,int,Intent,int,flags) BrodcastReceiver를 시작하는 인텐트 : PendingIntent.getBroadcast(Context,int,Intent,int,flags) Service를 시작하는 인텐트 : PendingIntent.get..