Dev 311

코틀린 - 코틀린 타입 시스템 (요약)

6장 코틀린 타입 시스템 - 코틀린은 널이 될 수 있는 타입을 지원해 NullPointerException 오류를 컴파일 시점에 감지할 수 있다.- 코틀린의 안전한 호출(?.), 엘비스 연산자(?:), 널 아님 단언(!!), let 함수 등을 사용하면 널이 될 수 있는 타입을 간결한 코드로 다룰 수 있다.- as? 연산자를 사용하면 값을 다른 타입으로 변환하는 것과 변환ㄴ이 불가능한 경우를 처리하는 것을 한꺼번에 편리하게 처리할 수 있다.- 자바에서 가져온 타입은 코틀린에서 플랫폼 타입으로 취급된다. 개발자는 플랫폼 타입을 널이 될 수 있는 타입으로도, 널이 될 수 없는 타입으로도 사용할 수 있다.- 코틀린에서는 수를 표현하는 타입(Int 등)이 일반 클래스와 똑같이 생겼고 일반 클래스와 똑같이 동작한다..

Dev/Kotlin 2018.09.30

코틀린 - 코틀린 타입 시스템 (정리)

코틀린 타입 시스템 (Kotlin In Action) - 코틀린의 타입 시스템은 코드의 가독성을 향상시키는 데 도움이 되는 몇 가지 특성을 제공한다.- 널이 될 수 있는 타입, 읽기 전용 컬렉션 ? - fun strLen(s: String) = s.length 일 경우, 해당 함수가 널과 문자열을 인자로 받을 수 있게 하려면 타입 이름 뒤에 물음표를 명시해야 한다. fun strLen(s: String?) ?. - 안전한 호출 연산자 -> null 검사와 메소드 호출을 한 번의 연상으로 수행하게 도와준다. ?: - 엘비스 연산자 -> null 대신 사용할 디폴트 값을 지정할 때 편리하게 사용 fun foo(s: String?) { val t: String = s ?: " " } as? - 안전한 캐스트 ..

Dev/Kotlin 2018.09.30

코틀린 - 람다로 프로그래밍(요약)

5장 람다로 프로그래밍 - 람다를 사용하면 코드 조각을 다른 함수에게 인자로 넘길 수 있다.- 코틀린에서는 람다가 함수 인자인 경우 괄호 밖으로 람다를 빼낼 수 있고, 람다의 인자가 단 하나뿐인 경우 인자 이름을 지정하지 않고 it 이라는 디폴트 이름으로 부를 수 있다.- 람다 안에 있는 코드는 그 람다가 들어있는 바깥 함수의 변수를 읽거나 쓸 수 있다.- 메소드, 생성자, 프로퍼티의 이름 앞에 ::을 붙이면 각각에 대한 참조를 만들 수 있다. 그런 참조를 람다 대신 다른 함수에게 넘길 수 있다.- filter, map, all, any 등의 함수를 활용하면 컬렉션에 대한 대부분의 연산을 직접 원소를 이터레이션하지 않고 수행할 수 있다.- 시퀀스를 사용하면 중간 결과를 담는 컬렉션을 생성하지 않고도 컬렉..

Dev/Kotlin 2018.09.27

코틀린 - 클래스, 객체, 인터페이스(요약)

4장 클래스, 객체, 인터페이스 - 코틀린의 인터페이스는 자바 인터페이스와 비슷하지만 디폴트 구현을 포함할 수 있고, 프로터티도 포함할 수 있다.- 모든 코틀린 선언은 기본적으로 final이며, public 이다.- 선언이 final이 되지 않게 만들려면(상속과 오버라이딩이 가능하게 하려면) 앞에 open을 붙여야 한다.- internal 선언은 같은 모듈 안에서만 볼 수 있다.- 중첩 클래스는 기본적으로 내부 클래스가 아니다. 바깥쪽 클래스에 대한 참조를 중첩 클래스 안에 포함시키려면 inner 키워드를 중첩 클래스 선언 앞에 붙여서 내부 클래스로 만들어야 한다.- sealed 클래스를 상속하는 클래스를 정의하려면 반드시 부모 클래스 정의 안에 중첩 클래스로 정의해야 한다.- 초기화 블록과 부 생성자를..

Dev/Kotlin 2018.09.25

패키지가 이름이 같은 기존 패키지와 충돌합니다

'패키지가 이름이 같은 기존 패키지와 충돌합니다' 의 요인 APK 설치시, 앱이 설치되지 않는 문제가 발생할 수도 있습니다. 문제 : 저는 보통 앱을 다 테스트 하고, 제일 마지막으로 릴리즈용 KeyStore 로 만든 Signed APK(버전2) 를 만들어서 기존의 플레이스토어 최신 버전의 APK(버전 1) 위에 설치를 해서 확인해 보았습니다. (위에서 말한 설치는 PlayStore 에서 앱을 받고 제가 만든 최신 버전이 담긴 APK 를 스마트폰에 복사해서 APK를 직접설치) 그러나 설치할때, 위와 같이 '패키지가 이름이 같은 기존 패키지와 충돌합니다' 라는 문구가 떴습니다. 그래서 일반적으로 생각해서 다른 KeyStore 로 빌드했다고 생각했고 엄청 많이 빌드 및 테스트를 했습니다 ㅠ 결론 : 충돌요인..

Dev/Android 2018.09.14

스페이스 도 정규식이 있다?!

혹시, 여러분은 스페이스를 정규식으로 표현할 수 있다는 것을 알았습니까??물론, 알았겠지요... 아마 저만... 스페이스를 정규식으로 할 수 있다는 사실을 몰랐던것 같습니다. 저는 보통 String 을 특정 단어, 공백, 등으로 나눌때, String str = "ab cd ef gh";String[] arr = str.split(" "); 방식으로 나눴습니다. 그러나 검색을 하다보니 정규식이 있다는 것을 알았습니다. ^^;;;; String str = "Hello I'm your String"; String[] splited = str.split("\\s+"); 나만, 몰랐나보다..... 단순히 space바를 쓸게 아니라 확실하게 정규식을 쓰는게 내가 스페이스바를 몇번을 눌렀는지 헷갈리지도 않고 좋을것 ..

Dev/Java 2018.09.10

XML 에서 색상 투명도 - Color opacity/alpha value

Android 의 XML에서 색상 투명도 단계Color opacity/alpha value 100% — FF 99% — FC 98% — FA 97% — F7 96% — F5 95% — F2 94% — F0 93% — ED 92% — EB 91% — E8 90% — E6 89% — E3 88% — E0 87% — DE 86% — DB 85% — D9 84% — D6 83% — D4 82% — D1 81% — CF 80% — CC 79% — C9 78% — C7 77% — C4 76% — C2 75% — BF 74% — BD 73% — BA 72% — B8 71% — B5 70% — B3 69% — B0 68% — AD 67% — AB 66% — A8 65% — A6 64% — A3 63% — A1 62% ..

Dev/참고 2018.09.07

[책] 누구나 자료 구조와 알고리즘 - 출퇴근 시간 100% 활용!!

'간단하게' 책 리뷰를 해보겠습니다!!! 제가 페이스북 길벗 출판사에서 진행한 이벤트에 당첨이 되어서 책을 받게 되었습니다!! (흐뭇흐뭇)제가 받은 책은 누구나 자료 구조와 알고리즘 입니다. 페이스북 이벤트 주소 저는 직업으로서 안드로이드 개발을 3년정도 했습니다. 그러나 알고리즘 공부는 하다말다를 꽤나 반복했으며, 지금까지 잘 모르는 상태로 지내고 있습니다. 다만, 이번의 서평이라는 과제 덕분에 좀 더 마음먹고 책을 읽으며 공부를 할 수 있었고 그 덕분에 이론이 머리에 와닿기 시작했습니다. 하지만 갈길은 아직 많이 남았다고 생각합니다..... ㅠㅠ [아주 지극히 주관적인 책의 특징 3가지] 1. 책 크기는 작고 얇아서 가져다니기 쉽습니다.2. 어려운 내용이 아니기에 집중하기가 편합니다.3. 섹션마다 내..

Dev/Algorithm 2018.08.31