λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

Study

(66)
[μ•ˆλ“œλ‘œμ΄λ“œ μ½”ν‹€λ¦°] 7. μœ„μ ― - ν…μŠ€νŠΈλ·°/μ—λ””νŠΈν…μŠ€νŠΈ,λ²„νŠΌ/μ»΄νŒŒμš΄λ“œλ²„νŠΌ/μ΄λ―Έμ§€λ²„νŠΌ λ“€μ–΄κ°€κΈ° μ „.. [μ°Έκ³ ] XML μ—˜λ¦¬λ¨ΌνŠΈ - root elementλŠ” ν•˜λ‚˜ μ΄μƒμ˜ child elementλ₯Ό 가짐 - 각 child element도 ν•˜λ‚˜ μ΄μƒμ˜ subchild elementλ₯Ό κ°€μ§ˆ 수 있음 데이터 - 데이터가 μ—†λŠ” μ—˜λ¦¬λ¨ΌνŠΈλŠ” empty element라고 ν•˜λ©°, λ˜λŠ” 둜 ν‘œν˜„ν•¨ - μ—˜λ¦¬λ¨ΌνŠΈλŠ” μ—¬λŸ¬ 개의 속성을 지정할 수 있으며 각 속성은 속성λͺ…κ³Ό μ†μ„±κ°’μœΌλ‘œ ν‘œν˜„ 주석문 - xmlλ¬Έμ„œμ˜ 주석문은 λ‹€μŒκ³Ό 같이 μ²˜λ¦¬ν•¨ μœ„μ ― ν…μŠ€νŠΈλ·° - View 클래슀 λ°”λ‘œ λ‹€μŒμ— μœ„μΉ˜ν•˜λ©° λ‹€μ–‘ν•œ μœ„μ ―μ΄ κ·Έ ν•˜μœ„μ— μ‘΄μž¬ν•¨ text 속성 - ν…μŠ€νŠΈλ·°μ— λ‚˜νƒ€λ‚˜λŠ” λ¬Έμžμ—΄μ„ ν‘œν˜„ - “λ¬Έμžμ—΄” ν˜•μ‹μœΌλ‘œ 값을 직접 μž…λ ₯ν•˜κ±°λ‚˜ “@string/λ³€μˆ˜λͺ…” ν˜•μ‹μœΌλ‘œ μ§€μ •ν•œ ν›„ strings.xml νŒŒμΌμ— 지정할 수 있음 tex..
[μ•ˆλ“œλ‘œμ΄λ“œ μ½”ν‹€λ¦°] 6. λ ˆμ΄μ•„μ›ƒ(3) - κ·Έλ¦¬λ“œ λ ˆμ΄μ•„μ›ƒ/컨슀트레인트 λ ˆμ΄μ•„μ›ƒ(체이닝, κ°€μ΄λ“œλΌμΈ)/+ μ•ˆλ“œλ‘œμ΄λ“œ μŠ€νŠœλ””μ˜€ ν™œμš©ν•˜κΈ°(μžλ™μ €μž₯, μ½”λ“œμžλ™μ™„μ„±, 디버깅) λ ˆμ΄μ•„μ›ƒ κ·Έλ¦¬λ“œ λ ˆμ΄μ•„μ›ƒ(GridLayout) - 격자(grid) λ‚΄λΆ€μ˜ 셀에 μžμ‹ λ·°λ₯Ό λ°°μΉ˜ν•˜λŠ” λ·° κ·Έλ£Ή - ν…Œμ΄λΈ” λ ˆμ΄μ•„μ›ƒκ³Ό λΉ„μŠ·ν•˜μ§€λ§Œ, 각각의 μžμ‹ λ·°κ°€ μžμ‹ μ˜ μœ„μΉ˜μ™€ μ°¨μ§€ν•˜λŠ” μ…€μ˜ 개수λ₯Ό λ…λ¦½μ μœΌλ‘œ 지정 κ°€λŠ₯ μžμ²΄μ— 자주 μ‚¬μš©λ˜λŠ” 속성 - rowCount: ν–‰μ˜ 수 - columnCount: μ—΄μ˜ 수 - orientation: κ·Έλ¦¬λ“œλ₯Ό μˆ˜ν‰ λ°©ν–₯으둜 μš°μ„ ν•  것인지, 수직 λ°©ν–₯으둜 μš°μ„ ν•  것인지λ₯Ό κ²°μ • κ·Έλ¦¬λ“œ λ ˆμ΄μ•„μ›ƒ μ•ˆμ— ν¬ν•¨λœ μœ„μ ―μ— μ„€μ •ν•˜λŠ” 속성 - layout_row: μžμ‹ μ΄ μœ„μΉ˜ν•  ν–‰ 번호(0λ²ˆλΆ€ν„° μ‹œμž‘) - layout_column: μžμ‹ μ΄ μœ„μΉ˜ν•  μ—΄ 번호(0λ²ˆλΆ€ν„° μ‹œμž‘) - layout_rowSpan: 행을 μ§€μ •λœ 수만큼 ν™•μž₯함 - layout_columnSpan: 열을 μ§€μ •λœ 수만큼 ..
[μ•ˆλ“œλ‘œμ΄λ“œ μ½”ν‹€λ¦°] 5. λ ˆμ΄μ•„μ›ƒ(2) - λ¦¬λ‹ˆμ–΄ λ ˆμ΄μ•„μ›ƒ/λ λŸ¬ν‹°λΈŒ λ ˆμ΄μ•„μ›ƒ/ν…Œμ΄λΈ” λ ˆμ΄μ•„μ›ƒ λ ˆμ΄μ•„μ›ƒ 배치λ₯Ό λ‹΄λ‹Ήν•˜λŠ” λ ˆμ΄μ•„μ›ƒ - λ ˆμ΄μ•„μ›ƒ μ•ˆμ— μ‘΄μž¬ν•˜λŠ” μœ„μ ―μ„ λ°°μΉ˜ν•˜κ²Œ ν•΄μ€Œ - ν”„λ‘œμ νŠΈλ₯Ό 처음 μƒμ„±ν•˜λ©΄ 화면을 ꡬ성할 수 μžˆλŠ” activity_mainμ΄λΌλŠ” μ΄λ¦„μ˜ λ ˆμ΄μ•„μ›ƒ 파일이 μžλ™μœΌλ‘œ λ§Œλ“€μ–΄μ§ - λ ˆμ΄μ•„μ›ƒ νŒŒμΌμ€ μ†ŒμŠ€ μ½”λ“œκ°€ μ•„λ‹Œ λ¦¬μ†ŒμŠ€λ‘œ λΆ„λ₯˜λ¨ - 파일λͺ…은 λͺ¨λ‘ μ†Œλ¬Έμžλ‘œ μž‘μ„±λ¨ - 파일 이름 끝에 파일의 νƒ€μž…μΈ XML을 λΆ™μ—¬μ„œ activity_main.xml이 됨 자주 μ‚¬μš©λ˜λŠ” λ ˆμ΄μ•„μ›ƒ 1) λ¦¬λ‹ˆμ–΄ λ ˆμ΄μ•„μ›ƒ(μ„ ν˜•, LinearLayout) 2) λ λŸ¬ν‹°λΈŒ λ ˆμ΄μ•„μ›ƒ(μƒλŒ€, RelativeLayout) 3) ν…Œμ΄λΈ” λ ˆμ΄μ•„μ›ƒ(TableLayout) 4) κ·Έλ¦¬λ“œ λ ˆμ΄μ•„μ›ƒ(GridLayout) 5) ν”„λ ˆμž„ λ ˆμ΄μ•„μ›ƒ(FrameLayout) 6) 컨슀트레인트 λ ˆμ΄μ•„μ›ƒ(μ œμ•½, ConstraintLayout..
[μ•ˆλ“œλ‘œμ΄λ“œ μ½”ν‹€λ¦°] 4. λ ˆμ΄μ•„μ›ƒ(1) - λ·° λ ˆμ΄μ•„μ›ƒ λ·°(View) - View 클래슀의 μ„œλΈŒν΄λž˜μŠ€λ‘œ λ§Œλ“  객체λ₯Ό λœ»ν•¨ - μ•‘ν‹°λΉ„ν‹° 화면은 ν•œ 개 μ΄μƒμ˜ 뷰둜 ꡬ성 - 크게 두 μ’…λ₯˜μœΌλ‘œ λ‚˜λˆ” (λ ˆμ΄μ•„μ›ƒ, μœ„μ ―) μœ„μ ―(Widget) - λ²„νŠΌ, λΌλ””μ˜€λ²„νŠΌ, 이미지 λ“± ν™”λ©΄μ—μ„œ μ‚¬μš©λ˜λŠ” 것 - View λ˜λŠ” ViewGroup의 μ„œλΈŒν΄λž˜μŠ€λ‘œμ„œ λ‹¨λ…μœΌλ‘œ μ‚¬μš© μ½”ν‹€λ¦°μ˜ μ΅œμƒμ˜ 클래슀: Any (Java의 Object와 μœ μ‚¬) λ ˆμ΄μ•„μ›ƒ(Layout) - λ‹€λ₯Έ μœ„μ ―μ„ λ‹΄μ•„ λ°°μΉ˜ν•˜λŠ” ν‹€ - μ—¬λŸ¬ 개의 λ·°λ₯Ό κ·œμΉ™λŒ€λ‘œ 화면에 배치 - ViewGroup의 μ„œλΈŒν΄λž˜μŠ€ View 클래슀 계측도 View 클래슀의 XML 속성 λ²„νŠΌμ˜ XML 속성 - λ²„νŠΌμ˜ XML 속성이 거의 μ—†μŒ - λŒ€κ°œ μƒμœ„ 클래슀인 TextViewλ‚˜ Viewμ—μ„œ μƒμ†λ°›μŒ - https://developer..
[μ•ˆλ“œλ‘œμ΄λ“œ μ½”ν‹€λ¦°] 3. κΈ°λ³Έ 문법(2) - ν•¨μˆ˜/λ©”μ†Œλ“œ, μ „μ—­λ³€μˆ˜, μ§€μ—­λ³€μˆ˜/클래슀, μΈμŠ€ν„΄μŠ€/좔가적인 문법 κΈ°λ³Έ 문법 ν•¨μˆ˜ fun ν•¨μˆ˜ 이름([λ³€μˆ˜ 이름: μžλ£Œν˜•, λ³€μˆ˜ 이름: μžλ£Œν˜•..]): [λ°˜ν™˜ κ°’ μžλ£Œν˜•]{// fun: ν•¨μˆ˜ μ˜ˆμ•½μ–΄ ν‘œν˜„μ‹... [return λ°˜ν™˜κ°’] } // ex fun sum(a: Int, b: Int): Int{ var sum = a + b return sum } 1. 코틀린은 닀쀑 νŒ¨λŸ¬λ‹€μž„ μ–Έμ–΄ - ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°(FP: Funtional Programming) - 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°(OOP: Object-Oriented Programming) 2. ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ° - μ½”λ“œ κ°„λž΅, ν…ŒμŠ€νŠΈλ‚˜ μž¬μ‚¬μš©μ„± 증가 - 순수 ν•¨μˆ˜, λžŒλ‹€μ‹, κ³ μ°¨ ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•΄ ꡬ성 → ex) main(), sum(), max() ν•¨μˆ˜ 3. 일반적 μ„ μ–Έ fun sum(a: Int, b: Int): Int..
[μ•ˆλ“œλ‘œμ΄λ“œ μ½”ν‹€λ¦°] 2. κΈ°λ³Έ 문법(1) - λ³€μˆ˜/쑰건문/λ°°μ—΄/반볡문 Kotlin κΈ°λ³Έ 문법 - 코틀린은 객체지ν–₯ μ–Έμ–΄ λ³€μˆ˜ 1. λ³€μˆ˜ νƒ€μž… μ„ μ–Έ μ‹œ λŒ€λ¬Έμžλ‘œ μ‹œμž‘ ex) Int, String 2. λ³€μˆ˜ μ„ μ–Έ 방식 1) μ•”μ‹œμ  μ„ μ–Έ: λ³€μˆ˜μ˜ 데이터 ν˜•μ‹μ„ μ§€μ •ν•˜μ§€ μ•Šκ³ , λŒ€μž…λ˜λŠ” 값에 따라 μžλ™μœΌλ‘œ λ³€μˆ˜μ˜ 데이터 ν˜•μ‹μ΄ 지정 (단, μ΄ˆκΈ°ν™”ν•˜μ§€ μ•ŠλŠ” 경우, 데이터 ν˜•μ‹μ„ λ°˜λ“œμ‹œ λͺ…μ‹œν•΄μ•Ό 함) fun main(){ var var1 : Int = 10 var var2 : Float = 10.1f var var3 : Double = 10.2 var var4 : Char = 'μ•ˆ' var var5 : String = "μ•ˆλ“œλ‘œμ΄λ“œ" } // μ•”μ‹œμ  μ„ μ–ΈμœΌλ‘œ μž‘μ„± μ‹œ fun main(){ var var1 = 10 var var2 = 10.1f var var3 = 10.2 var var..
[μ•ˆλ“œλ‘œμ΄λ“œ μ½”ν‹€λ¦°] 1. μ„€μΉ˜ 및 κΈ°λ³Έ μ‹€ν–‰ μ•ˆλ“œλ‘œμ΄λ“œ μŠ€νŠœλ””μ˜€ μ„€μΉ˜ 및 μ„€μ • 1. μ•ˆλ“œλ‘œμ΄λ“œ μŠ€νŠœλ””μ˜€ μ„€μΉ˜ https://developer.android.com/studio Download Android Studio & App Tools - Android Developers Android Studio provides app builders with an integrated development environment (IDE) optimized for Android apps. Download Android Studio today. developer.android.com β€» λ‚΄κ°€ ν˜„μž¬(2023.6.26) μ“°λŠ” Flamingo버전: android-studio-2022.2.1.20- windows.exe 2. μ•ˆλ“œλ‘œμ΄λ“œ SDK μ„€μΉ˜ 3. μ•ˆλ“œλ‘œμ΄λ“œ 슀튜..
[λͺ¨λ˜μžλ°”μŠ€ν¬λ¦½νŠΈ]06 μ΄λ²€νŠΈμ™€ 이벀트 처리기 06-1. 이벀트 μ•Œμ•„λ³΄κΈ° μ΄λ²€νŠΈλž€ 이벀트: μ›Ή λΈŒλΌμš°μ €λ‚˜ μ‚¬μš©μžκ°€ μ‹€ν–‰ν•˜λŠ” μ–΄λ–€ λ™μž‘ ex) μ›Ή λ¬Έμ„œμ—μ„œ ν‚€λ³΄λ“œμ˜ ν‚€λ₯Ό λˆ„λ₯΄λŠ” 것, μ›Ή λΈŒλΌμš°μ € 창에 μ›Ή νŽ˜μ΄μ§€λ₯Ό λΆˆλŸ¬μ˜€λŠ” 것 μ΄λ²€νŠΈλŠ” μ›Ή λ¬Έμ„œ μ˜μ—­μ—μ„œ μ΄λ£¨μ–΄μ§€λŠ” λ™μž‘λ§Œ 말함(ex. μ›Ή νŽ˜μ΄μ§€ 읽어 였기, 링크 ν΄λ¦­ν•˜κΈ°) (μ›Ή λΈŒλΌμš°μ € μ°½ 맨 μœ„ 제λͺ© ν‘œμ‹œμ€„μ„ ν΄λ¦­ν•˜λŠ” 것은 μ΄λ²€νŠΈκ°€ μ•„λ‹˜(μ˜μ—­ λ²—μ–΄λ‚¬μœΌλ―€λ‘œ)) λ¬Έμ„œ λ‘œλ”© 이벀트 μ„œλ²„μ—μ„œ μ›Ή λ¬Έμ„œλ₯Ό κ°€μ Έμ˜€κ±°λ‚˜ μœ„μ•„λž˜λ‘œ μŠ€ν¬λ‘€ν•˜λŠ” λ“± μ›Ή λ¬Έμ„œλ₯Ό μ›Ή λΈŒλΌμš°μ € 창에 λ³΄μ—¬μ£ΌλŠ” 것과 κ΄€λ ¨λœ 이벀트 이벀트 μ΄λ²€νŠΈκ°€ λ°œμƒν•˜λŠ” μˆœκ°„ abort μ›Ή λ¬Έμ„œκ°€ μ™„μ „νžˆ λ‘œλ”©λ˜κΈ° 전에 뢈러였기λ₯Ό λ©ˆμΆ”μ—ˆμ„ λ•Œ error λ¬Έμ„œκ°€ μ •ν™•νžˆ λ‘œλ”©λ˜μ§€ μ•Šμ•˜μ„ λ•Œ load λ¬Έμ„œκ°€ λ‘œλ”©μ΄ 끝났을 λ•Œ resize λ¬Έμ„œ ν™”λ©΄μ˜ 크기가 λ°”λ€Œμ—ˆμ„ λ•Œ ..