본문 바로가기

Android

BottomNavigationView JetPack-Compose에 대해서만 정리를 하려다보니 Kotlin으로 개발을 어떻게 했었는지 상기하고 비교하고자Kotlin으로 잠시 돌아왔습니다.오늘 정리해 볼 것은 BottomNavigationView입니다.  보통 BottomNavigationView는 하단에 탭과 활용되는 경우가 많은데, 우선 이 부분을 Kotlin을 통해 구현한 다음, 하나의 프레임에 대해 구현된 Fragment에 RecyclerView를 두어화면 구성을 진행해보겠습니다. [libs.versions.toml][versions]navigationFragmentKtx = "2.7.7"navigationUiKtx = "2.7.7"[libraries]androidx-navigation-fragment-ktx = { group = "a.. 더보기
Jetpack Compose란..? UI 개발을 간소화하기 위해 설계된 최신 툴킷이며 반응형 프로그래밍 모델을 Kotlin 프로그래밍 언어의 간결함 및 사용 편의성과결합한 방식입니다.선언적인 접근 방식으로 데이터를 UI 계층 구조로 변환하는 일련의 함수를 호출하여 UI를 설명합니다.기존 데이터가 변경되면 프레임워크가 이러한 함수를 자동으로 다시 실행하여 UI 계층 구조를 업데이트 합니다.  정확히는 모르겠지만.. 데이터가 변경된다면 빠르게 적용하여 UI에 반영된다는 내용같고 선언을 통해서 간결하면서도사용에 편의성까지 갖춘다는 내용 같습니다.역시 예제가 있어야 좀 더 빨리 이해가 갈 것 같습니다.  class MainActivity : ComponentActivity() { override fun onCreate(savedInstanc.. 더보기
FCM 메시지가 최신화가 되지 않을때 FCM 푸시를 보내고 해당 인텐트의 데이터를 받을때 지속해서 이전 알림 내용을 가져오는 경우가 있습니다.분명 디버깅을 통해서도 sendNotification, onNewIntent 함수에서도 푸시 보낸 데이터가 유지되어 있는데delegatePushNotification 함수에서는 Intent값이 달라지는 경우가 발생합니다.정확히 말해서,, 최신화가 되지 않는 느낌입니다. 이러한 문제를 해결하려면 두 가지를 확인해야 합니다. class KBFirebaseMessagingService : FirebaseMessagingService() { companion object { private const val TAG = "FirebaseMessaging" } private var pendi.. 더보기
카메라/갤러리 기능 자바에서 카메라를 활용한 기능을 사용할 때에는 카메라 사용 권한과 OS 버전에 맞는 이미지 파일 생성 방법을 사용해야합니다. 앱에서는 사용자가 앱을 사용하면서 만든 미디어 콘텐츠(예: 사진이나 동영상)를 표시할 수 있습니다. 이때 앱이 Android 10 이상을 타겟팅하는 한 Android 10(API 수준 29) 이상을 실행하는 기기에서는 READ_EXTERNAL_STORAGE 권한을 사용하지 않아도 됩니다. 앱이 Android 10을 타겟팅하면 범위 지정 저장소를 선택 해제하세요. 이전 기기와의 호환성을 위해 READ_EXTERNAL_STORAGE 권한을 선언하고 android:maxSdkVersion을 28로 설정합니다. 미디어 저장소에 잘 알려진 다음 컬렉션 중 하나에서 파일을 찾습니다. Medi.. 더보기
Firebase Messaging 관리 Firebase를 관리하기 위해서는 다음 절차를 따라서 진행하면 됩니다. 1. Firebase Console에서 프로젝트를 만든다. 2. 안드로이드 프로젝트로 시작을 한다. (프로젝트를 만들고 나서 앱 추가를 누르면 웹, 안드로이드, IOS 등 설정하라고 하는데 이 때 안드로이드를 선택하면 됩니다.) 3. build.gradle(App)에 ApplicationId에 내용을 아래 패키지 이름에 넣어서 만듭니다. 닉네임(임의로 입력), SHA-1 등은 그냥 넘어가도 됩니다. 4. google-services.json을 다운로드 받아서 안드로이드 프로젝트 > project > app에 해당 json 파일을 넣습니다. 5. build.gradle에 plugins { }에 google-services 추가합니다... 더보기
Kotlin 문법2 - Class Data Class - 데이터를 저장하기 위한 클래스 Java Code public class JavaObject { private String s; JavaObject(String s) { this.s = s; } public String getS(){ return s; } public void setS(String s){ this.s = s; } } Kotlin Code data class JavaObject(val s: String) 위에 자바 코드가 아래 코틀린 코드 한 줄로 모두 설명이 가능합니다. data class는 데이터와 관련된 내용을 정리하는 클래스이므로 get, set함수를 포함하고 있으며 model class에서 작업할 때 data class를 사용하게 됩니다. Kotlin에서는 g.. 더보기
Kotlin 문법1 - 변수/Scope 코틀린 문법 변수선언 nullable vs not nullable val variable: Int? = 100 val variable2: Int = 100 --> ?가 되어 있는 변수는 null로 초기화할 수 있지만, ?가 없는 변수는 null로 초기화할 수 없습니다. val - 초기에 값이 할당되면 나중에 변경할 수 없다. (변경시 컴파일 에러) - 초기화만 가능하고 변경은 불가능 (Java => final 변수, 상수) - 타입 선언 후 추후에 여러 상황에 따라 값을 초기화할 수 있음 fun main(args: Array){ val language: String = "Java" language = "Kotlin" // Compile Error val language2: String; val optio.. 더보기
액티비티(Activity) 액티비티란? 어떤 활동에 따른 Application의 Component로서 일반적으로 윈도우를 가진 상태로 화면에 표시되는 것입니다. UI가 없는 액티비티도 있지만 기본적으로 한 액티비티가 한 화면에 표시됩니다. 액티비티를 만들기 위해서는 액티비티를 상속한 클래스를 만들어야 하는데, android.support.v7.app.AppCompatActivity를 상속해서 하면 됩니다. 액티비티를 상속함으로써 Material Design의 가이드라인에 따른 AppCompat 라이브러리를 활용할 수 있습니다. AppCompatActivity를 상속할 수 없을 때에는 AppCompatDelegate를 이용하면 됩니다. https://developer.android.com/reference/androidx/appco.. 더보기

반응형