본문 바로가기
전공공부/모바일 프로그래밍

kotlin 공부 #2

by 시아나 2022. 3. 22.

1은 인터넷으로 아직 정리하지 않음.

본 페이지는 개인 공부 정리용, 단어 검색용

깡샘의 안드로이드 앱 프로그래밍 with 코틀린 책을 보고 공부하는 것임


lamda 함수 :  {매개 변수 -> 함수 본문}

=> 반환값 : 함수의 마지막 줄의 계산 결과

 

typealias : 타입의 별칭을 선언하는 키워드

 

고차함수 : 함수를 매개변수로 전달 받거나 반환하는 함수

데이터가 아닌 함수를 반환값으로 사용

fun hotFun(arg: (Int) -> Boolean) : () -> String{
	val result = if(arg(10)){
    	"valid"
    }else{
    	"invalid"
	}
    return {"hfFun result : $result"}
}

fun main(){
    val result = hotFun({no -> no > 0})
    println(result())
}
더보기

결과 :  hfFun result : valid


널 안전성

널 : 객체가 선언되었지만 초기화되지 않은 상태 (객체가 주소를 가지지 못한 상태)

널 안전성 : 널 포인트 예외가 발생하지 않도록 코드를 작성하는 것

null 허용 : ? 사용

널 안전성 호출 (?.) : ?. 연산자는 변수가 null이면 멤버에 접근하지 않고 null 반환

fun main(){
	var data: String?= null
    println("data length : ${data?.length ?: 0}")
}

//실행결과 | data length : 0

엘비스 (?:) : 변수가 null이면 null 반환 / null일때 대입해야 하는 값이나 실행해야하는 구문이 있을 경우 사용

예외 발생(!!) : 객체가 널일 때 예외를 일으키는 연산자


앱의 기본 기능 구현하기

- Chronometer 뷰 : 시간을 측정할 수 있는 뷰

- values 디렉터리 : 색상, 크기, 스타일 리소스 저장가능

- dimen 태그 : 크기 리소스 저장

- style 리소스 : 뷰에 설정되는 여려 속성을 스타일에 등록하여 한꺼번에 적용하거나 여러 뷰에 중복되는 속성을 스타일로 정의해 사용하는 용도로 사용

- 안드로이드에서 권장하는 단위 : dp, sp

dp : 스크린의 물리적 밀도에 기반을 둔 단위
sp : dp와 유사하며 글꼴 크기에 적용

제트팩 라이브러리

- 제트팩 : 안드로이드 앱을 개발하는데 필요한 다양한 라이브러리 모음 (androidx)

https://developer.android.com/jetpack

 

Android Jetpack  |  Android 개발자  |  Android Developers

Jetpack is a suite of libraries to help developers follow best practices, reduce boilerplate code, and write code that works consistently across Android versions and devices so that developers can focus on the code they care about.

developer.android.com

- androidx 라이브러리

ex)

appcompat : 앱의 API 레벨 호환성을 해결
recyclerview : 목록 화면을 구성함.
viewpager2 : 스와이프로 넘기는 화면을 구성
fragment : 액티비티처럼 동작하는 뷰를 제공(탭과 뷰 페이저 등에서 사용)
drawerlayout : 옆에서 서랍처럼 열리는 화면 구성
                              ...

 

- 프래그먼트 생명주기

[출처] https://developer.android.com/guide/fragments/lifecycle

- recyclerview

-> 레이아웃 매니저 : LinearLayoutManager / GridLayoutManager / StaggeredGridLayoutManager


머티리얼 라이브러리

머티리얼 디자인 : 모바일과 데스크톱, 그리고 그 밖에 다양한 장치를 아우르는 일관된 애플리케이션 디자인 지침

머티리얼 라이브러리 : 머티리얼 디자인 지침에 맞게 앱 개발을 하기 위해 제공하는 라이브러리

https://material.io/

 

Material Design

Build beautiful, usable products faster. Material Design is an adaptable system—backed by open-source code—that helps teams build high quality digital experiences.

material.io

 

- 앱바 레이아웃 : 화면 위쪽의 꾸밀 수 있는 영역

- 코디네이터 레이아웃 : 뷰끼리 상호 작용해야 할 때 사용

- 컬랩싱 툴바 레이아웃 : 앱바 레이아웃 하위에 선언하여 앱바가 접힐 때 다양한 설정을 할 수 있는 뷰

 

- 탭 레이아웃 / 내비게이션 뷰 / 확장된 플로팅 액션 버튼(ExtendedFloatingActionButton)

'전공공부 > 모바일 프로그래밍' 카테고리의 다른 글

책 "아키텍처를 알아야 앱 개발이 보인다" #1  (0) 2022.04.06
kotlin 공부 #3  (0) 2022.03.23
looper  (0) 2021.08.31
23일차  (0) 2021.07.28
국가근로 18일차  (0) 2021.07.21