본문 바로가기

Android Studio (Kotlin)

(14)
Kotlin 기본 문법 널 체크 코틀린의 변수 선언은 본래 null을 허용하지 않음. 기본적으로 NotNull이고 Nullable한 타입은 타입 뒤에 '?'가 사용된다. Non-null : 변수 뒤에 !!으로 표시(Not null 단정기호) property나 변수에 붙이면 강제로 null이 아니다 라고 선언한 것. null이 들어오면 npe 발생 safe-call : type 뒤에 ?를 붙임 null이 가능한 변수라는 뜻 엘비스 연산자 null인 경우 default를 주고싶을 때 ?:를 사용한다. null인 경우 ?: 뒤쪽 수행 함수형 프로그래밍 람다의 규칙 람다 함수는 항상 {}으로 감싸서 표현해야 한다. {} 안에 -> 표시가 있으며 -> 왼쪽은 매개변수, 오른쪽은 함수 내용 매개변수 타입을 선언해야 하며 추론할 수 있을 ..
코틀린 컬렉션과 예외처리 컬렉션 API filter Collection을 반복해서 주어진 람다에 각 원소를 넘겨주고 해당 조건에 맞는 원소만 필터링하는 기능 filter 안의 조건문을 만족하는 원소로 이루어진 새로운 collection 반환 data class Person(val name: String, val age:Int) fun filterTest(){ val list = listOf(1,2,3,4) println(list.filter{it%2==0}) //짝수만 필터링 val peoples = listof(Person("안드로이드",30), Person("당근걸", 25)) val filtered = peoples.filter{it.age>=30} filtered.forEach{ println(it) } } map 각 원..
Kotlin 클래스 object class object라는 키워드로 선언, 싱글턴 클래스가 된다 생성자를 가질 수 없다. 어느 클래스, 함수에서든 별도의 객체화 과정 없이 접근 가능하다. 프로그램이 실행되는 동안 저장된 데이터는 손실되지 않고 프로그램이 종료되면 소멸한다. 액티비티, 프래그먼트 구분하지 않고 데이터를 전달할 수 있다. Service 서비스란? 일반적으로 화면 없이 동작하는 프로그램으로 백그라운드 프로세스. 화면과 상관 없이 계속 동작한다. 서비스의 특징 유저와 상호작용 할 수 없다. 액티비티의 생명주기에 종속되어 있지 않다. 별도의 스레드에서 동작하지 않고 호스팅 프로세스의 "메인 스레드"에서 작동한다. 액티비티가 비활성화 되면 액티비티보다 우선순위가 높다. 실행 방법 : startService, bindS..
안드로이드 UI 기본 UI 기본구조 모든 UI 최상위에 존재하는 class는 View Adapter View 화면에서 보이지 않는 부분은 아직 생성하지 않고 화면에서 사라진 뷰를 재사용 동적으로 동일한 뷰들이 늘어나는 화면 구조를 사용 Adapter에 따라 다양한 View 들이 존재한다. AdapterView는 listView, GridLayout, Spinner에 사용될 수 있다. Toolbar에는 적용이 안된다. 안드로이드 치수 dpi(Dots Per Inch) 1인치에 들어있는 픽셀 수. 안드로이드에서는 dpi 160이 기본 dp 또는 dip 픽셀에 독립적인 단위이면서 어떤 크기의 화면에서도 동일한 크기를 표시할 수 있게 해 줌 스크린의 필셀과 dpi가 160인 경우에는 1dp는 1pixel과 같으나 dpi가 240인 ..
Android Architecture 안드로이드 플랫폼 아키텍처 Linux Kernel : 보안, 메모리관리, 프로세스관리, 파일시스템 관리, 파워 관리, 네트워크 스택, 하드웨어 드라이버 등 하드웨어를 지원 HAL : Hardware Abstraction Layer(하드웨어 추상화 계층) : 상위 수준의 Java API 프레임워크에 기기 하드웨어 기능을 노출하는 표준 인터페이스를 제공. 여러 라이브러리 모듈로 구성되어 있으며 카메라 또는 블루투스 모듈과 같은 특정 유형의 하드웨어 구성 요소를 위한 인터페이스를 구현 Native C/C++ Libraries : 안드로이드 프레임워크에서 필요한 C와 C++ 라이브러리를 제공 Android Runtime : 코어 라이브러리 지원, 가상머신으로 안드로이드 애플리케이션 실행 환경을 제공 Java A..
EditText 빈 값일 때 toast 띄우기, toast 창이 안뜰 때 val title : String = binding.editTodo.text.toString().trim() val content : String = binding.editDetail.text.toString().trim() if(title.isEmpty() || content.isEmpty()){ Toast.makeText(this, "빈 내용이 있습니다.", Toast.LENGTH_SHORT).show() } 알고 나면 쉽지만 알기 전에는 어려웠던 .isEmpty() ※ Toast를 띄우기 위해 필요한 문장은 이 문장 하나이다. Toast.makeText(this, "빈 내용이 있습니다.", Toast.LENGTH_SHORT).show() - toast 창이 뜨지 않아 고생했는데 애뮬레이터를 초기화 ..