본문 바로가기

분류 전체보기134

06-4 뷰 바인딩 뷰 바인딩(view binding) 레이아웃 XML 파일에 선언한 뷰 객체를 코드에서 쉽게 이용하는 방법이다 안드로이드는 UI를 구성할 때 대부분 레이아웃 XML 파일을 이용한다. 레이아웃 XML파일에 등록한 뷰는 findViewByID() 함수로 얻어서 사용해야 한다.(06-2 참조) 그런데 이 작업은 꽤 귀찮다. 한 화면을 구성하는 데만도 많은 뷰가 필요하고, 또 뷰는 대부분 코드에서 이용한다. 따라서 코드에서 뷰 객체를 선언하고 모두 findViewById() 함수로 하나하나 가져와야 한다. 그래서 개발자들은 생각했다. "액티비티에서 findViewById()함수를 이용하지 않고 레이아웃 XML 파일에 등록된 뷰 객체를 쉽게 사용할 수는 없을까?" 이를 위해 butterknife라는 라이브러리도 등.. 2023. 6. 17.
06-3 기본적인 뷰 살펴보기 티스토리 단축키 확인 ctrl + '/' 키 코드블록 단축키 alt+ctrl+',' 텍스트뷰 TextView는 문자열을 화면에 출력하는 뷰이다. 그중에서도 자주이용하는 속성을 알아보자 android:text 속성 TextView에 출력할 문자열을 지정함. android:text="helloworld"처럼 문자열을 대입해도 되고 android:text="@string/hello"처럼 문자열 리소스를 지정해도 된다. android:textColor 속성 문자열 색상 지정함. android:textColor="#FF0000"처럼 값은 16진수 RGB형식을 사용한다. android:textSize 속성 문자열 크기 지정함. android:textSize="20sp"처럼 값은 숫자를 사용하며 단위는 생략할 수 없.. 2023. 6. 17.
06-2 뷰 클래스 티스토리 단축키 확인 ctrl + '/' 키 코드블록 단축키 alt+ctrl+',' 뷰 클래스의 기본 구조 뷰 객체의 계층 구조 액티비티 화면을 구성할 때 사용하는 클래스는 모두 View의 하위 클래스이다. 그래서 화면구성과 관련한 클래스를 통칭하여 뷰 클래스라고 한다. 뷰 클래스의 하위에는 다양한 클래스가 있고 각 클래스의 역할은 다음과 같다. View: 모든 뷰 클래스의 최상위 클래스. 액티비티는 이 클래스의 서브 클래스만 화면에 출력함 ViewGroup: View의 하위클래스지만 자체 UI는 없어서 화면에 출력해도 아무것도 나오지 않음. 다른 뷰 여러개를 묶어서 '제어'하는 목적. 그릇 역할. 컨테이너 기능 담당. 실제로는 ViewGroup의 서브클래스인 레이아웃클래스를 사용함. TextView: .. 2023. 6. 15.
06-1 화면을 구성하는 방법 티스토리 단축키 확인 ctrl + '/' 키 코드블록 단축키 alt+ctrl+',' 06~10장: 셋째마당-앱의 기본 기능 구현하기 액티비티-뷰 구조 안드로이드 앱의 기본 구조는 컴포넌트를 기반으로 한다. 즉 안드로이드 앱은 액티비티, 서비스, 브로드캐스트 리시버, 콘텐츠 프로바이더와 같은 컴포넌트를 적절하게 조합해서 만든다. 그런데 이중에서 화면을 출력하는 컴포넌트는 액티비티 뿐이다. 앱에서 화면을 출력하고 싶다면 액티비티가 필수인 것이다. 액티비티는 화면을 출력하는 컴포넌트일 뿐, 그 자체가 화면인 것은 아니라서 별도의 화면 구성을 필요로 한다. 화면 구성 없이 액티비티만 실행하면 텅 빈 흰 화면이 보인다. 화면에 내용을 표시하려면 뷰(view) 클래스를 이용해 구성해야 한다. ex. TextView.. 2023. 6. 15.
05-2 널 안정성 티스토리 단축키 확인 ctrl + '/' 키 코드블록 단축키 alt+ctrl+',' 널(Null) 안정성 널(Null)이란? 객체가 선언되었지만 초기화되지 않은 상태 객체는 데이터가 저장된 주소를 참조하므로 흔히 '참조 변수'라고 함. 데이터가 메모리에 저장되면 어디에 저장됐는지 알아야 이용할 수 있는데, 이때 해당 메모리 위치를 식별하는 것이 '주소'. 정리하면, 객체가 메모리에 담긴 데이터를 이용하기 위해, 객체에는 데이터가 직접 저장되는 것이 아닌 데이터가 저장된 메모리의 '주소'가 저장된다. 그 주소로 메모리에 접근해서 데이터를 이용한다. 그런데 널은 객체가 주소를 가지지 못한 상태를 나타낸다. 다음 코드에서는 data1 변수에 "hello"라는 데이터를 저장했다. 하지만 실제로는 "hello"라.. 2023. 6. 15.
05-1 람다 함수와 고차 함수 람다 함수(람다식) 코틀린 뿐만 아니라 많은 프로그래밍 언어에서 익명함수(anonymous function)를 정의할 때 사용됨 고차함수는 매개변수나 반환값으로 함수를 이용하는데, 람다 함수는 주고받을 함수를 간단하게 정의할 때 사용함. 즉, 그 자체도 가치가 있지만 고차 함수를 이해하고 사용하려면 꼭 알아야 한다! 람다 함수 선언과 호출 일반적인 함수는 fun 키워드로 선언하지만, 람다함수는 중괄호 { } 이용함 fun 함수명(매개변수) { 함수 본문 } // 함수 선언 형식 { 매개변수 -> 함수 본문 } // 람다 함수 선언 형식 코틀린에서의 람다 함수 사용 규칙 람다 함수는 { }로 표현함 { } 안에 화살표(->)가 있으며 화살표 왼쪽은 매개변수, 오른쪽은 함수 본문임 함수의 반환값은 함수 본문.. 2023. 6. 15.
04-3 코틀린의 클래스 종류 데이터 클래스 data 키워드로 선언 자주 사용하는 데이터를 객체로 묶어줌. VO(value-object) 클래스를 편리하게 이용할 수 있게 해줌. equals() 함수 객체의 데이터를 비교함 VO 클래스는 데이터를 주요하게 다루므로 데이터가 같은지 자주 비교함 ❗️'객체가 같은지'가 아니라 객체의 '데이터가 같은지' 를 비교함❗️ // 데이터 클래스 선언 예시 class NonDataClass(val name: String, val email: String, val age: Int) // 일반 클래스 data class DataClass(val name: String, val email: String, val age: Int) // 데이터 클래스 // 두 클래스의 주 생성자는 매개변수 구성이 같음 //.. 2023. 6. 14.
04-2 클래스를 재사용하는 상속 상속과 생성자 상속(inheritance)이란? 클래스를 선언할 때 다른 클래스를 참조해서 선언하는 것 코틀린에서는 어떤 클래스를 상속받으려면 선언부에 '콜론(:) 상속받을 클래스 이름' 붙여주면 됨(기존 클래스 재사용) 상위 클래스: 상속 관계에서 상속대상이 되는 클래스 하위 클래스: 상속 받는 클래스 클래스는 기본적으로 상속이 불가능 ➡️ 'open' 키워드 사용 상위 클래스를 상속받은 하위클래스의 생성자에서는 상위클래스의 생성자를 호출해야 함 // 클래스 상속 형식 open class Super { // open 키워드 사용하여 상속할 수 있게 됨 } class Sub: Super() { // 콜론과 상위 클래스 이름+(매개변수 없는)생성자 함께 호출함(괄호가 생성자 그자체) } // 매개변수 있는.. 2023. 6. 14.
04-1 클래스와 생성자 class User {} class User: 클래스의 선언부 {}: 본문 영역(내용 없으면 생략 가능) 클래스의 멤버 : 생성자,변수,함수,클래스 코틀린의 생성자: constructor라는 키워드로 선언하는 '함수' 더보기 생성자란? 생성자(Constructor)는 객체가 생성될때 '자동으로' 호출되는 특수 목적의 멤버함수(메소드)로 객체의 초기화를 위해 사용됩니다. 생성자는 클래스에 최소 1개는 있어야 하며, 생성자 코드가 없을 경우 컴파일러가 기본생성자를 자동으로 생성합니다. 참조:https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwiIl_GKh7j_AhUFHXAKHfR3AJUQFnoECBkQ.. 2023. 6. 13.
03 코틀린 시작하기 03~05장:둘째마당-코틀린 이해하기 03-1 코틀린 언어 소개 코틀린은 자바의 가상머신인 JVM에 기반을 둔 언어라서 코틀린으로 작성한 프로그램을 JVM에서 실행할 수 있다. 코틀린 파일명을 클래스명과 다르게 선언해도 된다. 소스파일 최상위의 변수와 함수는 파일명+Kt.class 클래스가 자동으로 생성돼서 거기에 저장된다. 따라서 최상위에 선언한 변수,함수를 자바에서 이용하려면 '자동으로 만들어지는 클래스'를 이용해 접근하면 된다. 이름 달라도 문제 없단 말~ 코틀린 소스 테스트하기 :프로젝트파일 만들고 코틀린 파일 만들고 main함수 만들고 코틀린파일 우클릭해서 Run '파일명Kt' 누르기 '^+Shift+R'(맥북기준) 03-2 변수와 함수 변수 선언하기 val, var 키워드로 변수 선언 val:.. 2023. 6. 6.