반응형

Kotlin 21

[Kotlin] Observer Pattern(옵저버 패턴) 사용 방법

Observer Pattern 이벤트가 발생할 때마다 ‘즉각적으로 처리’할 수 있도록 만드는 프로그래밍 패턴으로 이벤트가 일어나는 것을 감시하는 감시자의 역할을 만든다고 하여 옵저버라고 한다. ex) 키의 입력, 터치의 발생, 데이터의 수신 등 이벤트란? 함수로 요청하지 않았지만 시스템이나, 루틴에 의해서 발생하게 되는 동작들을 이벤트라고 부른다. 1. 기본 개념 B에서는 자신의 이벤트를 받을 수 있는 인터페이스를 만들어 공개하고 A는 이를 구현하여 B에 넘겨주면 인터페이스만 알아도 이벤트를 넘겨줄 수 있다. 이때 이 인터페이스를 ‘Observer’ 또는 코틀린에서는 ‘Listener’라고 부르며 이렇게 이벤트를 넘겨주는 행위를 ‘Callback’이라고 합니다. 2. 옵저버 패턴 구현 fun main()..

Kotlin 2022.10.05

[Android] 앱 런처(앱 아이콘, 앱 이름, 패키지 이름 변경 ) 사용 방법

1. 이미지 넣기 앱 아이콘으로 설정할 이미지를 넣는다. 2. 이미지 등록 2-1) [drawable] 우클릭 → [New] → [Image Asset] 클릭 2-2) 저장한 이미지 경로를 찾아 등록 2-3) 이름을 등록하고, 이미지 배율을 조절 3. 앱 이름 변경 미동여지도 [app] → [res] → [values] → strings.xml 파일 수정 4. 패키지 이름 변경 플레이 스토어에 앱을 올릴 때는 패키지 이름이 com.example로 시작하는 패키지 이름은 제한되어 있다는 문구를 만나게 된다. 4-1) 폴더 구조 변경 1) 상단 톱니바퀴 설정 버튼 클릭 2) Compact Middle Packages 체크 해제 [com.example.airquality]처럼 축약되었던 폴더 구조가 [com]..

Kotlin 2022.10.04

[Kotlin] 뷰 바인딩(ViewBinding) 사용 방법

뷰 바인딩이란? 각 XML 레이아웃 파일의 루트 뷰 및 ID가 있는 모든 뷰의 참조를 포함한 클래스를 자동으로 생성합니다. 이 클래스의 이름은 XML 파일의 이름을 카멜 표기법으로 변환하고 끝에 ‘Binding’을 추가하여 생성된다. activity_main.xml → ActivityMainBinding 1. gradle 설정 andriod { ... /* 안드로이드 스튜디오의 버전이 4.0 이상 */ buildFeatures{ viewBinding true } /* 안드로이드 스튜디오의 버전이 4.0 이하 */ viewBinding{ enabled = true } } Sync now눌러 설정 반영 2. 설정 추가 후 프로젝트 빌드 일정 시간이 지나면 빌드가 완료 Run과 Build의 차이 - Build..

Kotlin 2022.09.28

[Kotlin] 범위형(for) / 조건형(while) 반복분

1. 범위형 반복문 1-1) for in 반복문 val stundent = arrayListof("joyce","java","jacob") for(name in student) { pirntln(${name}) } //인덱스도 같이 반복 for((index, name ) in student.withIndex()){ pirntln("${index+1} 번째 학생 : ${name}") } 1-2) for 범위 반복문 var sum = 0 for( i in 1..10){ sum += i } //steb 반복 2칸씩 1, 3, 5, 7, 9 for( i in 1..10 step 2){ sum += i } // 감소 9에서 0까지 1씩 감소하며 반복 뒤에 step 가능 for(i in 9 downTo 0){ pr..

Kotlin 2022.09.27

[Kotlin] 안드로이드 스튜디오 Guideline (반응형 UI) 사용 방법

Guideline을 사용하여 반응형 UI를 만들 수 있다. 1. 레이아웃의 툴바로 생성 Vertical Guideline : 수직방향 가이드라인 생성 Horizontal Guideline : 수평 방향 가이드라인 생성 1-1) 코드는 자동 생성된다. 자동 생성 가이드라인 ID는 @+id/guideline[숫자] 형식 숫자는 생성할 때마다 증가한다. 수직 방향 가이드라인을 추가 시 android:orientation값은 vertical이다. app:layout_constraintGuide_begin 부모 레이아웃의 시점에서 20dp 떨어진 곳에 위치, 이 속성을 포함해서 가이드라인은 3가지 종류의 제약을 줄 수 있다. app:layout_constraintGuide_begin = “xdp” → 부모 레이아..

Kotlin 2022.09.26

[Kotlin] Companion object(Java의 Static) 사용 방법

자바의 Static 대신에 사용 정적인 메서드, 변수를 사용할 때 선언 기본적으로 하는 일은 private로 선언된 프로퍼티나 메서드를 읽어 올 수 있다. 1. Java의 Static과의 차이점 Companion Object는 객체로 변수에 할당할 수 없다. 하나의 클래스에서는 하나의 Companion Object만 생성할 수 있다. Companion Object 내부의 변수는 클래스 안에서 사용할 수 있다. 그러나 클래스 멤버 변수는 Companion Object 안에서 사용할 수 없습니다. Companion Object는 클래스 로딩하면서 생성되지만, 클래스 멤버 변수는 클래스 인스턴스를 생성할 때 생성되기 때문에 멤버 변수를 사용할 수 없습니다. 2. 사용 방법 //private를 사용하여 다른 곳..

Kotlin 2022.09.23

[Kotlin] Lamda(람다) 사용 방법

람다식은 우리가 마치 value 처럼 다를 수 있는 익명 함수 1. 메소드의 파라미터로 넘겨줄 수가 있다. fun maxby(a : Int) 2. return 값으로 사용할 수 가 있다. 1. 람다의 기본 정의 val lamdaName : Type = { argList -> codeBody} //선언(val, var) : 타입 = { 받은 값(argument) -> 어떻게할 건지 함수 } 1-1) 타입 추론 가능 val square : (Int) -> (Int) = {number : Int -> number * number} // Int를 넣고 Int으로 return 받음 input/output이 Int형이기 때문에 // number의 타입을 추론함(타입 추론 가능 앞이든 뒤든 Int 필수) fun ma..

Kotlin 2022.09.21

[Kotlin] Map & Set 사용 방법

Map이란? key와 value를 짝지어 저장하는 Collection이다. Map의 key는 유일하기 때문에 동일한 이름의 key는 허용되지 않는다. Set이란? 동일한 아이템이 없는 Collection이다. Set의 아이템들의 순서는 특별히 정해져 있지 않고, Set은 null 객체를 갖고 있을 수 있다. 동일한 객체는 추가될 수 없기 때문에 null도 1개만 갖고 있을 수 있다 1. Map // 읽기 전용 val readMap = mapOf("name" to "junsu", "age" to 13, "age" to 15, "height" to 160) println(readMap) // {name=junsu, age=15, height=160} 중복 불가 val mutableMap = mutalbeMa..

Kotlin 2022.09.20

[Kotlin] Intent (화면 전환) 사용 방법

Intent란 ? 앱 구성요소에서 서로 작업 수행을 위해 정보를 전달하는 역할을 한다. key, value를 이용하여 객체 전달 1. Intent를 이용한 화면 전환(intent는 화면 전환에 주로 사용) ( Activity ) btn_a.setOnClickListener { //다음 화면으로 이동하기 위한 intent 객체 생성 //첫벗째 인자에 context를 넣고 두번째 인자에 이동하과 싶은 activity입력 var intent = Intent(this, SubActivity::class.java) startActivity(intent)//Activity 실행 finish() //자기 자신 액티비티 파괴 } finish() : 액티비티 이동후 사용하지 않으면 finish를 이용해 파괴 (뒤로가기 ..

Kotlin 2022.09.19

[Kotlin] Array(배열) & List 사용 방법

배열이란? 메모리의 연속적인 공간을 차지하고 있는 자료구조로 생성 시 크기를 지정해야 하며, 생성 후에는 크기를 변경할 수 없지만 한번 선언을 해두면 다른 자료구조보다 빠른 입출력이 가능하다. 리스트란? 하나의 변수에 여러 값을 저장하기 위해 불연속적인 메모리 공간을 차지하는 동적인 자료구조이다. 1. 배열 // 배열 값 지정 var intArr = arrayOf(1,2,3,4,5) // 비어있는 배열 생성 var nullArr = arrayOfNulls(5) intArr[2] = 8 // 값 할당 println(intArr[4]) // 값 출력 2. 리스트 // 읽기 전용 리스트 val readList = listOf(1,2,3) readList[0] = 1 // 읽기 전용 이므로 오류 발생 // 읽고..

Kotlin 2022.09.16
반응형