๐Ÿ’ป ๊ฐœ๋ฐœ/iOS

    [TIL] 22.03.17

    ๊ณต๋ถ€ํ•œ ๊ฒƒ ์•ˆ๋“œ๋กœ์ด๋“œ ๊ฐ•์˜ ์ˆ˜๊ฐ• CameraX Glide Content Resolver ScaleGestureDetector ์•Œ๊ฒŒ๋œ ๊ฒƒ 1. AddTextChangedListener ๋Œ€๋ถ€๋ถ„์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๊ฒ€์ƒ‰์ฐฝ์— ๊ฒ€์ƒ‰์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ Enter ๋ฅผ ๋ˆ„๋ฅด๊ธฐ๋„ ์ „์— ์ž…๋ ฅํ•œ ๊ฒ€์ƒ‰์–ด์— ๋”ฐ๋ผ ์ž๋™์™„์„ฑ ๊ฒ€์ƒ‰์–ด๊ฐ€ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„  EditText ์˜ ํ…์ŠคํŠธ ๋ณ€ํ™”๋ฅผ ๊ฐ์ง€ํ•ด์•ผํ•˜๋Š”๋ฐ ์ด๋ฅผ AddTextChangedListener ๋ฅผ ํ†ตํ•ด ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค. private fun bindViews() = with(binding) { editTextView.addTextChangedListener { Log.d("Changed!", editTextView.text.toString()) ..

    [TIL] 22.03.16

    ๊ณต๋ถ€ํ•œ ๊ฒƒ ์•ˆ๋“œ๋กœ์ด๋“œ ๊ฐ•์˜ ์ˆ˜๊ฐ• Retrofit2, OkHttpLoggingInterceptor Shimmer Glide Content Resolver Unsplash API ์•Œ๊ฒŒ๋œ ๊ฒƒ 1. Glide ์˜ค๋Š˜ ๊ณต๋ถ€๋ฅผ ํ•˜๋ฉด์„œ Glide ๊ฐ€ ์ƒ๊ฐ๋ณด๋‹ค ์—„์ฒญ ๊ฐ•๋ ฅํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ผ๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜๋‹ค. Glide ๋ฅผ ์‚ฌ์šฉํ•œ์ง€๋Š” ๊ฝค ๋์ง€๋งŒ ์ด๋ฅผ ์ œ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€ ์•Š์•˜๋‹ค. ์šฐ์„  ๊ทธ๋™์•ˆ Glide ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์•„๋ž˜์ฒ˜๋Ÿผ ์จ์™”๋‹ค. ๊ทธ๋ƒฅ ๋‹จ์ˆœํžˆ ์ด๋ฏธ์ง€๋ทฐ์— ์ด๋ฏธ์ง€๋ฅผ ๋„ฃ์–ด์ฃผ๊ธฐ ์œ„ํ•œ ์šฉ๋„๋กœ... private fun bindViews() { Glide.with(binding.root) .load(profileImageUrl) .into(binding.profileImageView) } ํ•˜์ง€๋งŒ ์ •๋ง ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. ..

    [TIL] 22.03.15

    ๊ณต๋ถ€ํ•œ ๊ฒƒ ์•ˆ๋“œ๋กœ์ด๋“œ ๊ฐ•์˜ ์ˆ˜๊ฐ• ์•Œ๊ฒŒ๋œ ๊ฒƒ 1. OkHttpLogging Retrofit ์„ ์‚ฌ์šฉํ•ด์„œ API ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ํด๋ผ์ด์–ธํŠธ์˜ ๋ฌธ์ œ์ธ์ง€ ์„œ๋ฒ„์˜ ๋ฌธ์ œ์ธ์ง€๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด HTTP ์˜ ๋กœ๊ทธ๋ฅผ ๋ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ์ด ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด OkHttp ์˜ HttpLoggingInterceptor ์ด๋‹ค. // Retrofit Interface ๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค. private val openApiService : OpenApiService by lazy { Retrofit.Builder() .baseUrl(Url.OPEN_API_BASE_URL) .addConverter(GsonConverterFactory.create()) .client(buildOkHttpClient()) .build() .crea..

    [TIL] 22.03.14

    ๊ณต๋ถ€ํ•œ ๊ฒƒ ์•ˆ๋“œ๋กœ์ด๋“œ ๊ฐ•์˜ ์ˆ˜๊ฐ• ์นด์นด์˜คํ†ก, ๊ณต๊ณต๋ฐ์ดํ„ฐ API Retrofit, OkHttpLoggingInterceptor FusedLocationProvider Coroutine AppWidgetProvider Service Lifecycle ์•Œ๊ฒŒ๋œ ๊ฒƒ 1. FusedLocationProvider ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ์œ„์น˜ ์ •๋ณด๋ฅผ ๋ฐ›์•„์˜ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์—๋Š” LocationManager ์™€ FusedLocationProvider ๊ฐ€ ์žˆ๋‹ค. ์šฐ์„  LocationManager ์€ getLastKnownLocation ๋˜๋Š” LocationListener ๋ฅผ ํ†ตํ•ด์„œ ์œ„์น˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. // LocationManager ๋ฅผ ์ •์˜ํ•œ๋‹ค. val locationManager = getSystemService(LOCA..

    [TIL] 22.03.13

    ๊ณต๋ถ€ํ•œ ๊ฒƒ ์•ˆ๋“œ๋กœ์ด๋“œ ๊ฐ•์˜ ์ˆ˜๊ฐ• AppWidgetProvider ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 1๋ฌธ์ œ ์•Œ๊ฒŒ๋œ ๊ฒƒ ์•ˆ๋“œ๋กœ์ด๋“œ ์œ„์ ฏ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Manifest ์— Recevier ๋ฅผ ๋“ฑ๋กํ•˜๊ณ  ์ด ๋•Œ action ๊ณผ meta-data ๋ฅผ ๋„ฃ์–ด์ค€๋‹ค. meta-data : ์œ„์ ฏ ๋ ˆ์ด์•„์›ƒ์˜ ํฌ๊ธฐ, ์ดˆ๊ธฐ ๋ ˆ์ด์•„์›ƒ ๋ฆฌ์†Œ์Šค, ์—…๋ฐ์ดํŠธ ๋นˆ๋„ ๋“ฑ ์•ฑ ์œ„์ ฏ์˜ ๊ธฐ๋ณธ์ ์ธ ํŠน์„ฑ์„ ์ •์˜ํ•œ๋‹ค. minWidth, minHeight : ์œ„์ ฏ์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ตœ์†Œ ํฌ๊ธฐ์ด๋‹ค. updatePeriodMillis : onUpdate ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์œ„์ ฏ์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋นˆ๋„๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค. ์—…๋ฐ์ดํŠธ ์‹œ์— ๋””๋ฐ”์ด์Šค ๋Œ€๊ธฐ๋ชจ๋“œ๊ฐ€ ํ•ด์ œ๋˜๋ฏ€๋กœ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ๋Š” ์ตœ์†Œ 30๋ถ„, ์ด๋ณด๋‹ค ์งง์€ ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ์„ ๊ธˆํ•œ๋‹ค. previewImage : ์•ฑ ์œ„์ ฏ..

    [TIL] 22.03.10

    ๊ณต๋ถ€ํ•œ ๊ฒƒ ์•ˆ๋“œ๋กœ์ด๋“œ ๊ฐ•์˜ ์ˆ˜๊ฐ• ๊นƒํ—ˆ๋ธŒ API Retrofit2 Room SharedPreference ์•Œ๊ฒŒ๋œ ๊ฒƒ ์•”์‹œ์  ์ธํ…ํŠธ ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ action ๊ณผ category ๋Š” ํ•„์ˆ˜ ์š”์†Œ์ด๋‹ค. ์™ธ๋ถ€ ์Šคํ‚ด ์„ ์ด์šฉํ•˜์—ฌ ํŠน์ • Url ์ผ ๋•Œ ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ€ ํ˜ธ์ถœ๋˜๋„๋ก ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์™ธ๋ถ€ ์•ฑ์„ ์‹คํ–‰ํ•˜๊ณ  ๋‹ค์‹œ ์•กํ‹ฐ๋น„ํ‹ฐ๋กœ ๋Œ์•„์˜จ ๊ฒฝ์šฐ onCreate ๊ฐ€ ์•„๋‹Œ OnNewIntent ๊ฐ€ ํ˜ธ์ถœ๋œ๋‹ค. Room ์„ ์‚ฌ์šฉํ•  ๋•Œ Entity ์—์„œ Primary Key ๋Š” Null ์ด ๋  ์ˆ˜ ์—†๋‹ค. (๋‹น์—ฐ) PreferenceManager ๋ฅผ ํ†ตํ•ด ๊ธฐ๊ธฐ ๋‚ด๋ถ€์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ณต๋ถ€ํ•  ๊ฒƒ ์ฝ”๋ฃจํ‹ด ์— ๋Œ€ํ•ด ์•„์ง ๋ฏธ์ˆ™ํ•˜๋‹ค. ๊ณต์‹ ๋ฌธ์„œ์™€ ๋ฏธ๋””์—„ ๋ธ”๋กœ๊ทธ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ๊ณต๋ถ€ํ•˜์ž. ๋Š๋‚€ ์  ๋ฐฐ์šธ๊ฒŒ ๋„ˆ๋ฌด ๋งŽ๋‹ค. ์—ด์‹ฌํžˆ ์‚ด์•„์•ผ๊ฒ ๋‹ค.