| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- onStart()
- configuration change
- pullrequest
- onCreate()
- onSaveInstanceState()
- UI controller
- 열거
- onPause()
- onDestory()
- TransactionTooLargeException
- NavGraph
- fragment
- 가시성
- 풀리퀘스트
- Navigation Graph
- onResume()
- Navigation component
- onRestart()
- arcitecture
- onStop()
- Navgivation
- LiveData
- LifecycleOwner
- Backing property
- Bundle
- 프래그먼트
- ViewModel
- IntArray
- MVVM
- 깃허브
- Today
- Total
목록전체 글 (26)
밑빠진 지식에 블로그 쓰기
모든 액티비티는 생명주기를 가지고 있다. 탄생 부터 죽음 까지 처음 생성되어 초기화 될때부터 파괴되고 시스템에서 메모리를 회수할 떄까지 다양한 상태로 구성된다. 유저가 앱을 시작할때, 액티비티 사이를 이동할때 앱에서 나가고 들어올때, 액티비티의 상태가 변경됩니다. 우리는 이렇게 상태가 변경될때 어떤 동작을 하고 싶습니다. 즉 코드를 실행 시키고 싶다. 그러기 위해서는 생명주기 콜백 함수를 구현 해야한다. 액티비티 상태가 변경 될때 안드로이드 시스템(운영체제)가 콜백함수를 호출한다. onCreate() : 액티비티에 대한 초기화를 해야하는 곳 레이아웃을 inflate합니다. => 인플레이트 문서 만들기( 인플레이트란 무엇인가) 클릭리스너를 정의합니다. 뷰바인딩을 설정합니다. onCreate() 실행된 후에..
https://leetcode.com/problems/richest-customer-wealth/ Richest Customer Wealth - LeetCode Can you solve this real interview question? Richest Customer Wealth - You are given an m x n integer grid accounts where accounts[i][j] is the amount of money the i th customer has in the j th bank. Return the wealth that the richest customer has. A custom leetcode.com class Solution { fun maximumWealth(acc..
https://leetcode.com/problems/running-sum-of-1d-array/description/ Running Sum of 1d Array - LeetCode Can you solve this real interview question? Running Sum of 1d Array - Given an array nums. We define a running sum of an array as runningSum[i] = sum(nums[0]…nums[i]). Return the running sum of nums. Example 1: Input: nums = [1,2,3,4] Output: [1,3,6, leetcode.com 어떤 생각을 해야 할까. 1. 출력할 결과를 정의한다. 2..
- 실행시 제네릭스의 동작: 소거된 타입 파라미터와 실체화된 타입 파라미터 타입 소거 : 실행시점(runtime)에 제네릭 클래스의 인스턴스에 타입 인자 정보가 들어가 있지 않다. 실체화 : inline을 이용하여 함수를 사용할때 타입 인자가 지워지지 않게 하는 방법 - 실행 시점(runtime)의 제네릭 : 타입 검사와 캐스트 -> 제네릭 타입 인자 정보는 런타임에 지워진다. -> 제네릭 클래스의 인스턴스가 그 인스턴스를 생성할 때 쓰인 타입 인자에 대한 정보를 모른다. ex) List를 만들어도 실행시점(runtime)에는 단지 List일 뿐이다. -> 실행시점에는 어떤 타입의 원소를 저장하는지 알수 없다. -> 컴파일러는 List과 List를 다른 타입으로 알지만 런타임에서는 단지 List로 같은 ..
고차함수 : 다름 함수를 인자로 받거나 함수를 반환하는 함수 장점 1. 코드를 더 간결하게 2. 코드 중복 없애고 3. 더 나은 추상화 - 함수 타입 람다를 인자로 받은 함수를 정의하려면 람다의 인자의 타입을 정의해야 한다. (Int, String) -> Unit 파라미터 타입 -> 반환 타입 함수정의 할땐 Unit 생략 가능하지만 함수 타입을 정의할땐 Unit을 생략하면 안된다. - 인자로 받은 함수 호출 방법 fun twoAndThree(operation: (Int, Int) -> Int)) { //함수 타입인 파라미터를 선언 val result = operation(2, 3) //함수 타입인 파라미터를 호출한다. println("The result is $result") } 예시 함수를 파라미터로 ..
관례 : 어떤 언어 기능과 미리 정해진 이름의 함수를 연결해주는 기법 확장함수 : 기존 클래스에 새로운 메소드를 추가할 수 있다. - 산술 연산자 오버로딩 자바에서 가능한 산술연산자 타입 : 원시 타입 , String 타입 코틀린 : 컬랙션에 원소를 추가하는 경우 등등 - 이항 산술 연산 오버로딩 keyword : operator 함수명 : plus 예시 operator fun plus(other: Point) : Point { return Point( x + other.x, y + other.y) } => 객체(인스턴스).plus(객채) => 객체 + 객체 로 사용가능 => 객체 + 객체 형태는 객체.plus(객체)로 컴파일 된다. 코틀린 컴파일러는 해주는일이 많은거 같다. => 간결하고 가독성이 올라..
- 널 가능성 런타임에서 NullPointException 오류를 피할 수 있게 돕기 위한 토클린 타입 시스템의 특성 런타임에서 발생하는 이런 문제를 컴파일 시점으로 옮겼다 => 컴파일러가 컴파일 시 미리 오류를 감지해 실행 시점에 발생 할수 있는 예외 가능성을 줄였다. => IDE 상에서 빨간줄로 에러인지 확인 할 수 있게 되었다.! - 널이 될 수 있는 타입 자바에서는 기본적으로 객체 참조 변수는 널이 가능한 타입이다. 코틀린에서는 기본적으로 널이 불가능한 타입이다. fun setLen(s: String) = s.length => setLen함수에 인자로 null 리터럴을 직접 전달하거나 널이 될수 있는 인자를 넘길수 있다. 그런 null가능성이 있는 있자를 넘기면 컴파일시 오류가 난다. => 런타임..
람다(식) (lambda expression) : 다른 함수에 넘길 수 있는 작은 코드 조각 컬렉션 처리에서 람다를 자주 사용한다. 무명 내부 클래스를 사용하면 코드를 함수에 넘기거나 변수에 저장할수 있다. 무명 내부 클래스를 사용하면 번거롭다. 함수형 프로그래밍은 번거로움을 해결 했다. 함수형 프로그래밍? 함수를 값처럼 다루는 접근 방법 클래스를 선언하고 그 클래스의 인스턴스를 함수에 넘기는 대신 함수를 직접 다른 함수에 전달 할 수 있다. 람다 식을 사용하면 코드가 간결해진다. 간결하다 => 더 짧은 코드로 같은 기능을 수행할 수 있다. 람다식을 사용하면 함수를 선언할 필요가 없고 코드 블록을 직접 함수의 인자로 전달 할 수 있다. 함수를 직접 다른 함수에 전달 할 수 있다. 람다 식을 사용하면 코드..