본문 바로가기

Java and Android

(49)
Andorid Kotlin_MemoApp - RoomDataBase 1.RoomDataBase 사용하기 위한 의존성 추가 및 싱크 (1) - google검색 : Android Room - depdendencies 추가 (2) - plugin : 'kotlin-kapt' 추가 (3) - Android Studio -> build.gradle 에서 위 의존성과 플러그인 코드 삽입 후 싱크
Android Kotlin _MemoApp - 데이터관리 1. activity_main.xml의 RecyclerView안의 item목록 데이터들이 들어가고 변화할 하나의 새로운 틀 레이아웃을 만든다 (1) - 아이템마다 새로운레이아웃을 만드는것이 아니라 딱 하나의 레이아웃을 만들고 그 안의 데이터만 바꾸어줄 것이다 - layout폴더에서 -> New -> Layout Resource File 로 constraintLayout파일을 한개 만들어준다 (2). 체크이미지파일 만들기 - drawable폴더를 우클릭하고 New -> Vector Asset에 들어가면 안드로이드에서 기본으로 제공하는 여러 이미지들이 있다, 그중에서 check 이미지를 가져온다 (3). (1)에서만든 새로운 Layout인 item_memo.xml에 (2)에서만든 이미지src를 가져와서 Im..
Android Kotlin _MemoApp - 디자인 1. TextView, EditText, Button *constraintLayout을 이용하여 위아래 혹은 좌우를 모두 연결한 상태에서는 height=0dp 혹은 width= 0dp를 주면 화면 크기에 맞게 비율을 자동적으로 조절하여 화면을 꽉 채움 *Button은 텍스트입력시 대문자만 입력되는데 textAllcaps=false로 해주면 소문자도 입력 가능 2.Button에 스타일주기 (1) - drawable 폴더에 우클릭 -> New -> Drawable Resourec File로 파일생성 (2) . 생성한 button_style 파일을 아래와 같이 작성 - solid로 버튼색을 values폴더의 colors.xml에서 가져온 색으로 쓰고 - coners로 radius값을 주어 테두리를 둥글게 해준..
Android Kotlin - 실습예제 최종 1. 네비게이션 기본 설정 (1) - 먼저 우리가 이전에 작성한 각 fragment.xml들의 tools:context=".해당xml을 만든 kt파일이름"을 지정해준다 (2) - 그러면 nav_graph.xml에 가보면 우리가 만든 xml의 디자인이 그림으로 나오고 그걸 클릭하면 화면에 띄워진다 (3) - mainFragment 그림을 상단의 홈그림버튼을 눌러 홈으로 지정해주고 각 그림마다 좌측 중앙 원을 드래그 하여 순서를 연결해준다 - 그러면 순서에 맞게 동작하는 태그가 코드상에 생기게 된다 *tip) values폴더의 style.xml에서 parent중 아래 예제부분을 NoActionBar로 설정해야 핸드폰으로 빌드했을때 상단텍스트바가 사라짐 2. 네비게이션 로직 작성 (1) - MainFragme..
Android Kotlin -실습예제(2) - fragment.xml 디자인 1. fragment.question.xml 디자인 - 실습예제(1)에서 main_img를 디자인 했듯 같은 방식으로 fragment.question.xml을 디자인 해준다 2. fragment_selection.xml 디자인 (1) - 역시나 최상위 문단을 constraintlayout으로 하고 안쪽에 새로운 LinearLayout을 만들어 준다 * tip) 디자인 화면에 우클릭을 하고 Helpers -> Add Horizontal Guidline을 크릭하면 디자인화면 상에 가이드 라인을 만들어 주어 %로 비율을 쉽게 가시적으로 볼 수 있다 , 디자인 화면 가이드 라인 왼쪽에 작은 원을 클릭하면 길이비율에서 % 비율로 바꾸어 볼 수 있다 (2) - 높이를 0dp로 해주어야 우리가 constraintLa..
Android Kotlin - 실습예제(1) 한개의 메인엑티비티에 4개의 프래그먼트를 넣고 네비게이션이라는 것을 사용할 것임 네비게이션을 사용하기 위해서 몇가지 사전 작업이 필요하다 1.android navigation jetpack 이용하기 developer.android.com/jetpack/androidx/releases/navigation?hl=ko 탐색 | Android 개발자 | Android Developers 탐색 Navigation은 Android 애플리케이션 내에서 '대상' 사이를 탐색하는 프레임워크로, 대상이 Fragment, Activity 또는 기타 구성요소로 구현되었는지에 관계없이 일관된 API를 제공합니다. 이 표에는 andr developer.android.com 2. 의존성 추가하여 jetpack연동 3. 네비게이션 ..
Android Kotlin - 상수, lateinit, val by lazy{} 1. 상수 : 컴파일 시점에 결정되어 절대 바꿀 수 없는 값으로 const val로 선언 상수로 선언될 수 있는 것은 기본자료형(string 포함)만 가능하며 런타임에 생성될 수 있는 일반적인 다른 클래스의 객체들은 담을 수 없다 상수는 클래스의 속성이나 지역변수등으로는 사용할 수 없으며 반드시 companion object안에 선언하여 객체의 생성과 관계없이 클래스와 관계된 고정적인 값으로만 사용이 가능하다(자바의 static과 비슷) 상수의 이름을 만들때는 의례적으로 대분자와 언더바를 사용한 표기법을 사용하여 상수임을 알려준다 - 그럼 val FOOD_PASTER 처럼 변수를 쓰지 않는 이유는? 어떤 클래스 안의 변수가 고정적이라면 상수를 쓰는것이 성능 면에서 최적화되어있다 예를 들어 변수를 쓰면 변..
Android Kotlin - 컬렉션함수(flatMap, getOrElse(), zip) 1. collection.flatMap{} : 중괄호 안에서 아이템(컬랙션의 원소가 처음부터 순서대로 돌면서 it에 할당됨)마다 새로운 컬렉션을 생성하면 이를 합쳐서 하나의 컬렉션(배열형식)으로 반환해줌 2. collection.getOrElse(){} : 괄호안에 지정한 인덱스 위치에 객체가 존재하는 경우 해당 인덱스 위치에 해당하는 객체를 반환하고 없는경우 중괄호안의 객체를 반환한다 4. collectionA zip collectionB : 두 컬렉션에 포함된 아이템을 1:1로 pair 클래스의 객체로 만들어 list에 넣어 반환해 준다 *이 떄 결과 List의 아이템의 갯수는 더 작은 컬랙션을 따라간다