목록분류 전체보기 (211)
hmk run dev

Activit - 앱이 실행되면 전체 화면에 앱의 UI를 띄워줌 - 사용자와 상호작용하며 이벤트 처리 - 새로운 UI를 화면에 표시 기본적으로 MainActitvity가 앱 실행 시 최초로 보이는 화면을 담당한다. Service 앱의 백그라운드에서 동작하는 작업을 수행하며 서비스를 실행한 앱을 다른 앱으로 전환하더라도 서비스에서 시작한 작업은 백그라운드에서 계속 실행 된다. 서비스는 크게 3가지로 나눌 수 있는데 - 포그라운드 서비스 : 알침창에 서비스가 실행 중임을 표시해준다. 시스템에 의해서 강제로 종료되지 않음 - 백그라운드 서비스 : 사용자에게 보이지 않는 백그라운드에서 작업을 수행하며. 시스템의 리소스가 부족할 경우 강제 종료될 수 있음 - 바인드 서비스 : 서비스와 서비스를 호출하는 앱 구송 ..

Intent (스프링의 @Autowird와 비슷...??) Component를 실행하기 위해 시스템에 넘기는 정보 기본적으로 안드로이드는 component기반이고 이때 내부적으로 개발자가 작성한 Activity 같은 클래스들이 아래와 같이 동작하게 된다. 위 4개의 영역은 각각각의 class지만 상호 결합되지 않은 상태로 실행이 되고. 이것들은 안드로이드에선 component라고 할 수 있다. 안드로이드 애플리케이션을 네 가지 기본요소에는 Activity, Service, Broadcast Reiceiver, Content Provider가 있다. 이때 인텐트(Intent)란 이러한 어플리케이션 구성요소(컴포넌트) 간에 작업 수행을 위한 정보를 전달하는 역할을 한다. 인텐트는 안드로이드 개발 시 매우 빈..

UML 다이어그램 종류 (액시디콜컴클) UML이란 소프트웨어 시스템을 구축하기 전에 모델을 설계한 그림으로된 표기법 - Activity - Sequence - Deployment - Collaboration - Component - Class 화이트박스 테스트 - 내부구조를 알고 동작검사 블랙박스 테스트 - 내부구조, 작동원리를 모르고 검사 스택을 사용한 연산 - 재귀호출, 후위연산, 깊이 우선탐색(DFS) 큐 - 선택정렬, 넓이 우선탐색(BFS) 병렬 데이터베이스 분할방법 수평분할 - 라운드-로빈, 범위 분할, 해시 분할 수직분할 - 예측분할 데이터베이스 설계 단계 개념적 설계 - 사용자의 요구사항 분석 후 DB에 대한 추상적인 형태 설계(ERD 작성) 논리적 설계 - 논리적 모델이용 스키마 생성, 개..
보호되어 있는 글입니다.

요즘엔 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("람다 넘..