Kotlin
-
[Jetpack Compose] 텍스트의 일부분 스타일 변경하기Android 2025. 8. 6. 18:12
컴포즈에서 텍스트의 일부분만 스타일을 변경해야할 일이 생겼다html에서는 span 태그를 사용해 변경할 일부분의 텍스트만 따로 스타일을 적용했었는데 compose에서는 어떻게 해야할지 몰랐다구글링을 해보니 AnnotatedString을 사용해서 구현하는 것을 알게 되었다 https://developer.android.com/develop/ui/compose/text/style-text?hl=ko 텍스트 스타일 지정 | Jetpack Compose | Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. 텍스트 스타일 지정 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Text 컴포저블에는 콘텐츠의 스타develo..
-
[CameraX] resolution(해상도) 조절 및 fallback 설정Android 2025. 8. 5. 08:31
이미지를 외부 저장소에 저장할 때 너무 큰 사이즈로 저장이 되었다사이즈와 해상도가 크다보니 파일 크기도 높아졌다CameraX에서는 이런 해상도를 조절할 수 있는 기능이 있어서 적용해보았다 @Params boundSizeboundSize를 기준으로 최고의 해상도를 선택 -> 없으면 fallbackRule에 정한 해상도 룰을 따름 @Params fallbackRule boundSize에서 정한 사이즈에 맞는 해상도를 기기에서 지원하지 않을 때 설정해놓은 fallbackRule 적용함cameraX에서는 최적화된 fallbackRule 옵션을 지원함 나의 경우 boudnSize를 어떻게 할까 하다가 아래와 같은 글을 보게 되었다https://www.adobe.com/kr/creativecloud/video/..
-
[Kotlin] 지연초기화(lateinit, by lazy), 위임(by)Kotlin 2024. 12. 20. 08:00
객체에 프로퍼티를 선언하면 초기화를 해주어야한다근데 객체에 들어오는 정보가 나중에 오는 경우 지금 당장 초기화하기 어려울 수 있다이런 경우 지연 초기화를 사용해 초기화를 지연시킨다지연초기화를 할 때 latenit, by lazy라는 키워드를 사용해서 지연시킬 수 있다이러한 키워드들을 사용해서 컴파일러한테 나중에 초기화를 하겠다고 알려주는 것이다각각의 키워드들에 대해서는 아래에 정리하겠다! 1. lateinit var로 선언한 프로퍼티에서 사용이 가능하고, 해당 프로퍼티에 getter, setter를 사용할 수 없다class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding override..
-
[Kotlin] Custom Getter, SetterKotlin 2024. 12. 19. 08:08
단순히 클래스 내의 프로퍼티에 접근해서 해당 프로퍼티의 값을 가져오거나 변경할 때는 게터와 세터를 굳이 쓸 필요가 없다왜냐면 코틀린은 알아서 getter, setter를 만들어주기 때문이다하지만 해당 프로퍼티를 가져올 때 값을 가공하거나 혹은 다른 프로퍼티와 연관되어 연산값 등을 가져오고 싶을 때는 커스텀 게터세터가 필요하다말은 거창하지만 원하는 대로 getter와 setter를 지정해줄 수 있다는 것이다 사용법은 간단하다프로퍼티를 선언하고 그 밑에 getter와 setter를 정의해주면 된다참고로 val로 선언된 프로퍼티의 경우 재할당이 안 되기 때문에 getter만 가능하다class Person(_name: String, _age: Int) { private var name: String = _..
-
[Kotlin] Scope functions(let, also, apply, with, run, use)Kotlin 2024. 12. 3. 23:29
코틀린 scope functions를 사용하면 좀 더 간단하게 코드를 작성할 수 있다헷갈리는 것들이 있어 정리해보려고 한다 1. letlet을 호출하는 객체 T를 매개변수로 받아서 block으로 넘기고 block안의 결과값(value)을 리턴함사실 이렇게 말하면 어렵고 코드로 보면 쉽다 package org.examplefun main() { checkName("hans") checkNameLet(null)}fun checkName(name: String?) { when(name) { null -> println("이름을 다시 입력해주세요") else -> println("name is $name") }}fun checkNameLet(name: String..
-
[kotlin] String.formatKotlin 2024. 11. 7. 08:39
코틀린으로 간단한 콘솔 과제에서 String format을 사용해 콘솔에 문자열을 보여주라는 피드백을 받았다그냥 나는 const val로 콘솔창에 보여줄 글로벌 상수로 정의했는데, String format을 사용해서 좀 더 가독성있게 작성할 수 있는 거 같았다 이걸 사용하기 위해 형식 문자를 알아야 한다 형식 문자란?형식 지정자는 컴퓨터에게 어떤 정보를 어떻게 화면에 보여줄지 알려주는 표시이며 프로그래밍에서 출력 형식을 제어하기 위해 사용된다고 한다. 형식 문자를 사용해서 코드의 결과값을 문자열로 원하는 형태대로 나타낼 수 있다. 코틀린에서는 형식문자를 사용하기 위해 문자열에 format을 사용할 수 있다- %b : boolean- %s : 문자열- %c: 문자- %d : 정수- %f : 실수- %e..
-
[회고] 새싹(SeSac) 한 달 회고etc 2024. 11. 7. 08:19
새싹 취업청년사관학교에서 강의를 들은지도 한 달이 벌써 지났다한 달 동안 어떻게 변했는지 기록을 남겨보고자 한다 1. 새로운 언어에 대한 적응나는 이전에 프론트엔드 부트캠프를 수강했고 자바스크립트(+타입스크립트)가 내 주언어였다부트캠프 중에 일주일 배운 리액트 네이티브가 재밌어서 웹으로 진행한 프로젝트를 앱으로 준비하다가 아예 모바일쪽으로 진로를 바꾸기로 했다그후 새싹에서 코틀린을 배우면서 자바스크립트와는 다른 방법으로 객체지향적으로 코드를 짜는 것을 배웠다 처음에는 클래스 만드는 것도 어렵고 이해가 잘 안 갔다자바스크립트에도 클래스가 있고 어떻게 쓰는지는 알았지만 거의 사용해본 적이 없어서 그런가 ㅎ그래도 계속 과제를 해보면서 클래스간의 관계들이라든지 아키텍처들을 적용해보면서어떻게 흘러가는지 조금씩 ..
-
[kotlin] expression & statement, control-flow(when)카테고리 없음 2024. 9. 30. 08:15
1. expression(표현식) and statement(문장)표현식이란? - 변수, 연산자로 구성되어 단일 값을 리턴하는 표현을 의미한다- if, when, try는 표현식에 해당한다 문장이란?- 수행할 작업을 나타내는 명령형 프로그래밍 언어의 가장 작은 독립된 실행형 요소를 의미한다- 완전한 실행단위를 구성하는 모든 것은 문장(statement)이다- 식은 문장의 한 부분(statement >= expression)이다 val passOrFail = if(jumsu >= 60) "pass" else "fail"val passOrFail = if(jumsu >= 60) "pass" else "fail" 여기서 부등호의 오른쪽 부분(if(jumsu >= 60) "pass" else "fail")은 pa..