본문 바로가기

전체 글

(107)
[TIL] ViewBinding, you need to use a theme.appcompat theme에러 [오늘 배운 내용] -1- ViewBinding ViewBinding이란? UI와 상호작용하는 코드를 결합하여서 코드를 더욱 쉽게 작성할 수 있게 해주는 기능. findViewById는 null 안정성이 보장되지 않지만, ViewBinding은 각 Layout.xml 파일에 결합 클래스를 생성하고, 바인딩 클래스의 인스턴스에 상응하는 Layout내의 id가 지정된 모든 view(Layout내의 객체)의 직접 참조가 포함되어 문제 해결가능 viewBinding은 연결된 Layout에 존재하는 view만을 가져올 수 있는데, findViewById는 연결되지 않은 Layout의 view를 가져와도 컴파일 상에서는 오류가 발생하지 않지만, 런타임 시 오류가 발생한다. 자동으로 형변환을 해준다. 액티비티.kt .. 2023. 8. 22. 20:00
[TIL] Android Studio 글꼴변경, UI폰트 설정, edittext 비밀번호 확인 [오늘 배운 내용] -1- Android Studio 글꼴 변경 Android Studio의 기본 폰트도 가독성이 좋아서 기본설정으로 사용할 수 있지만 가독성 향상 또는 글꼴 스타일이 마음에 안드는 등의 이유로 본인이 좋아하는 폰트를 골라서 코드를 입력할 수 있다. 변경에 앞서, 본인의 원하는 글꼴을 다운받아보자. 무료 글꼴 다운로드 사이트 https://noonnu.cc/index https://hangeul.naver.com/font https://fonts.google.com/ 폰트를 다운받았으면 윈도우에 폰트를 등록해주자. 윈도우 11기준 시작/설정/개인설정/글꼴 탭에 들어가서 원하는 파일을 사진에 표시한 점선 라인안에 끌어다 놓으면 등록이 된다. 등록되었는지 확인하는 방법은 점선 보드 하단에 '.. 2023. 8. 21. 22:51
[TIL] 0818 strings.xml, 언어변경 [오늘 배운 내용]-1- Android Studio String resource 활용xml파일에서 text를 입력하는 란에 "텍스트1" 식으로 텍스트를 입력하게 되면 하드코딩이 되었다고 알람이 나온다String resource를 통해 작성해야 하는 이유하드코딩을 하게 되면 사후관리가 어려울 수 있다 예를 들면, 특정 상품을 구매하는 어플에서 "구입"을 "구매"로 바꿔 달라는 요청을 받게될 때, "구입" 을 찾아서 바꾸는 방법도 있겠지만 코드가 많은 상황에서는 부담이 될 수 있다. 또 핸드폰 언어설정을 영어로 설정해두고 사용하는 사람의 경우와 타 국가에서 어플을 사용하게 될 경우에도 어려움이 생길 수 있는데  String resource에서 관리함으로써 이 문제를 해결할 수 있다.다국어 지원 기능Strin.. 2023. 8. 18. 20:50
[TIL] 0817 람다 [오늘 배운 내용] -1- 람다(Lambda) 람다 대수 또는 람다 계산법은 추상화와 함수 적용 등의 논리 연산을 다루는 형식 체계이다 람다식의 특성 . 1. 람다 대수는 이름을 가질 필요가 없다. (익명 함수) 2. 두개 이상의 입력이 있는 함수는 최종적으로 1개의 입력만 받는 람다 대수로 단순화 될 수 있다. (커링? 밑에서 추가로 작성.) 람다식은 주로 함수를 간단하게 정의할 때 이용하는데 kotlin에서 지원하는 고차함수를 이용하기 위해서는 람다식이 굉장히 중요하다고 한다. (고차함수란? 함수를 인자로 받거나 함수를 받환하는 함수.) 위의 람다식의 특성중 익명함수에 대해서 알아보자 // 일반적인 함수의 작성법 fun sum(num1: Int, num2: Int):Int { return num1 +.. 2023. 8. 17. 22:00
[TIL] 0816 Enum Class [오늘 배운 내용] -1- Enum class enum 은 enumeration의 줄임말로 '열거'를 뜻한다, enum class 는 상수들을 관리할 수 있고, 각 상수들을 마치 클래스 객체처럼 사용할 수 있는 등 유용한 기능을 제공한다. enum class 에서 개체는 쉼표로 구분되며, 대문자로 작성한다. 세미콜론 ' ; ' 을 사용해야하는 상황도 있다 - 본문에서 나온다 다른 클래스를 상속받을 수 없으며, 상속해줄 수도 없지만 인터페이스를 구현할 수는 있다. Enum class 를 사용하는 이유? 일반적으로 클래스 내부에서 상수(val)를 선언해서 사용하고 했는데, 이는 해당 클래스의 객체를 생성할 때 마다 각각 값은 같으나 다른 상수를 갖게 되는 것이다. enum 클래스를 통해 하나의 클래스의 하나.. 2023. 8. 16. 20:50
[TIL] 20230809 [오늘 배운 내용] -1- Singleton 싱글턴이란, 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고, 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴하는 것을 얘기한다. 어플리케이션의 시작부터 종료까지 1번의 생성으로 고정된 메모리 영역을 가지므로 메모리를 효율적으로 사용할 수 있다고 한다. kotlin 에서는 object,compainon object 키워드로 Singleton Pattern 구현 가능. 전에 시도 했던 개인프로젝트에서 클래스 마다 다른 값을 저장해서 메인에서 호출해보니, 내가 의도한 값을 확인할 수 없었는데 SIngleton Pattern으로 구현해서 그런 문제를 해결할 수 있다. -2- Object 오브젝트 클래스는 일반 클래스처럼 프로퍼티.. 2023. 8. 9. 20:25
[TIL] 20230808 5일차 [오늘 배운 내용] -1- Data Class 데이터 클래스는 이름처럼 데이터를 저장하는 것을 목적으로 하는 클래스이다. 데이터 클래스는 abstract, open, sealed, inner 일 수 없다. 데이터 클래스 생성 방법은 기존에 생성하던 class 앞에 data 를 입력해주고, 데이터 클래스 이름을 설정한 뒤 반드시 1개 이상의 변수 또는 상수의 객체를 생성해 주어야 한다. data class Liqueur( var name : String, var size : Int ) 왜 데이터 클래스를 이용할까?? 데이터 클래스로 정의하면 .toString , .equals, hashCode(), copy(), componentN() 함수를 자동으로 생성해준다. 이 부분에서 .toString 부분은 쉽게.. 2023. 8. 8. 21:55
[TIL] 20230804 - 4일차 [오늘 배운 내용] -1- 이미지뷰에 이미지 지정하기 이미지 등 이미지 소스 관리는 res/drawable 에서 가능하다 때문에, drawable에 이미지 파일을 추가해 주어야 하는데, 이미지 파일을 추가할 때에는 jpg 파일 같은 경우는 배경이 껴있어서 불편하므로 png 파일이 권장된다고 한다. 갖고 있는 jpg이미지 등도 구글링 통해서 쉽게 누끼딸 수 있는 사이트 많으니까 해당 사이트 이용해서 png 파일로 변환해서 사용할 수 있도록 하자. 폴더에 직접 이미지파일을 넣어줘도 되나, 이미지 복사 후 Android studio프로그램안에 res/drawable를 누르고 붙여놓기 단축키 실행하면 쉽게 이미지 파일을 추가할 수 있다. xml 파일로 이동한 뒤 drawable에 넣어둔 파일명으로 해당 이미지가.. 2023. 8. 5. 12:23