๐Ÿ’ป ๊ฐœ๋ฐœ

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

[Flutter] ModalBottomSheet๊ฐ€ ํ‚ค๋ณด๋“œ์— ์˜ํ•ด ๊ฐ€๋ ค์ง€๋Š” ํ˜„์ƒ

๋ธ”๋กœ๊ทธ ๋‚ด์˜ ๊ฒŒ์‹œ๋ฌผ์€ PC ๋ฒ„์ „์— ์ตœ์ ํ™” ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ModalBttomSheet๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ๋ฐœ์ƒํ–ˆ๋˜ ๋ฌธ์ œ์— ๋Œ€ํ•ด ์ ์–ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ModalBottomSheet์— TextField๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‚ค๋ณด๋“œ๋กœ ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ๋ฐ›์œผ๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ModalBottomSheet๊ฐ€ ํŒ์—…๋œ ํ‚ค๋ณด๋“œ์˜ ๋†’์ด๋งŒํผ ์˜ฌ๋ผ๊ฐ€์ง€ ์•Š์•„์„œ ModalBottomSheet๊ฐ€ ํ‚ค๋ณด๋“œ์— ๊ฐ€๋ ค์ง€๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์€ ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค. ํ‚ค๋ณด๋“œ๊ฐ€ ํŒ์—…๋˜๋ฉด์„œ ModalBottomSheet๋ฅผ ๊ฐ€๋ ค ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ํ…์ŠคํŠธ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์—†๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ModalBottomSheet๊ฐ€ ํ‚ค๋ณด๋“œ์— ์˜ํ•ด ๊ฐ€๋ ค์ง€๋Š” ํ˜„์ƒ ์šฐ์„  ModalBottomSheet์˜ ์†์„ฑ์— ๋Œ€ํ•ด ๋ถ„์„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋˜ ์ค‘ isScrollContro..

๐Ÿ’ป ๊ฐœ๋ฐœ/์˜ค๋Š˜์˜ ์‚ฝ์งˆ

[Android / Gradle] The current Gradle version is not compatible with the Kotlin Gradle plugin

์˜ค๋Š˜ ์ˆ˜๋„๊ถŒ์— ๋น„๊ฐ€ ์—„์ฒญ ๋‚ด๋ ค์„œ ์žฌํƒ์„ ํ•˜๊ฒŒ ๋๋‹ค. ์‚ฌ๋‚ด ๊นƒ๊ณผ ์—ฐ๋™์ด ๋˜์–ด ์žˆ์ง€ ์•Š์•„์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑํ•ด์„œ ๋นŒ๋“œ๋ฅผ ํ•˜๋Š”๋ฐ ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. Gradle ๋ฒ„์ ผ๊ณผ Kotlin Gradle Plugin ๋ฒ„์ ผ์ด ๋งž์ง€ ์•Š์•„ ์ƒ๊ธฐ๋Š” ์˜ค๋ฅ˜์˜€๋‹ค. ์นœ์ ˆํ•˜๊ฒŒ๋„ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์ค€๋‹ค. android/gradle/wrapper/gradle-wrapper.properties๋ฅผ ์ˆ˜์ •ํ•˜๋ฉด ๋œ๋‹ค. ์•Œ๋ ค์ค€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•๋Œ€๋กœ ๋ฒ„์ ผ์„ 6.7.0์—์„œ 6.7.1๋กœ ๋ณ€๊ฒฝํ–ˆ๋Š”๋ฐ ์ •์ƒ์ ์œผ๋กœ ๋นŒ๋“œ๊ฐ€ ๋๋‹ค. Gradle ๋ฒ„์ ผ์€ ์•„๋ž˜ ๋งํฌ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. Gradle Distributions services.gradle.org

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

[Flutter / Dart] What is Equatable?

๋ธ”๋กœ๊ทธ ๋‚ด์˜ ๊ฒŒ์‹œ๋ฌผ์€ PC ๋ฒ„์ „์— ์ตœ์ ํ™” ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ Equatable์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. BLoC์— ๋Œ€ํ•œ ๊ธ€์„ ์“ฐ๊ธฐ ์ „์— BLoC์—์„œ ์‚ฌ์šฉํ•˜๋Š” Equatable์— ๋Œ€ํ•œ ์ •๋ฆฌ๊ฐ€ ์šฐ์„ ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ๋ณธ๋ก ์œผ๋กœ ๋“ค์–ด๊ฐ€๋ณด์ฃ ! ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ๋จผ์ € ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. class Person { final int pid; final String name; final int age; Person(this.pid, this.name, this.age); } void main() { Person p1 = new Person(20221234, "kodo", 25); Person p2 = new Person(20221234, "kodo", 25); (p1 == p2) ? print("same") : ..

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

[Flutter] BLoC ํŒจํ„ด์œผ๋กœ ์ž๋™ ๋กœ๊ทธ์ธ, Splash Screen ๊ตฌํ˜„ํ•˜๊ธฐ - 1

๋ธ”๋กœ๊ทธ ๋‚ด์˜ ๊ฒŒ์‹œ๋ฌผ์€ PC ๋ฒ„์ „์— ์ตœ์ ํ™” ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ํ”Œ๋Ÿฌํ„ฐ์—์„œ ์ž๋™ ๋กœ๊ทธ์ธ์™€ Splash Screen์„ ๊ตฌํ˜„ํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ž๋™ ๋กœ๊ทธ์ธ์€ ์•ฑ ๊ฐœ๋ฐœ์„ ์ ‘ํ•ด๋ดค๋‹ค๋ฉด ํ•œ ๋ฒˆ์ฏค์€ ๊ตฌํ˜„ํ•ด๋ดค์„ ๊ธฐ๋Šฅ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. SharedPreference๋ฅผ ํ™œ์šฉํ•ด์„œ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ์˜ค๋Š˜์€ ์กฐ๊ธˆ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์ ‘๊ทผํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ BLoC๋ฅผ ํ†ตํ•ด์„œ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ์š”, BLoC๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž๋™ ๋กœ๊ทธ์ธ๊ณผ Splash Screen์„ ํ•˜๋‚˜์˜ ๋กœ์ง์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•œ๋ฒˆ ์‹œ์ž‘ํ•ด๋ณด์ฃ . ๋ฐ”๋กœ BLoC๋กœ ๊ตฌํ˜„ํ•˜์ง€ ์•Š๊ณ  ๊ธฐ์กด์˜ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•˜๊ณ  BLoC๋กœ ๋ฆฌํŽ™ํ† ๋งํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์™€ ์ด ๋ฌธ์ œ๋ฅผ ์–ด๋–ค ์‹์œผ๋กœ ํ•ด๊ฒฐํ•˜๋Š”์ง€๊ฐ€ ์ค‘์š”ํ•˜๋‹ˆ๊นŒ์š”. ์ž๋™ ๋กœ๊ทธ์ธ ์•ž์„œ ๋ง์”€๋“œ๋ฆฐ ๊ฒƒ์ฒ˜๋Ÿผ SharedPrefer..

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

[Flutter / Dart] What is Singleton?

๋ธ”๋กœ๊ทธ ๋‚ด์˜ ๊ฒŒ์‹œ๋ฌผ์€ PC ๋ฒ„์ „์— ์ตœ์ ํ™” ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ •๋ง ์˜ค๋žœ๋งŒ์— ๊ธ€ ์“ฐ๋Š” ๊ฑฐ ๊ฐ™๋„ค์š”. ๋ฏธ๊ตญ์—์„œ ๋Œ์•„์™€์„œ ์ผ๊ธฐ ์“ด ๊ฒŒ ๋งˆ์ง€๋ง‰์ธ๋ฐ ์ฃผ๊ธฐ์ ์œผ๋กœ ์“ฐ๋ ค๊ณ  ํ–ˆ์—ˆ๋Š”๋ฐ 1ํ•™๊ธฐ์— ํ”„๋กœ์ ํŠธ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•„์„œ ๋ฐ”๋นด์Šต๋‹ˆ๋‹ค. ๊ธ€ ์“ฐ๊ณ  ์žˆ๋Š” ์ง€๊ธˆ์€ ์—”์”จ์†Œํ”„ํŠธ์—์„œ 7์ฃผ์งœ๋ฆฌ ์ฑ„์šฉ์—ฐ๊ณ„ํ˜• ์ธํ„ด์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ธํ„ด์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ํ”Œ๋Ÿฌํ„ฐ๋กœ ๊ฐœ๋ฐœ์„ ํ•˜๊ณ  ์žˆ๋Š”๋ฐ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ์•Œ๊ฒŒ๋œ ๊ฒƒ๋“ค, ์ •๋ฆฌํ•˜๋ฉด ์ข‹์€ ๊ฒƒ๋“ค์„ ์ ์–ด๋‘๊ณ  ์‹ถ์–ด์„œ ์˜ค๋Š˜๋ถ€ํ„ฐ ์ฃผ๊ธฐ์ ์œผ๋กœ ํฌ์ŠคํŒ…์„ ํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. (1ํ•™๊ธฐ ํšŒ๊ณ ๋ก์„ ์ž‘์„ฑํ•˜๊ณ  ์žˆ๋Š”๋ฐ ์•„์ง ์ž‘์„ฑ์ด ์•ˆ๋ผ์„œ ๋น„๊ณต๊ฐœ๋กœ ํ•ด๋†จ์Šต๋‹ˆ๋‹ค...) ์‹ฑ๊ธ€ํ†ค ์‹ฑ๊ธ€ํ†ค, ์ „๊ณต์ž๋ผ๋ฉด ๋‹ค๋“ค ๋งŽ์ด ๋“ค์–ด๋ดค์„ ๋‹จ์–ด์ผ ๊ฒ๋‹ˆ๋‹ค. ๋ง ๊ทธ๋Œ€๋กœ ์‹ฑ๊ธ€, ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋งŒ ์กด์žฌํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค๋ฅผ ํ•˜๋‚˜๋งŒ ๊ฐ€์ง€๊ธฐ ์œ„ํ•ด์„œ๋Š” ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ์š”? ๋จธ๋ฆฌ ์†์— ๋– ..

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

[Android] ์•Œ๋ฆผ ํด๋ฆญ์‹œ Activity, Fragment๋กœ ์ด๋™

๊ตฌํ˜„ ๋ฌธ์ œ ์•Œ๋ฆผ ํด๋ฆญํ•˜๋ฉด ํŠน์ • ํ™”๋ฉด์„ ๋„์–ด์ค˜์•ผ ํ•˜๋Š” ๋ฌธ์ œ์˜€๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• PendingIntent ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. Notification ์†์„ฑ์— Intent ์†์„ฑ์„ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด ๋•Œ PendingIntent ๋ฅผ ๋„˜๊ฒจ์ค€๋‹ค. ๋˜ํ•œ PendingIntent ๊ฐ์ฒด์— putExtra ๋กœ ํ™”๋ฉด ์ด๋™์œผ๋กœ ๋„์–ด์ค„ Fragment ์˜ ์‹๋ณ„์ž๋ฅผ ๋„˜๊ฒจ์ค€๋‹ค. ์ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ MainActivity ๊ฐ€ onCreate ๋์„ ๋•Œ getStringExtra ๋กœ Fragment ์˜ ์‹๋ณ„์ž๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ํ•ด๋‹น Fragment ๋กœ ์ „ํ™˜ํ•œ๋‹ค. ์ฝ”๋“œ - ReceiverService ์šฐ์„  ์ง€๋‚œ๋ฒˆ์— ๊ตฌํ˜„ํ–ˆ๋˜ ์ด๋ฒคํŠธ ์ˆ˜์‹  ์•Œ๋ฆผ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์™”๋‹ค. // ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹ ํ–ˆ์„ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž์—๊ฒŒ ์•Œ๋ฆผ ์ „์†ก private fun occurEven..

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

[Android] ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์†Œ์ผ“ ํ†ต์‹ ์œผ๋กœ ์ด๋ฒคํŠธ ์ˆ˜์‹  ํ›„ ์•Œ๋ฆผ

๊ตฌํ˜„ ๋ฌธ์ œ ์กธ์—…ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์„œ๋ฒ„์—์„œ ํŠน์ •ํ•œ ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹ ํ•˜๋ฉด ์ด๋ฒคํŠธ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ์„œ๋กœ ๋‹ค๋ฅธ 2๊ฐœ์˜ ์•Œ๋ฆผ์„ ๋„์–ด์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด์•ผ ํ–ˆ๋‹ค. ์†Œ์ผ“ ํ†ต์‹ ์œผ๋กœ ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹ ํ•˜๋Š”๋ฐ Activity ์ด๋™์ด๋‚˜ Fragment ์ด๋™์— ๊ด€๊ณ„ ์—†์ด ์„œ๋ฒ„์™€ ์—ฐ๊ฒฐ ๊ฐ€๋Šฅํ•œ ์†Œ์ผ“ ํ†ต์‹ ์ด ํ•„์š”ํ–ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• MVVM๊ณผ ๋‹จ์ผ Activity๋ฅผ ์‚ฌ์šฉํ–ˆ๊ธฐ์— Activity๋Š” MainActivity ํ•œ ๊ฐœ ๋ฟ์ด์—ˆ๊ณ  MainActivity ์—์„œ ์†Œ์ผ“ ํ†ต์‹ ์„ ๊ตฌํ˜„ํ•˜๋ฉด ๋˜๋Š” ๋ฌธ์ œ์˜€๋‹ค. ํ•˜์ง€๋งŒ ์•ฑ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ƒํ™ฉ์—์„œ๋„ ์•Œ๋ฆผ์„ ์ˆ˜์‹ ํ•ด์•ผ ํ•  ํ•„์š”๊ฐ€ ์žˆ์—ˆ๊ณ  ์ด๋ฅผ ์œ„ํ•ด Service๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. ๋ฌผ๋ก  MainActivity ์•ˆ์— ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์†Œ์ผ“ ํ†ต์‹ ์ด MainActivity ์ž์ฒด์— ์ข…์†๋˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜๊ธฐ์— ..

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

[TIL] 22.06.03

iOS ์—์„œ ํ™”๋ฉด ์ด๋™์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” 4๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ViewController ์—์„œ ํ™”๋ฉด ์ „ํ™˜ ViewController ๊ฐ€ ๋‹ค๋ฅธ ViewController ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ํ™”๋ฉด ์ „ํ™˜ NavigationViewController ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™”๋ฉด ์ „ํ™˜ ํ™”๋ฉด ์ „ํ™˜์šฉ ๊ฐ์ฒด Segue ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™”๋ฉด ์ „ํ™˜ 1. ViewController ์—์„œ ํ™”๋ฉด ์ „ํ™˜ ViewController ์œ„์˜ View ๋ฅผ ๋‹ค๋ฅธ View ๋กœ ๊ต์ฒดํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋กœ ์ธํ•ด ์‚ฌ์šฉ์„ ์ง€์–‘ํ•œ๋‹ค. ํŠน์ •ํ•œ ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉํ•œ๋‹ค. ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ๋Š” View ์˜ Visibility ์†์„ฑ์„ ์ด์šฉํ•˜์—ฌ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ์‹์„ ์ž์ฃผ ์‚ฌ์šฉํ–ˆ์—ˆ๋Š”๋ฐ iOS ์—์„œ๋Š” ์ง€์–‘ํ•œ๋‹ค๊ณ  ํ•˜๋‹ˆ ์ข€ ์‹ ๊ธฐํ–ˆ๋‹ค. ์ด ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„  ์ข€ ๋” ์ฐพ์•„๋ณด๊ณ  ์ •๋ฆฌํ•ด๋ด์•ผ๊ฒ ๋‹ค. 2. ViewContr..

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

[TIL] 22.05.27

๊ณต๋ถ€ํ•œ ๊ฒƒ Swift ๋ฌธ๋ฒ• ์•Œ๊ฒŒ๋œ ๊ฒƒ 1. Guard Guard ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์กฐ๊ฑด์— false์ธ ๊ฒฝ์šฐ์—๋Š” else ๊ตฌ๋ฌธ์ด ์‹คํ–‰๋˜์–ด ์ดํ›„์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•œ๋‹ค. continue ์™€ ๋น„์Šทํ•˜๋‹ค. import Foundation func guardTest(value : Int?) { guard let value = value else {return} print(value) } guardTest(value : 2) guardTest(value : nil) // ์•„๋ฌด๊ฒƒ๋„ ์ถœ๋ ฅ๋˜์ง€ ์•Š์Œ ์กฐ๊ฑด๋ฌธ๊ณผ ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ Guard ๋Š” else ๋ฅผ ๊ฐ•์ œํ•œ๋‹ค. // ์ผ๋ฐ˜์ ์ธ ์กฐ๊ฑด๋ฌธ if ์กฐ๊ฑด == true { // ์ฐธ์ธ ๊ฒฝ์šฐ์— ์‹คํ–‰ํ•  ์ฝ”๋“œ } else { // ๊ฑฐ์ง“์ธ ๊ฒฝ์šฐ์— ์‹คํ–‰ํ•  ์ฝ”๋“œ } // G..

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

[TIL] 22.05.26

๊ณต๋ถ€ํ•œ ๊ฒƒ Swift ๋ฌธ๋ฒ• ์•Œ๊ฒŒ๋œ ๊ฒƒ 1. ํด๋ž˜์Šค์™€ ๊ตฌ์กฐ์ฒด์˜ ์ฐจ์ด 1. ๊ณตํ†ต์  ๊ฐ’์„ ์ €์žฅํ•  ํ”„๋กœํผํ‹ฐ๋ฅผ ์„ ์–ธํ•  ์ˆ˜ ์žˆ์Œ ํ•จ์ˆ˜์  ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์„ ์–ธํ•  ์ˆ˜ ์žˆ์Œ ๋‚ด๋ถ€ ๊ฐ’์„ .๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Œ ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•ด ์ดˆ๊ธฐ ์ƒํƒœ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Œ Extension ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Œ Protocol ์„ ์ฑ„ํƒํ•˜์—ฌ ๊ธฐ๋Šฅ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Œ 2. ์ฐจ์ด์  - ํด๋ž˜์Šค ์ฐธ์กฐ ํƒ€์ž… ARC ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌ ์ƒ์† ๊ฐ€๋Šฅ ํƒ€์ž… ์บ์ŠคํŒ… ์„ ํ†ตํ•ด ๋Ÿฐํƒ€์ž„์—์„œ ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค์˜ ํƒ€์ž…์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ deinit ์„ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์„ ํ•ด์ œํ•  ์ˆ˜ ์žˆ์Œ ๊ฐ™์€ ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•œ ๋’ค์— ๊ฐ’์„ ๋ณ€๊ฒฝ์‹œํ‚ค๋ฉด ๋ชจ๋“  ๋ณ€์ˆ˜์— ์˜ํ–ฅ์„ ์คŒ (๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ณต์‚ฌ) - ๊ตฌ์กฐ์ฒด ๊ฐ’ ํƒ€์ž… ๊ฐ™์€ ๊ตฌ์กฐ์ฒด๋ฅผ ..

kodo_o
'๐Ÿ’ป ๊ฐœ๋ฐœ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (3 Page)