목록2022/02 (24)
hmk run dev
요즘엔 List가 없는 앱을 찾기 힘들다. 배민 - 음식점 list 야놀자 - 숙박 list 핀다 - 대출 list 이렇듯 거의 모든 어플엔 list 형식이 있는데 RecycleView말 그대로 재활용이 된다는 것이다. 화면에 보여질 만큼의 view를 생성하고 계속 재활용한다. RecycleView를 사용하기 위한 준비물이 2개가 필요하다. 1. Adapter - view 생성 만든 view 안에서 데이터 바인딩 담당 class MyAdapter(val context: Context, val list : List, var onDeleteListner: OnDeleteListner) : RecyclerView.Adapter() { // 리스트 사이즈 override fun getItemCount(): In..
onCreate() - 사용빈도 높음 - view를 빌드하고 구성 - 전 액티비티나, 전 활동에서 넘어온 데이터 처리 onStart() - 사용자가 스크린을 볼 수 있게 활동을 포그라운드에 넘김 - 사용자와 상호작용을 준비( ex 버튼클릭, 텍스트입력 ) onResume() - 상호작용이 가능하게 되는 단계 - 포커스가 떠날때 까지 계속됨 > 포커스가 떠난다? > ex) 앱 사용중에 전화가 온다 > 다른 액티비티로 이동함, 어플이 꺼짐 onStop() - 사용빈도 높음 - DB에 저장하거나, CPU 소모가 많은 작업 담당
개념에 대해선 따로 다루지 않고 구현에 대해서만 다루겠습니다. 의존성 추가 kapt 추가 apply plugin: 'kotlin-kapt' room 추가 //ROOM def roomVersion = "2.4.1" implementation("androidx.room:room-runtime:$roomVersion") kapt("androidx.room:room-compiler:$roomVersion") entity 추가( 간결함 무엇...? ) @Entity(tableName = "memo") class Memo ( @PrimaryKey(autoGenerate = true) var id: Long?, var memo:String = "") dao 추가( ?? 개쩐다... update빼고 다 구현 ) @Da..
Constraint Layout view를 담는 그릇이 layout이라고 할 수 있다. 보통 안드로이드에서 레이아웃은 수직, 수평 레이아웃을 나눠서 사용할 수 있는데 UI를 구성하다 보면 두개를 모두 써야하는 경우가 많다 그럴 경우엔 레이아웃 안에 레이아웃을 또 넣어서 수평 수직을 표현해야 하는데 앱 퍼포먼스에 좋지 않은 영향을 끼칠 수가 있다. 그래서 나온게 Constraint layout이다 . 반드시 수직과 수평방향 모두에 제약을 두는 레이아웃이다! 장점 1. 자식 뷰 사이의 관계 정의 가능 2. 뷰 비율 조절 가능 3. 레이아웃 중첩 간소화, 유지보수 및 성능 UP 4. Relative, Linear 레이아웃이 구현 할 수 있는 것들을 모두 구현가능 출처 https://www.youtube.com..
페이지 전환 fragment navigation 이용 하나의 activity 그리고 그 안에 여러개의 fragment로 구성 navigation 추가 1. navigation 의존성 추가 gradle.build > dependencies def nav_version = "2.3.5" // Kotlin implementation "androidx.navigation:navigation-fragment-ktx:$nav_version" implementation "androidx.navigation:navigation-ui-ktx:$nav_version" 네비게이션 docs https://developer.android.com/guide/navigation/navigation-getting-started 탐색..
LAMDA ( 개인적으로 코틀린 문법중 제일 어렵다. ) package com.example.kotlin_prac class sample3 { } fun main () { println(square(12)) println(nameAge("형민", 28)) // 확장함수 사용법 val a = "hmk good!" val b = "android" println(a.pizzaIsGreat()) println(b.pizzaIsGreat()) extendsString("hmk", 28) println(calcGrade(91)) // 람다식을 파라미터로 넘겨보기 val lamda : (Double) -> Boolean = { number : Double -> number == 4.341 } println("람다 넘..
안드로이드 앱개발을 배울겸 JAVA 대신 구글에서 공식 개발언어로 채택한 Kotlin으로 개발해보기로 했다! 실제로 배워보니 JAVA와 비교적 매우 간결해진 문법과 편리성이 매우 두드러진다...! FUNCTION package com.example.kotlin_prac // ; 콜론 생략가능 시원~~ fun main () { //helloWorld() //println(add(4,5)) // String Template val name = "hmk" val aka = "good" //println("my name is ${name + aka}I'm a boy") // ${} 표시를 쓰면 변수를 사용가능 //println("this is 2\$a") // 앞에 "\" 백슬래쉬를 쓰면 $를 문자열로 인식 /..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.