개발(Android) 78

[Android Studio/Kotlin] View Binding

[안드로이드 스튜디오/코틀린] 뷰 바인딩(뷰 결합) 사담 안드로이드, 코틀린을 공부하다보면 종종 생각지도 못한 곳에서 문제가 발생한다. 불과 작년 또는 재작년까지 잘 쓰던 기능인데 올해부터는 못 쓰게 되는 경우도 있다. 뷰아이디를 정석으로 참조하는 방법은 findViewById다. 하지만 이것조차 귀찮았던 많은 개발자들은 kotlin-android-extensions로 뷰아이디를 간편하게 참조했다. 문제는 이 익스텐션의 지원이 불과 작년에 종료됐다는 것이다. 코틀린 안드로이드 익스텐션이 뭔지도 모르는 상태에서 코드를 그대로 따라 치는 방식으로 공부하니 작동이 안 될 수밖에 없다. 다음 강의도, 다다음 강의도 아이디 참조에서 에러가 뜨며 막혔다. 분명 오타 없이 작성했는데 왜 안 되냐며 끙끙거렸는데, 영상..

[Android Studio] Font Setting

[안드로이드 스튜디오] 폰트 설정 글꼴 모음을 리소스로 추가하기 일부 아이템만 글꼴 바꾸기 // layout xml 파일에서 해당 아이템 하위에 아래처럼 코드 작성 android:fontFamily="@font/leeseoyun" 일괄 적용하기 // themes.xml 파일에서 style 하위에 아래처럼 코드 작성 @font/leeseoyun 참고 XML의 글꼴 | Android 개발자 | Android Developers XML의 글꼴 Android 8.0(API 수준 26)에는 새로운 기능인 XML의 글꼴이 도입되어 글꼴을 리소스로 사용할 수 있습니다. res/font/ 폴더에 font 파일을 추가하여 글꼴을 번들로 묶어 리소스로 사용할 수 있습 developer.android.com

[Android Studio] E/ClipboardService: Denying clipboard access to com.android.chrome, application is not in focus nor is it a system service for user 0

[안드로이드 스튜디오] 클립보드 접근 거부 문제 참고 Denying clipboard access to com.google.android.as for (Android P Version) I'm trying to open the Android app, it is crashed immediately after opening the page. I am using the android P version on(Redmi note 7 pro phone) its crashed only for P version. Its showing stackoverflow.com

[Android Studio/Kotlin] Singleton Pattern

[안드로이드 스튜디오/코틀린] 싱글톤/싱글턴 패턴 MainActivity.kt package com.shinyelee.android_study2 import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.view.View import android.widget.Button import android.widget.Toast // 메인화면 class MainActivity : AppCompatActivity() { val TAG: String = "로그" // 뷰 생성 override fun onCreate(save..

[Android Studio/Kotlin] Custom Dialog, Interface

[안드로이드 스튜디오/코틀린] 커스텀 다이얼로그, 인터페이스 MainActivity.kt package com.shinyelee.android_study2 import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.view.View import android.widget.Button import android.widget.Toast // 메인화면 class MainActivity : AppCompatActivity(), MyCustomDialogInterface { val TAG: String = "로그" // ..

[Android Studio/Kotlin] Listener, Method, Click Event

[안드로이드 스튜디오/코틀린] 리스너, 메소드, 클릭 이벤트 activiti_main.xml MainActivity.kt package com.shinyelee.android_study2 import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.widget.Button // 메인화면 class MainActivity : AppCompatActivity() { val TAG: String = "로그" // 뷰 생성 override fun onCreate(savedInstanceState: Bundle?) { su..

[Android Studio/Kotlin] Life Cycle of Activity

[안드로이드 스튜디오/코틀린] 액티비티의 생명주기(활동 수명 주기) MainActivity.kt package com.shinyelee.androidlifecycle import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.view.View import android.widget.TextView class MainActivity : AppCompatActivity() { val TAG: String = "로그" private lateinit var text_view: TextView // Lifecycle of Activity(액티비티의 생명주기) // // on..

[Android Studio/Kotlin] Gradient View

[안드로이드 스튜디오/코틀린] 그라데이션 뷰 아이콘(SVG, PSD 등) 삽입 및 색깔 변경하기 그라데이션 만들기 참고 Colors HEX W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more. www.w3schools.com How to make gradient background in android I want to create gradient background where the gradient is in..

[Android Studio/Kotlin syntax] Coroutine

[안드로이드 스튜디오/코틀린 문법] 코루틴 // Coroutine(코루틴) // // 메인 루틴과 별도로 진행 가능한 루틴 // 개발자가 루틴의 실행과 종료를 마음대로 제어할 수 있는 단위 // 사용시 아래와 같이 임포트 import kotlinx.coroutines.* fun main() { // 제어 범위와 실행 범위(스코프) 지정 가능 // // Global Scope(글로벌 스코프) -> 프로그램의 어디서나 제어 동작이 가능한 코루틴의 범위 // Coroutine Scope(코루틴 스코프) -> 특정한 목적의 dispatcher(디스패처)를 지정해 제어 및 동작이 가능한 새로운 코루틴 범위 생성 val scope = GlobalScope // 새로운 코루틴 생성 // // launch -> 반환값..

[Kotlin syntax] Bitwise Operation

[코틀린 문법] 비트 연산 // Bitwise Operation(비트 연산) // // 정수형 변수를 10진법이 아닌 2진법으로 연산 // 실무에서는 계산 용도로 사용하는 경우가 거의 없음 // (2진법을 이용한 연산 최적화가 필요하면 -> 컴파일러의 기능 사용) // 정수형의 값을 비트 단위로 나눔 -> 데이터를 좀 더 작은 단위로 담음 -> 경제성 높이는 용도 // 하지만 비트 연산을 사용하는 부하도 무시할 수 없으므로 // 주로 플래그 값(여러개의 상태값을 0과 1로 담는 방법)을 처리하거나 // 예) 32비트 -> 숫자가 아닌, 32개의 값을 담는 용도(T/F, on/off, 유료회원/무료회원 등) // 네트워크 등에서 프로토콜의 데이터 양을 줄이기 위해 자주 사용 // 01100011010101..

[Kotlin syntax] Constants, lateinit, by lazy

[코틀린 문법] 상수, 늦은초기화, 지연 대리자 속성 Constants(상수) // Constants(상수) // // 컴파일 시점에 결정 -> 절대 바꿀 수 없음(val보다 더 빡셈) // 기본 자료형(String 포함)만 상수로 선언 가능 // 런타임에 생성될 수 있는 일반적인 다른 클래스의 객체들은 담을 수 없음 // 상수의 이름은 의례적으로 대문자와 언더바 사용해 변수와 구분함 fun main() { // var -> 한 번 할당한 객체 다른 객체로 변경해 할당 가능 var itzy = "채령" itzy = "류진" // val -> 한 번 할당한 객체 변경 불가 // (객체 내부의 속성은 변경 가능) val idle = "우기" // idle = "수진" // Kotlin: Val cannot ..

[Kotlin syntax] Collection Functions (2)

[코틀린 문법] 컬렉션 함수 (2) associateBy, groupBy, partition fun main () { data class Gfriend(val name: String, val birthYear: Int) val gfriendMembers = listOf(Gfriend("소정", 95), Gfriend("예린",96), Gfriend("은비",97), Gfriend("은비",98), Gfriend("예원",98), Gfriend("유나",97)) // associateBy // // 아이템에서 key를 추출해 map으로 변환 println(gfriendMembers.associateBy { it.birthYear }) // {95=Gfriend(name=소정, birthYear=95), 9..

반응형