Downloadable and Preloaded Fonts on Android

Downloadable and Preloaded Fonts on Android ์•ฑ์„ ๋…ํŠนํ•˜๊ฒŒ ๋ณด์ด๊ณ  ๋Š๋ผ๊ฒŒ ๋งŒ๋“œ๋Š” ์ค‘์š”ํ•œ ๋ถ€๋ถ„ ์ค‘ ํ•˜๋‚˜๋Š” ํ›Œ๋ฅญํ•œ ํฐํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•ˆ๋“œ๋กœ์ด๋“œ ๊ธฐ๋ณธ ํฐํŠธ๋Š” Roboto์ธ๋ฐ, ์‚ฌ์šฉ์ž์˜ ํฐํŠธ๊ฐ€ ์•„๋‹Œ Roboto๋ฅผ ๋ณด๊ฒŒ ํ•˜๊ณ  ์‹ถ์€ ๊ฐœ๋ฐœ์ž๋“ค์„ ์œ„ํ•ด Google์€ Google Fonts ์ €์žฅ์†Œ๋ฅผ ๋งŒ๋“ค์–ด ํฐํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐœ๋ฐœ์ž๋“ค์ด ํฐํŠธ๋ฅผ ํ›จ์”ฌ ์‰ฝ๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ์—ˆ๊ณ , ์ด๋ฅผ Downloadable Fonts๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ถ”ํ›„ Google์€ Preloaded Fonts๋ฅผ ์†Œ๊ฐœํ•˜์—ฌ ์•ฑ์ด ์‹คํ–‰๋  ๋•Œ๊ฐ€ ์•„๋‹Œ ์„ค์น˜๋  ๋•Œ ํฐํŠธ๊ฐ€ ๋‹ค์šด๋กœ๋“œ๋  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค. Downloadable Fonts๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๊ณ , ํฐํŠธ๋ฅผ Preload ..

Android Weekly 2024.04.23 0

2024 ์˜คํ”ˆ์†Œ์Šค ์ปจํŠธ๋ฆฌ๋ทฐ์…˜ ์•„์นด๋ฐ๋ฏธ (์ฒดํ—˜ํ˜• 1์ฐจ) ๋ฉ˜ํ‹ฐ ํ•ฉ๊ฒฉ

์˜คํ”ˆ์†Œ์Šค ์ปจํŠธ๋ฆฌ๋ทฐ์…˜ ์•„์นด๋ฐ๋ฏธ ์ฒดํ—˜ํ˜• ํ”„๋กœ์ ํŠธ๋Š” ์˜คํ”ˆ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด ๋ฐฉ์‹์˜ ๊ฐœ๋ฐœ๋ฌธํ™”์— ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ์˜ˆ๋น„ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ 6์ฃผ ์†์„ฑ ๋ฉ˜ํ† ๋ง ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. ์•ฝ 2๋…„ ์ „ ์˜คํ”ˆ์†Œ์Šค ์ปจํŠธ๋ฆฌ๋ทฐ์…˜ ์•„์นด๋ฐ๋ฏธ์—์„œ Masters๊นŒ์ง€ ๊ฐ€์ง€ ๋ชปํ•œ ๊ฒƒ์ด ์•„์ง๊นŒ์ง€๋„ ๋„ˆ๋ฌด ์•„์‰ฝ๊ธฐ๋„ ํ–ˆ๊ณ , ๊ทธ ์ดํ›„๋กœ ์˜คํ”ˆ์†Œ์Šค์— ๊ธฐ์—ฌ๋ฅผ ๊ฑฐ์˜ ๋ชปํ•ด์„œ๐Ÿ˜“ ๋‹ค์‹œ ํ•œ ๋ฒˆ ์‹ ์ฒญํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค! ์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ๊ณ  ๊ทธ์ค‘์—์„œ ์ฐธ๊ฐ€ํ•˜๊ณ  ์‹ถ์€ 1์ง€๋ง๊ณผ 2์ง€๋ง ํ”„๋กœ์ ํŠธ์— ์ง€์›ํ•˜๋Š” ๋ฐฉ์‹์ธ๋ฐ, ๋‚˜๋Š” 1์ง€๋ง๊ณผ 2์ง€๋ง ๋ชจ๋‘ 'Git ํ™œ์šฉ ๋ฐ .NET ํฌ๋กœ์Šค ํ”Œ๋žซํผ ์•ฑ ๊ฐœ๋ฐœ' ํ”„๋กœ์ ํŠธ์— ์‹ ์ฒญํ–ˆ๋‹ค. Redis๋‚˜ JS, LLM ๋“ฑ ๋‹ค์–‘ํ•œ ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ, ์•„๋ฌด๋ž˜๋„ ์•ฑ ๊ฐœ๋ฐœ์ž์ธ ๋‚˜์—๊ฒŒ๋Š” ํฌ๋กœ์Šค ํ”Œ๋žซํผ ์•ฑ ๊ฐœ๋ฐœ๋ฐ–์— ์•ˆ๋ณด์˜€๋‹ค~~~!๐Ÿซ ๐Ÿ’› ๊ฐ„์ ˆํ•˜๊ฒŒ ์ง€์›์„œ๋ฅผ ์ ์€ ๋•๋ถ„์ธ์ง€ , , ๋ฉ˜ํ‹ฐ๋กœ ์„ ๋ฐœ..

Date and Time Formatting in Kotlin with the DateTime Library

์ตœ๊ทผ ํšŒ์‚ฌ ์„œ๋น„์Šค ๊ฐœ๋ฐœ ์ค‘, ์„œ๋ฒ„์—์„œ ๋‚ด๋ ค์ฃผ๋Š” DateFormat(โ€2024-03-11 07:18:25โ€)๊ณผ ๋””์ž์ธ์ชฝ์—์„œ ์›ํ•˜๋Š” DateFormat(โ€03/11/2024 07:18:25โ€)์ด ๋‹ฌ๋ผ ๋ฐ˜๋‚˜์ ˆ์„ ์‚ฝ์งˆํ•œ ๊ฒฝํ—˜์ด ์žˆ์–ด์„œ,, ์ด ์ฃผ์ œ๋ฅผ ์„ ํƒํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹คโ€ฆ๐Ÿฅน kotlinx-datetime ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” โ€œv0.6.0-RCโ€์—์„œ ์—…๋ฐ์ดํŠธ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด์˜ ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„์— ๊ด€ํ•œ Formatting Options ์˜ˆ๋ฅผ๋“ค์–ด โ€œMarch 1, 2024, at 9:15 AMโ€์„ ์ฝ”๋“œ๋กœ ๋‚˜ํƒ€๋‚ด๊ณ  ์‹ถ๋‹ค๋ฉด, LocalDateTime(2024, 3, 1, 9, 15, 0, 0) ์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. LocalDateTime LocalDateTime.Formats.ISO โ†’ 2024-03-01T09:15:00 L..

Android Weekly 2024.03.18 1

์ฝ”ํ‹€๋ฆฐ Kotlin split("")์ด ์ œ๋Œ€๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š๋Š” ์ด์œ 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฌธ์ž์—ด ๋Œ๋ฆฌ๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv.0 ๋ฌธ์ œ๋ฅผ ํ’€๋ฉฐ ์ž์กด๊ฐ์„ ์˜ฌ๋ฆฌ๊ณ  ์žˆ๋˜ ๋„์ค‘, split ํ•จ์ˆ˜์— ๋Œ€ํ•œ ๋†€๋ผ์šด ์‚ฌ์‹ค(?)์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค. ๋ฐœ๊ฒฌํ•˜๊ฒŒ ๋œ ๋ฌธ์ œ๋Š” '๋ฌธ์ž์—ด ๋Œ๋ฆฌ๊ธฐ'๋ผ๋Š” ๋ฌธ์ œ๋‹ค. https://school.programmers.co.kr/learn/courses/30/lessons/181945 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr 'split์œผ๋กœ ๋ฌธ์ž์—ด์„ ์ชผ๊ฐœ์„œ map์„ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๊ฒ ๊ตฐ..'์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์งฐ๋‹ค. fun main(args: Array) { readLine()!!.split("").map { pr..

Kotlin 2023.12.03 2

์•ˆ๋“œ๋กœ์ด๋“œ Android API Key ๋‹ค๋ฃจ๊ธฐ, ์ค‘์š”ํ•œ ๊ฐ’ ์ˆจ๊ธฐ๊ธฐ

์•ˆ๋“œ๋กœ์ด๋“œ API Key ๋“ฑ ์ค‘์š”ํ•œ ๊ฐ’์„ ์ˆจ๊ธฐ๋Š” ๋ฐฉ๋ฒ• 1. ํ”„๋กœ์ ํŠธ ๋ ˆ๋ฒจ build.gradle์— ํ”Œ๋Ÿฌ๊ทธ์ธ ์ถ”๊ฐ€ plugins { ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' version '2.0.1' apply false } 2. build.gradle(:app)์— ํ”Œ๋Ÿฌ๊ทธ์ธ ์ถ”๊ฐ€ plugins { ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' } 3. local.properties ์— ๊ฐ์ข… ์ˆจ๊ฒจ์•ผํ•  ๊ฐ’์„ ์ถ”๊ฐ€ 4. ๋นŒ๋“œ ํ›„, Constants.kt ํŒŒ์ผ์— ๋ณ€์ˆ˜ ์ƒ์„ฑ BuildConfig. + local.properties์— ๋“ฑ๋กํ–ˆ๋˜ ..

Android 2023.09.10 3

์•ˆ๋“œ๋กœ์ด๋“œ Android Could not resolve com.android.tools.build:gradle:7.4.2. ์˜ค๋ฅ˜

Android Could not resolve com.android.tools.build:gradle:7.4.2. Jetpack Compose Project๋ฅผ Github์—์„œ Cloneํ•ด์˜ค๋ฉด์„œ ์ด๋Ÿฐ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค์—์„œ ๋งค์šฐ ์นœ์ ˆํ•˜๊ฒŒ ํ•ด๊ฒฐ๋ฒ•์„ ์•Œ๋ ค์คฌ๋Š”๋ฐ๋„(....) ์ด ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•˜๋Š”๋ฐ 1์‹œ๊ฐ„์€ ์“ด ๋“ฏ.. ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฌด์ž‘์ • ๊ตฌ๊ธ€๋ง ํ•˜์ง€ ๋ง๊ณ , ๊ผผ๊ผผํžˆ ์ฝ๋Š” ์Šต๊ด€์„ ๋“ค์ด์ž! ํ‘œ์‹œํ•œ ๋ถ€๋ถ„์„ ์ž˜ ์ฝ์–ด๋ณด๋ฉด ์•Œ ์ˆ˜ ์žˆ๋‹ค. Gradle 7.4.2 ๋ฒ„์ „๊ณผ Java 8 ๋ฒ„์ „์€ ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. ์ •ํ™•ํžˆ๋Š” Gradle 7.3.0๋ถ€ํ„ฐ ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ณ , ์ตœ์†Œ JDK 11 ์ด์ƒ์ด ์š”๊ตฌ๋œ๋‹ค๊ณ  ํ•œ๋‹ค. โฌ‡๏ธ ํ”„๋กœ์ ํŠธ JDK๋ฅผ ๋ฐ”๊พธ๋Š” ๋ฐฉ๋ฒ•์€ ์•„๋ž˜ ๋งํฌ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค! ๐Ÿ˜Š https://hyu..

Android 2023.06.04 0

Kotlin ์ฝ”ํ‹€๋ฆฐ ๋ฌธ์ž์—ด ๋Œ€์†Œ๋ฌธ์ž ํ•จ์ˆ˜๋“ค(toUpperCase, caplitalize ๋“ฑ) Deprecated๋œ ์ด์œ 

์ฝ”ํ‹€๋ฆฐ 1.5์—์„œ ๋ฌธ์ž์—ด์˜ ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” capitalize, ๋ฌธ์ž์—ด์„ ๋ชจ๋‘ ๋Œ€๋ฌธ์ž๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” toUpperCase ๋“ฑ ์ž๋ฐ”์—์„œ ์ต์ˆ™ํ•˜๋˜ ๋ฌธ์ž์—ด์˜ ๋Œ€์†Œ๋ฌธ์ž ๊ด€๋ จ ํ•จ์ˆ˜๋“ค์ด ๋ชจ๋‘ deprecated ๋˜์—ˆ๋‹ค. capitalize๋ฅผ ์ธํ…”๋ฆฌ์ œ์ด์—์„œ ์ œ์•ˆํ•˜๋Š” ํ˜•์‹๋Œ€๋กœ ๋ฐ”๊พธ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ๊ฐ€ ์ž‘์„ฑ๋œ๋‹ค. import java.util.* fun main(args: Array) { var beverage = readLine()?.replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString() } println(beverage) } ์ž˜ ์“ฐ๋˜ capitalize๋ฅผ ๋†”๋‘๊ณ  ์™œ ์ด๋ ‡๊ฒŒ ์•ˆ์˜ˆ์œ(...) ..

Kotlin 2023.03.10 0

Kotlin ์ฝ”ํ‹€๋ฆฐ ๋ฐฑ์ค€ 2659 ์‹ญ์ž์นด๋“œ ๋ฌธ์ œ

https://www.acmicpc.net/problem/2659 2659๋ฒˆ: ์‹ญ์ž์นด๋“œ ๋ฌธ์ œ ์ž…๋ ฅ์€ ํ•œ ์ค„๋กœ ์ด๋ฃจ์–ด์ง€๋ฉฐ, ์ด ํ•œ ์ค„์€ ์นด๋“œ์˜ ๋„ค ๋ชจ์„œ๋ฆฌ์— ์”Œ์—ฌ์žˆ๋Š” 1 ์ด์ƒ 9 ์ดํ•˜์˜ ์ˆซ์ž 4๊ฐœ๊ฐ€ ์‹œ๊ณ„ ๋ฐฉํ–ฅ์œผ๋กœ ์ž…๋ ฅ๋œ๋‹ค. ๊ฐ ์ˆซ์ž ์‚ฌ์ด์—๋Š” ๋นˆ์นธ์ด ํ•˜๋‚˜ ์žˆ๋‹ค. www.acmicpc.net ๋„ค ์ž๋ฆฌ ์ˆ˜๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜์ธ ์‹œ๊ณ„์ˆ˜๋ฅผ ๊ตฌํ•ด์„œ, ๋ชจ๋“  ์‹œ๊ณ„์ˆ˜๋“ค ์ค‘์—์„œ ๋ช‡ ๋ฒˆ์งธ๋กœ ์ž‘์€ ์‹œ๊ณ„์ˆ˜์ธ์ง€ ์นด์šดํŠธํ•ด์ฃผ๋ฉด ๋œ๋‹ค! import java.lang.Integer.min /** * ์‹ญ์ž์นด๋“œ ๋ฌธ์ œ * https://www.acmicpc.net/problem/2659 */ private var card = 0 private var answer = 0 private fun getClockNum(num: Int): I..

Kotlin 2022.12.16 0

Kotlin ์ฝ”ํ‹€๋ฆฐ ์ฝ”๋”ฉ ์ปจ๋ฒค์…˜

Kotlin https://developer.android.com/kotlin/style-guide?hl=ko Kotlin ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ | Android ๊ฐœ๋ฐœ์ž | Android Developers Kotlin ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ ์ปฌ๋ ‰์…˜์„ ์‚ฌ์šฉํ•ด ์ •๋ฆฌํ•˜๊ธฐ ๋‚ด ํ™˜๊ฒฝ์„ค์ •์„ ๊ธฐ์ค€์œผ๋กœ ์ฝ˜ํ…์ธ ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ถ„๋ฅ˜ํ•˜์„ธ์š”. ์ด ๋ฌธ์„œ์—์„œ๋Š” Kotlin ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ์†Œ์Šค ์ฝ”๋“œ์™€ ๊ด€๋ จ๋œ Google์˜ Android ์ฝ”๋”ฉ ํ‘œ์ค€์„ developer.android.com Kotlin in Android https://developer.android.com/kotlin/common-patterns?hl=ko Android์—์„œ ์ผ๋ฐ˜์ ์ธ Kotlin ํŒจํ„ด ์‚ฌ์šฉ | Android ๊ฐœ๋ฐœ์ž | Android Developers Androi..

Kotlin 2022.12.02 0

Kotlin ์ฝ”ํ‹€๋ฆฐ ๋ฐฑ์ค€ 2439 ๋ณ„ ์ฐ๊ธฐ - 2

์—ฌ๋Ÿฌ๋ถ„!(0๋ช…) ์ €๋Š” ์š”์ฆ˜ ์ฝ”ํ‹€๋ฆฐ์œผ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ‘ธ๋Š” ์—ฐ์Šต์„ ํ•˜๊ณ ์žˆ๋‹ต๋‹ˆ๋‹ค,, ํ•˜์ง€๋งŒ ์ž๋ฃŒ๊ฐ€ ๋งŽ์ด ์—†๋”๋ผ๊ตฌ์š” . . ( แต• ฬฏ แต•ฬฉฬฉ ) ๊ทธ๋ž˜์„œ Kotlin ์นดํ…Œ๊ณ ๋ฆฌ์— ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด๋ฅผ ์˜ฌ๋ ค๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค! ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ธฐ๋ณธ ์ค‘ ๊ธฐ๋ณธ์ธ ๋ณ„ ์ฐ๊ธฐ๋ถ€ํ„ฐ ๊ฐ€ ๋ณด ์ž ๊ณ  https://www.acmicpc.net/problem/2439 2439๋ฒˆ: ๋ณ„ ์ฐ๊ธฐ - 2 ์ฒซ์งธ ์ค„์—๋Š” ๋ณ„ 1๊ฐœ, ๋‘˜์งธ ์ค„์—๋Š” ๋ณ„ 2๊ฐœ, N๋ฒˆ์งธ ์ค„์—๋Š” ๋ณ„ N๊ฐœ๋ฅผ ์ฐ๋Š” ๋ฌธ์ œ ํ•˜์ง€๋งŒ, ์˜ค๋ฅธ์ชฝ์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•œ ๋ณ„(์˜ˆ์ œ ์ฐธ๊ณ )์„ ์ถœ๋ ฅํ•˜์‹œ์˜ค. www.acmicpc.net ์ž…๋ ฅ๊ฐ’ N์— ๋”ฐ๋ผ N - i ๋งŒํผ ๊ณต๋ฐฑ์„ ์ถœ๋ ฅํ•˜๊ณ , *๋ฅผ ์ถœ๋ ฅํ•˜๋ฉด ๋˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. private var N: Int = 0 private fun solution() { for (i ..

Kotlin 2022.11.17 1