본문 바로가기

Android

(66)
[Android] Intent (명시적, 암시적) Intent 인텐트는 안드로이드 런타임에서 메시지를 주고받아 앱 구성요소로 부터 작업을 요청하는데 사용되는 일종의 메시지 객체라고 볼 수 있습니다. 앱이 처음 시작되면 안드로이드 런타임은 인텐트를 AndroidMenifest.xml에 정의된 앱의 메인 액티비티에 전달합니다. 1. 액티비티 시작하기 Activity의 새 인스턴스를 시작하기 위해선 새로 시작할 activity의 정보를 담은 Intent를 멤버함수인 startActivity()로 전달하면 됩니다. Activity가 finish 되었을 때 startActivityForResult()를 호출하면 finish 될 액티비티는 결과를 수신받을 액티비티의 콜백 함수인 onActivityResult()에 수신합니다. 2. 서비스 시작하기 UI 없이 백그라..
[Android] Activity 생명주기 액티비티는 어플리케이션 컴포넌트로, 쉽게 말해 어플리케이션에 보이는 각 화면이 액티비티이며 액티비티에는 UI가 들어가게 됩니다. 액티비티는 후입 선출인 스택에 쌓이는 구조로 사용자에게 표시되고, 스택에 쌓이는 액티비티가 가지는 생명주기에 따라 상태가 변합니다. Activity lifecycle 전체 수명 onCreate() ~ onDestroy() 사이를 의미하며, onCreate()에서 상태 설정을 수행하고, onDestroy()에서 리소르를 해제해주어야 합니다. 가시적 수명(Visible) onStart() ~ onStop() 사이를 의미하며, 사용자가 액티비티를 보며 상호작용을 할 수 있습니다. onStop()이 호출될 경우에는 새 액티비티가 시작되므로, 이전에 있던 액티비티는 표시되지 않습니다. ..
AndroidProgramming - Listener 등록 (Kotlin) Android에서 Listener를 등록하는 방법입니다. 예제는 ClickListener를 통해 작성했습니다. 1. 익명 객체 전달(lambda) class MainActivity : AppCompatActivity() { private val TAG = MainActivity::class.simpleName private lateinit var btn : Button override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) btn = findViewById(R.id.mbutton) btn.setOnClickListener { Log.d..
FCM (Firebase Cloud Messaging) FCM 푸시 알림을 사용하는 방법 console.firebase.google.com/ 로그인 - Google 계정 하나의 계정으로 모든 Google 서비스를 Google 계정으로 로그인 accounts.google.com 1. 파이어베이스 프로젝트 추가 2. 프로젝트 설정 -> 앱 등록 (Android 선택) 3. 앱 등록 절차 (앱 등록, 구성 파일 다운로드) 패키지 이름은 AndroidManifest.xml에서 확인 가능하고, SHA-1 인증서는 signingReport을 더블클릭하면 AndroidStudio 콘솔에서 확인할 수 있습니다. 4. 앱 등록 절차 (파이어베이스 SDK 추가) 해당 절차는 파이어베이스 절차에 따라 그대로 진행해주시면 됩니다. AndroidManifest.xml에서 아래와 같..
Kakao Map API (카카오 지도 API) Kakao Map API를 이용하려면 먼저 Kakao Map SDK를 다운로드 받고, Kakao Platform에 애플리케이션을 등록하고 App Key를 받아야합니다. 우선 아래의 두 사이트를 켜주세요. apis.map.kakao.com/android/guide/ https://developers.kakao.com/ Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다. developers.kakao.com Kakao Map SDK 다운로드 SDK를 다운로드 받은 후 압축을 해제한 후 내부 파일을 아래와 같이 붙여넣기 해주면 됩니다. App key 발급받기 애플리케이션을 추가하고 플랫폼 등..
Extension functions(확장 함수) 확장함수란, 마치 클래스에 정의된 함수인 것처럼 새로운 기능을 추가하는 기능입니다. 함수를 최상위 수준 또는 다른 클래스의 밖에 위치시킴으로써 함수들을 다른 패키지에서도 import를 통해 사용할 수 있도록 할 수 있습니다. 예제를 먼저 확인해보겠습니다. fun String?.isJsonObject():Boolean { return this?.startsWith("{") == true && this.endsWith("}") // 위와 같으면 true 아니면 false } fun String?.isJsonArray():Boolean { return this?.startsWith("[") == true && this.endsWith("]") } when { message.isJsonObject() -> { ..
StateBar (상태바) : 색상 변경 State Bar : 시간, 배터리 잔량, 알람 등을 표시하는 바 res/values/themes/themes.xml @color/bule // 상태바 색상이 포함 @color/bule // 타이틀바 색상이 포함 위의 colorPrimary가 상태바 색상 외에 다른 View들의 색상에도 관여되기 때문에 오직 상태바의 색상만 변경하고 싶다면 다른 방법을 찾는 것이 좋습니다. 그렇다면 상태바만의 색상을 programmatically하게 변경하는 방법을 통해 싶을 때 아래의 코드를 사용하면 쉽게 변경할 수 있습니다. Activity window.statusBarColor = resources.getColor(R.color.kpai_orange, null) Fragment requireActivity().win..
Retrofit2, OkHttp를 함께 사용하는 이유와 예제 이번 포스팅을 보시기전에 Retrofit2, OkHttp와 HTTP, REST API에 대해 알고싶다면 보시면 좋습니다. Retrofit2 Retrofit에 대해 알아보기 전 HTTP, HTTPS, REST API를 간단하게 알아보겠습니다. HTTP 인터넷 상에서 HTML 문서와 같은 데이터를 주고받기 위한 프로토콜(통신 규약)으로, 서버-클라이언트 모델을 따라는 goni95.tistory.com 실제로 앱에서 통신할 때 Retrofit과 OkHttp를 함께 사용하는 경우가 많습니다. 두 라이브러리의 개념과 차이점과 장점 대해 자세히 몰랐기 때문에 Retrofit과 OkHttp을 공부하던 시점에서 왜 둘 다 사용하지.. Retrofit 라이브러리 하나만 사용하면 되는 것이 아닌가? 라는 생각이 들었습니다..