본문 바로가기

분류 전체보기

(106)
Android Component (2) Fragment Fragment : Activity와 마찬가지로 사용자에게 UI 화면을 제공하는데 사용하는 컴포넌트 여러 개의 Fragment를 하나의 액티비티에 결합하여 다향한 화면 구성의 UI를 제작할 수 있다. Fragment는 항상 Activity 내에서 호스팅 되어야 한다. Fragment의 생명주기는 호스트 Activity의 생명주기에 직접적으로 영향을 받는다. 자체적인 생명주기를 가져서 Activity가 실행중인 동안 Fragment로 이루어진 분할된 화면들의 상태를 자체적으로 조작할 수 있다. FragmentManager를 통해 관리한다. Fragment 생명주기 onAttach() : Fragment가 Activity에 붙을 때 호출된다. 하지만 아직 fragment가 완벽하게 생성된 단..
Android Component (1) Activity Activity : 사용자에게 UI 화면을 제공하는데 있어 가장 기본이 되는 앱 컴포넌트 하나의 앱은 앱 최초 실행 시 보여지는 하나의 메인 액티비티를 가진다. 액티비티에 다양한 컴포넌트들을 추가하여 다채로운 UI를 구성할 수 있다. Activity 생성 : 모든 Activity는 반드시 Manifest 파일에 선언되어야 한다. Activity 생명주기 onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy() 순으로 실행된다. 경우에 따라 onRestart() 메소드 호출 필요성 : PC환경에서 모바일 환경으로 전환되면서 사용자가 사용하는 디스플레이의 화면이 작아졌으며 이에 따라 여러 이슈들 발생, 생명주기를 통해 특정 Ac..
Tedpermission을 사용한 권한 설정 (Contacts 쓰기 권한 사용) Gradle 파일 추가 implementation 'io.github.ParkSangGwon:tedpermission-normal:3.3.0' Manifest 파일 추가 (연락처 쓰기 권한) Manifest permission에 대한 정보는 https://developer.android.com/reference/android/Manifest.permission Manifest.permission | Android Developers developer.android.com val permissionlistener = object : PermissionListener { //권한 허용 시 override fun onPermissionGranted() { var name = binding.tvName.text..
contentResolver를 이용한 연락처 저장 https://developer.android.com/guide/topics/providers/contacts-provider 연락처 제공자 | Android 개발자 | Android Developers 연락처 제공자 연락처 제공자는 사람에 대한 데이터를 저장하는 기기의 중앙 리포지토리를 관리하는 강력하고 유연한 Android 구성요소입니다. 연락처 제공자는 기기의 주소록 애플리케이션에서 developer.android.com private fun addContacts(name: String, tel: String) { val p = ContentValues() p.put(ContactsContract.RawContacts.ACCOUNT_TYPE, "com.google") p.put(ContactsCon..
[BOJ] BOJ 14500. 테트로미노 (JAVA) https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 문제 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변끼리 연결되어 있어야 한다. 즉, 꼭짓점과 꼭짓점만 맞닿아 있으면 안 된다. 정사각형 4개를 이어 붙인 폴리오미노는 테트로미노라고 하며, 다음과 같은 5가지가 있다. 아름이는 크기가 N×M인 종이 위에 테..
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..