목록전체 글 (67)
개발일지
Kotlin android extension findViewById 하는 법 - val message = findViewById (R.id.message) as TextView val message = findViewById (R.id.message) → message.text = "setMessage" # 형변환 val a: Long?=0 val b: Int ?= a → val b: Int?= a?.toInt() # 변수 선언 방법 val/var 변수 이름 : 변수 타입 = 초기화 val/var name : String = "" valuable/immutable (val) : Read-only ==> java final variable/mutable (var) : Read/write -mutable/v..
local unit test - JVM only instrumented unit test - physical device , emulator #JUnit : Unit Test Framework #Mokito : Mock Object 구현 도와줌 mock: 실제 객체를 만들기에는 시간 비용 낭비, 의존성이 크게 걸쳐져 있어 테스트시 제대로 구현 어려워 가짜 객체 만들어 사용하는 것 #Robolectric : 배포 설치가 필요없도록 내 PC 의 JVM에서 안드로이드 코드를 실행해줌 #Hamcrest : Test Class에서 사용하는 assert() 같은 Matcher 을 확장한 라이브러리 - JUnit의 assertEquals를 사용하는 대신 Hamcrest의 assertThat구조와 표준 matcher ..
git checkout COREA-728 // 브랜치로 이동 git status // 변경된 파일 보여줌 git diff [파일명] // 해당 파일 변경된거 보여줌 git add [파일명] // stage에 올라감 (커밋 전 올라가있는 것) git commit [파일명] git push git branch // 브랜치 목록 보여줌 git pull // 서버랑 로컬 동기화 git push --set-upstream origin COREA-797 → 현재 로컬에서만 branch를 생성한 상태이기 때문에 아래 명령을 입력해서 upstream branch로 만들어 준다 patch -p1 첫번째 이후 디렉토리부터
RecyclerView → 단지 recyclerview 항목 재활용하고 보여주는 역할 → adapter 와 소통 (adapter 에게 ViewHolder 받음) Adapter (실제 data 가지고 있음) → 필요한 ViewHolder 객체 생성하고 데이터를 ViewHolder 객체와 결합 ViewHolder (화면에 표시되는 아이템 뷰 저장 ) → 하나의 view 만들고 보관하는 일 // 재사용을 위해 목록에서 사라지는 뷰 임시저장 ~onCreateViewHolder : ViewHolder 생성되는 함수 (ViewHolder 객체 만들어주면 됨) ~onBindViewHolder : 생성된 ViewHolder 에 data binding 해주는 함수 getItemCount() 로 총 Item 갯수 몇개인지..

→ Android App Bundle은 앱의 모든 컴파일된 코드 및 리소스를 포함하며 APK 생성 및 서명을 Google Play에 맡기는 게시 형식입니다. 사용자가 앱을 다운 받을 시 앱의 다운로드 크기와 디스크 할당 크기 감소 사용자에게 필요한 기능 및 설정을 설치 중이 아닌 사용자가 요청할 때 제공 여러 개의 APK를 빌드하고 게시할 필요가 없어 효율적인 빌드 및 출시 관리 사용자의 기기 대신 APK 에 저장되는 압축되지 않은 기본 라이브러리를 사용하여 (Android 6.0 이상) 다운로드 크기, 디스크 할당 크기, 설치 시간 감소 → 각 사용자의 디바이스에 맞는 리소스와 구성품으로 구성된 APK 를 만들어 배포함으로써 사용자에게 다운로드의 시간을 줄여줌[ AAB 파일 생성 방법 ] 1. 안드로이..

→ 각각의 컴포넌트들 간에 메시지를 전달할 수 있는 방법을 제공해줌 정적으로 리시버 구현하기 → 리시버를 고정해서 등록해 놓고 원하는 intent에 반응하는 리시버 BroadCastReceiver 를 상속받아 onReceive()메서드를 오버라이딩 onReceive()메서드는 intent-filter을 통해 걸러진 intent를 받아들이는 곳 → 원하는 액션을 작성하면 됨 PendingIntent → 사용자가 notification 을 통해 특정한 동작을 할 때 실행되는 인텐트를 생성함 사용자가 앱위젯을 통해 특정한 동작을 할 때 실행되는 인텐트를 생성함 가지고 있는 Intent를 보류하고 특정 시점에 작업을 요청하도록 하는 특징이 있음 (미래의 특정 시점에 실행되는 인텐트를 선언함) getActivit..
lock 기능을 갖는 변수 public boolean block(long timeout) - 변수 상태가 open 될 때 까지 또는 time out 될 때 까지 현재 스레드는 block 한다. time out 으로 인해 대기가 해제되었을 때 false 반환하고 다른 스레드에 의해 conditionvariable 가 오픈되었을 경우 true 를 반환한다. public void close() - conditionvariable 를 닫은 상태로 만든다. 닫힌 상태에서 block() 메소드를 호출한 모든 스레드는 모두 대기상태로 유지된다. public void open() - conditionvariable 을 오픈상태로 만든다. 닫힌 상태에서 block() 메소드를 호출한 모든 스레드는 conditionvar..
gradle Gradle 스크립트는 groovy를 사용해서 만든 DSL이다. 모든 Gradle 스크립트는 두가지 개념으로 구성되어 있는데 projects와 tasks 이다.모든 Gradle 빌드는 하나 이상의 projects로 구성된다. 그리고 각 project는 하나 이상의 task들로 구성되어 있다. 이 task는 어떤 클래스를 컴파일하거나 JAR를 생성하거나 javadoc을 만드는 작업들을 의미한다 의존성이나 플러그인 설정 등을 위한 스크립트 파일이다. gradlew 유닉스용 실행 스크립트다. Gradle로 컴파일이나 빌드 등을 할때, 아래와 같이 하면 로컬에 설치된 gradle을 사용한다 gradlew.bat 원도우용 실행 배치 스크립트다. 원도우에서 실행 가능하다는 점만 제외하면 gradlew와..

람다식을 이용해서 호출하면 일시적인 범위 생김 → 그 범위 안에서 전달된 객체에 대해 it 또는 this 라는 Context Object 통해 접근 Context Object 를 참조하는 방법 (this, it) Return value 1) Context Object : this , it → Scope Function 람다식 내에서 Context Object 는 실제 객체명 대신 it, this 로 접근 ***this*** -run, with, apply 는 Context Object 를 this 로 참조 → 따라서 람다식 안에는 일반 클래스 멤버처럼 사용할 수 있음 (this 는 생략할 수 있지만 동일한 이름의 멤버가 있는 경우 구별할 수 없으니 가급적 Context Object에 대해서는 this 를..

어떤 클래스에 변화가 일어났을 때 이를 감지하여 다른 클래스에 통보해주는 것 객체의 상태 변화를 관찰하는 Observer 들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메소드 등을 통해 객체가 직접 목록의 각 Observer 에게 통지하도록 하는 디자인 패턴 외부 객체의 상태 변화에 따라 (Subject class) observer 객체(observer interface class)는 이에 상속되어 있는 다른 객체(concreteObserver)들에게 변화된 상태를 전달하고(notify 메소드) 상속된 객체는 그에 맞게 기능을 수행하는 형태로 구성됨 함수로 직접 요청하지 않았지만 시스템 또는 루틴에 의해 발생하게 되는 동작들을 이벤트라고 함 → Observer 패턴은 어떤 일이 생기면 미리 등록한..