Kotlin/기타

JSONObject란? JSONObject란 JSON 형식의 String을 처리하도록 도와주는 Java 라이브러리이다. JSONObject 사용 준비하기 JSONObject를 사용하기 위해 더미 JSON 파일이 있다고 가정해보자. { "title": "android", "version" : 1, "isValid" : false, "types": [ "class", "interface", "object" ] } 위 JSON은 Kotlin String으로는 다음과 같이 변환된다. val result = "{'title':'android', 'version' : 0, 'isValid' : false, 'types':['class',''interface','object']}" JSONObject 사용하기 JSO..
블록이 실행되지 말아야 할 때의 Best Practice Kotlin에서는 if-else 문으로 코드 블록을 실행할지 결정한다. 하지만 if-else 문을 중첩해서 쓰면 블록이 계속 블록이 중첩되기 때문에 가독성이 떨어진다. 특히 오랫동안 유지보수된 레거시 코드들을 보면 이러한 상황이 매우 잘 나타난다. 보통 이러한 코드들은 null이 아님을 확인하기 위해 1번 if 문을 쓰는 것을 기본으로 한다. 예를 들어 다음 코드와 같이 사용된다. fun blockExecuteExample(apple : Apple?) { if (apple != null) { if(apple is Fruit) { eat() } } } 여기서 끝나면 괜찮겠지만 보통 이런 코드들은 if문을 여러 번 중첩한다. if 문을 여러 번 중첩하..
변수의 변경 가능 지점을 최소화 해야 하는 이유 프로그래밍을 하다보면, 이곳 저곳에서 변수의 값이 변화되는 것을 볼 수 있다. 코드의 양이 작을 때는 이런 것이 문제가 안되지만 코드의 양이 많아질 수록 문제가 된다. 특히 특정 클래스에 속한 변수가 외부에서 직접 접근된 다음 수정되면 해당 클래스 상태(State)의 변경 가능 지점이 늘어나기 때문에 문제가 생긴다. 예를 들어 ExampleView와 ExampleView의 데이터를 저장하는 ExampleViewModel이 있고 ExampleViewModel의 viewData는 서버에서 가져온다고 해보자. 이때 viewData는 초기화 시 한 번만 가져오고 이후에 바뀌면 안된다. 그러면 다음과 같이 코드가 만들어질 수 있다. class ExampleView(..
목표 시작 값과 끝나는 값이 있는 범위를 다루는 방법을 이해한다. Range와 Progression의 차이를 이해하고, 상황에 맞게 쓸 수 있도록 한다. *Range와 Progression에 대한 자료가 많이 없어 직접 소스코드를 분석해서 자료를 만들었습니다. 부족한 부분이 있을 수 있으니 수정해야 할 부분은 댓글로 남겨주시면 감사하겠습니다. 개요 이 장에서 Progression Class와 Range Class를 묶어 놓은 것은 Range는 Progression의 특수한 형태이기 때문이다. 둘 다 범위를 다룬다는 것은 같지만, Progression은 start와 end를 정해놓고 구간을 1이상의 정수로 바꿀 수 있는 반면 range는 구간이 1로 고정되어 있다. Progression 이란 Progres..
Dev.Cho
'Kotlin/기타' 카테고리의 글 목록 (2 Page)