Android 21

[패스트캠퍼스] Kotlin vs JAVA

1. Null Safe 2. Scope Function (apply, with, let, also, run) - Apply 함수 (주로 객체를 초기화할 때) val person = Person().apply{ firstName = "Fast" lastName = "Campus" } Person person = new Person(); person.fistName = "Fast"; person.lastName = "Campus"; - Alos 함수 (객체의 유효성을 확인하거나 프린트 함수로 디버깅할 때) Random.nextInt(100).also{ print("getRandomInt() generated value $it") } Random.nextInt(100).also{ value -> print("..

Android 2023.01.03

[패스트캠퍼스] 코틀린 문법 훑어보기

1. 함수 * 함수 형태 fun 함수이름 (인풋변수이름: 인풋변수타입, 인풋변수이름2: 인풋변수타입2): 리턴타입{ return 리턴값 } * 리턴타입이 void 일 경우 생략 가능 * 구문식 / 표현식 (동작 같음) fun sum(a:Int, b:Int): Int{ return a+b; } fun sum(a:Int, b:Int)=a+b 2. For 반복문 for (i in 1..5){ println(i) } //1 2 3 4 5 for (i in 6 downTo 0 step 2){ println(i) } //6 4 2 0 for (i in 1..5 step 3){ println(i) } //1 4 val numberList = listOf(100, 200, 300) for (naumber in numb..

Android 2023.01.02

[Android] Handler

긴 시간이 걸리는 작업을 메인스레드에서 작업한다면 애플리케이션의 성능이 저하됨은 물론이고, 지나치게 많은 시간이 걸리는 경우 ANR(Application Not Responding)상태로 전환이 될 수 있음. 따라서 시간이 걸리는 작업을 수행해야 할 때에는 여분의 스레드를 활용하여 메인스레드와 분리해서 작업해야하고 자연스럽게 메인스레드와 다른 스레드가 통신하는 방법이 필요함. 메인스레드 안드로이드 주요 컴퍼넌트를 실행하는 곳이자 UI를 그리거나 갱신하는 일을 담당할 수 있는 유일한 스레드(UI스레드) Handler handler는 스레드의 Message Queue와 연계하여 Message나 Runnable객체를 받거나 처리하여 스레드 간의 통신을 할 수 있도록 함. Handler는 혼자서는 아무 동작을 ..

Android 2021.09.02

[Android] CallBack

콜백 이벤트가 발생하면 특정 메소드를 호출해 알려줌 (1개) 옵저버 데이터나 속성의 변경을 감지하여 변경사항을 전달 리스너 이벤트가 발생하면 연결된 리스너(핸들러)에게 이벤트를 전달 (n개) > 안드로이드 프레임워트에서는 리스너를 1개밖에 등록하지 못해 콜백이랑 비슷 인터페이스 자바프로그래밍의 인터페이스는 클래스가 반드시 구현해야할 행동(메서드)을 지정하는 데 사용되는 추상타입이다. 인터페이스는 interface 키워드를 통해 선언할 수 있으며 implements 키워드를 통해 일반 클래스에서 인터페이스를 구현할 수 있다. >구현1 인터페이스 정의 public interface CustomListener { void callBack(Object object); } >구현2 동작 커스텀 클래스 정의 pub..

Android 2021.06.08

[JAVA] 싱글톤(Singleton) 패턴

싱글톤 패턴의 정의? 싱글턴 패턴(Singleton pattern)을 따르는 클래스는 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴. 즉 하나의 해당 클레스에서 단 하나의 인스턴스만 만들도록 보장하는 방법으로 하나의 인스턴스만을 재사용하여 불필요한 자원 낭비나 오버헤드 등을 막을 수 있음. 주로 공통된 객체를 여러개 생성해서 사용하는 DBCP(DataBase Connection Pool)와 같은 상황에서 많이 사용. 싱글톤 만드는 방법? > 외부에서 생성자를 호출할 수 없도록 제한해야 한다. (생성자의 접근제어자 : private 사용) 이유: 외부에서 생성자를 호출할 때마다 인스턴스가 생성되기 때문. > 자신의 클래..

Android 2021.04.11

[Android] 리니어 레이아웃 (Doit! 레이아웃익히기)

뷰 정렬하기 layout_gravity 부모 컨테이너의 여유 공간에 뷰가 모두 채워지지 않아 여유 공간이 생겼을 때 여유 공간 안에서 뷰를 정렬함 gravity 뷰 안에 표시하는 내용물을 정렬함 (ex. 텍스트뷰의 내용물은 글자, 이미지뷰의 내용물은 이미지) gravity 속성 top 대상 객체를 위쪽 끝에 배치하기 bottom 대상객체를 아래쪽 끝에 배치하기 left 대상 객체를 왼쪽 끝에 배치하기 right 대상 객체를 오른쪽 끝에 배치하기 center_vertical 대상 객체를 수직 방향의 중앙에 배치하기 center_horizonral 대상 객체를 수평 방향의 중앙에 배치하기 fill_vertical 대상 객체를 수직 방향으로 여유 공간만큼 확대하여 채우기 fill_horizontal 대상 객체..

Android 2021.03.21

[Android] 안드로이드 스튜디오 기초 (Doit! 안드로이드스튜디오와친해지기)

액티비티(하나의 화면) > 뷰(액티비티의 구성요소) > 레이아웃(뷰를 배치하는 것) 코드를 수정했는데도 이전에 발생했던 에러가 사라지지 않으면? [File] > [Sync Project with Gradle File] (빌드 기능을 담당하는 그래들이 새로 프로젝트를 빌드하면서 변경된 파일의 내용들을 모두 반영하도록 함) [ctrl]+[P] > 소괄호 안에 들어갈 수 있는 파라미터 [오른쪽마우스] > [Gecerate..] > 메서드 입력(코드생성) [ctrl]+[shift]+[F] > Find in Path(파일내용검색) 뷰의 속성 뷰는 컨트롤이나 위젯으로 불리는 UI 구성요소.(사용자의 눈에 보이는 화면의 구성요소들) 뷰그룹은 뷰를 여러개 포함하고 있는 것. 위젯과 레이아웃으로 구별되는 뷰 위젯은 뷰 ..

Android 2021.03.15