본문 바로가기

안드로이드 프로그래밍17

[kotlin] 싱글톤 패턴(Singleton pattern)에 대하여 싱글톤 패턴 어떤 클래스의 인스턴스는 오직 1개임을 보장, 이 인스턴스는 전역에서 접근할 수 있는 디자인 패턴이다.어플리케이션의 시작부터 종료까지 1번의 생성으로 고정된 영역 메모리를 가지므로, 메모리를 효율적으로 사용할 수 있다싱글톤 패턴 사용 이유프로그램에서 키보드 객체를 무한하게 제작한다면? → 입력순서가 꼬임안 될건 없지만, 중복된 동작을 하는 객체를 그 때마다 생성시키면 메모리가 낭비됨보통 객체는 자원이 가능한 만큼 생성할 수 있고, 각각의 객체는 상이한 위치정보/고유한 저장값을 지님싱글턴을 활용하면 해당 객체는 메모리 전역에서 유일함을 보장하고 위치정보가 고정프로그램이 실행되는 시점에 메모리에 바로 로드해서 위치를 잡음객체 자원간의 충돌 방지, 전역적으로 활용하여 다른 클래스들에서 쉽게 접근,.. 2024. 7. 14.
[kotlin] 코틀린 enum class (열거 클래스) Enum class Enum class란 일반적으로 선언되는 상수와는 다르게, 여러 개의 값을 열거해서 사용할 수 있도록 정의해 놓은 클래스이다.enum class Fruit{ GRAPE, APPLE, ORANGE, MANGO}일반적인 형태의 enum class는 위와 같은 형태로,Fruit가 해당 클래스의 클래스 명이며, 블록 안에 순차적으로 콤마(,)를 통해 나열된 값이해당 클래스의 인스턴스이다.특별히 생성자를 정의하지 않는 경우 위에서부터 순차적으로 0,1,2,3...의 값이 부여된다.각 enum 인스턴스는 일반적으로 name과 ordinal이라는 프로퍼티를 가지며,name은 인스턴스의 이름을, ordinal은 인스턴스의 순서를 나타낸다.위와 같이 선언된 enum class는 .. 2024. 5. 28.
[Android] view binding view binding은 이 findViewById를 대체할 수 있는 기능이다. 뷰 바인딩을 사용하면 직접 id를 적고 타입을 정하고 이런 작업을 하지 않아도 된다. 자동으로 클래스 파일을 생성해주기 때문이다. 왜 사용하나 ? 기존 findViewById에는 몇가지 문제점이 존재합니다. 코드가 더러워짐 ( 관리해야 될 버튼이 20개 일 경우 findViewId() 만 20번 쓰임 실수로 없는 id를 사용하면 NULL 오류가 발생합니다. 실수로 뷰의 타입을 잘못 적으면 오류가 발생합니다. ex. TextView -> ImageView 사용법 ? gradle 파일에 추가 // 안드로이드 스튜디오 3.6 ~ 4.0 android { ... viewBinding { enabled true } } 바인딩 클래스 .. 2023. 9. 28.
[Android] Linearlayout , layout_weight 속성 1. Linear Layout Linear Layout은 View를 수평 또는 수직 방향으로 배치할 수 있는 레이아웃입니다. orientation 속성을 통해 배치방향을 결정할 수 있습니다. android : orientation = "vertical" : 하위 뷰들을 수직방향으로 배치 android : orientation = "horizontal" : 하위 뷰들을 수평방향으로 배치 2. gravity 속성과 layout_gravity 속성 차이 gravity : 자신의 뷰에서 포함하고 있는 데이터를 정렬, layout_gravity : 자신을 포함하고 있는 부모 위젯 레이아웃에서 옵션값에 따라 정렬 3. layout_weight 속성 자식 뷰에 가중치를 지정해서 그 비율만큼의 자식 뷰의 크기를 지정하.. 2023. 9. 26.