안드로이드 <Kotlin> 17

[Kotlin] 알고리즘 풀이를 위한 코틀린 코드 템플릿

참고용입니다. 입력 받는 코드 BufferedReader를 사용해야 합니다. (미사용시 시간 초과 가능성) import java.io.* val b = BufferedReader(InputStreamReader(System.`in`)) // 한 줄 (readln은 readLine과 다르게 null을 허용하지 않음) val T:String = b.readLine() // 한 줄, 그러나 문자열이 아닐 때 val T:Int = b.readLine().toInt() // 한 줄, 한번에 리스트에 담아야 하는 경우 var lst:List = listOf() lst = b.readLine().split(' ') // 한 줄에 정수 3개를 띄워쓰기 기준으로 입력받을 때 val (a:Int, b:Int, c:Int)..

[Kotlin] 코틀린 제네릭(Generics)의 기본

코틀린은 타입 안정성과 유연함 극대화에 대한 고민을 통해 만들어진 언어입니다. 이번 글을 통해 코틀린 제너릭이 무엇인지 알아보겠습니다. 제너릭 (Generic) 제너릭은 클래스 내부에서 사용하는 변수의 자료형을 외부에서 설정할 수 있도록 돕는 기법입니다. 아래의 코드를 보면 동일한 클래스 Phone 내의 version변수가 아이폰은 문자열, 갤럭시는 정수로 저장되는 것을 확인할 수 있습니다. 갤럭시의 버전이 항상 정수로 이루어져 있고 아이폰의 버전은 항상 문자열로 표시, 저장되어야 할 때(예시를 위한 가정) 이 상황에서 제너릭은 기존의 엄격한 타입 체킹의 제약에서 벗어나는 방법이 될 수 있습니다. fun main() { var iphone: Phone = Phone("14ProMax") var galax..

[android] gradle 스크립트 파일에 대한 모든 이해

소개 gradle은 Groovy 또는 Kotlin을 사용하여 다양한 플랫폼 개발의 자동화를 돕는 스크립트 도구입니다. 저는 네이티브 안드로이드 앱 개발과 React-Native 앱 개발을 하는 과정에서 gradle 스크립트를 활용하고 있습니다. 이 글에서는 안드로이드 앱 개발 시 활용하는 gradle 을 설명하겠습니다. android 앱 개발에서의 gradle 안드로이드 생태계에선 어플리케이션을 개발하기 위해 적극적으로 gradle을 활용합니다. 아래 스크린샷은 한 프로젝트에 일반적으로 포함되는 gradle 파일들입니다. settings.gradle 프로젝트의 root 디렉토리에 위치하며 프로젝트 단위의 설정 파일 하나의 프로젝트에는 하나가 아닌 여러 개의 모듈이 있을 수 있음 아래와 같이 android..

[Kotlin] 코틀린 Array 자료형

코틀린의 Array 자료형을 간단하게 알아보겠습니다. Array 생성 여러 가지 방법으로 Array를 생성할 수 있습니다. arrayOf() 자료형을 명시하지 않는 경우(Any), 자료형 구분없이 다양한 타입을 갖는 배열을 생성할 수 있습니다. 물론 좋은 방법은 아닌 것 같습니다. val arrTmp = arrayOf(1, 2.200304, 3, "WTF", 5) // 1 2.200304 3 WTF 5 arrayOfNulls() 원하는 원소의 갯수를 가지는, null로 모두 이루어진 배열을 생성합니다. val arrTmp = arrayOfNulls(5); // null null null null null Array() 배열을 생성할 때 가장 자주 사용하는 방법입니다. 파이썬처럼 내부 조건문을 활용해서 다..

[Kotlin] 코틀린 Nullability

해당 변수가 Null 임을 확인하기 위해 다른 언어는 조건문 등을 통해 null exception을 잡아주어야 합니다. 간단한 소프트웨어 개발에는 크게 문제가 되지 않지만 규모가 커지면서 예외처리를 잡아주기 위한 코드는 배가 됩니다. 코드의 가독성과 효율이 낮아집니다. 이러한 문제를 코틀린에서는 MZ하게 해결합니다. null 가능한 변수 선언 코틀린에선, 일반적인 변수 선언 후 값으로 null 을 저장할 수 없습니다. fun main() { val name: String = null } // 에러 : Null can not be a value of a non-null type String 그러나 ? 연산자를 변수 선언 시 같이 작성하는 경우 null 또한 저장이 가능합니다. fun main() { val..

[android] 업로드 키, 인증서 재설정하기

기존 업로드 키를 분실하거나 더이상 사용할 수 없는 경우 새로운 업로드 키를 생성, 반영해야 합니다. 이 과정을 기록합니다. 새 업로드 키 생성 android studio에서 새 업로드 키를 생성합니다. 새 업로드 키를 생성하는 과정은 블로그 글을 참고해 주세요. 새 업로드 인증서 생성 생성한 업로드 키를 통해 새 업로드 인증서를 생성합니다. 아래 명령을 통해 새 업로드 인증서를 생성할 수 있습니다. 보다 자세한 설명은 공식 문서를 참고하세요. keytool -export -rfc -keystore 생성한업로드키파일이름 -alias 업로드키생성시지정한ALIAS명 -file 생성할업로드인증서이름.pem 업로드 키 재설정 요청 play console -> 설정 -> 앱 무결성 -> 앱 서명 항목에서 업로드 ..

[android] 배포용 안드로이드 앱 번들 빌드하기

안드로이드 스튜디오를 활용해서 배포용 안드로이드 앱 번들을 빌드해 보겠습니다. 버전 변경 versionCode가 같은 번들은 play console에 업로드할 수 없습니다. 처음으로 앱을 배포하는 상황이 아닌 경우 build.gradle 파일 내 versionCode 와 versionName 을 수정해주세요. 두 변수의 차이점과 기능에 대해선 공식 문서를 참고해주세요. 생성 옵션 선택 새로운 번들에 서명을 해야 합니다. Build -> Generate Singed Bundle / APK 를 선택합니다. 기본 설정(Android App Bundle)을 선택 후 다음 단계를 진행해 주세요. 업로드 키 생성 및 적용 업로드 키가 존재하는 경우 서명 키 비밀번호와 alias를 입력해주시고 서명키가 없는 경우 C..