개발 노트/Kotlin (96) 썸네일형 리스트형 [Android/Kotlin] 파이어베이스 CRUD 만들기 (2) - 사용자 등록 저번시간에는 프로젝트 만들고 파이어베이스 연동을 해봤고, 이번에는 이름과 나이를 적어서 버튼을 누르면 등록해보는 예제 코드를 짜볼것이다 먼저 viewbinding 설정을 할것이다 viewbinding 설정을 하는 이유는 findviewbyid없이 뷰 객체를 사용하기 위해서다 viewbinding을 사용함으로써 뷰객체에 바로 접근할수있다 build.gradle(app)에서 kotlinOptions 밑에 아래와같이 코드를 작성해준뒤 sync now를 눌러주면 viewbinding을 사용할수있게 된다 buildFeatures{ viewBinding = true } 이제 사용자 정보를 담을 사용자 모델 클래스를 생성해준다 User.kt 파일을 생성해준다 (클래스 타입은 Data class로 생성) constru.. [Android/Kotlin] 파이어베이스 CRUD 만들기 (1) - 프로젝트 생성, 파이어베이스 연동 # 새 프로젝트 생성 먼저 Empty Activity를 클릭해서 new project를 만들어준다 프로젝트명은 FirebaseCrud라고 써주었다 # 파이어베이스 연결 이제 파이어베이스를 연결해줄건데 안드로이드 스튜디오에서 Tool -> Firebase -> Analytics -> Get started with Google Analytics -> Connect your app to Firebase에 있는 연결을 누르면 파이어베이스창으로 이동하는데 거기서 새로운 프로젝트 생성하고 연결을 눌러주면 안드로이드 스튜디오와 파이어베이스 연결이 완료된다 잘 연결이 되었는지 확인하고싶다면 안드로이드 스튜디오에서 보는 형식을 Project로 변경한다음 app 내부에 json파일이 있다면 파이어베이스와 잘 연동이 되었다.. [Kotlin]BottomNavigation 오늘은 BottomNavigation을 만드는 방법을 써볼것이다 우리가 사용하는 앱 대부분이 BottomNavigation으로 이루어지는 만큼 꼭 알아야되는 내용이라고 생각한다 먼저 menu라는 패키지를 만들어서 menu.xml 레이아웃을 만든다음 아래와 같이 써준다 menu.xml 나는 예시로 만들어보는거기 때문에 아이콘은 다 같은걸로 해주었다 그리고 activity_main으로 가서 bottomnavigation과 frameLayout을 추가해준다 activity_main.xml 이렇게 디자인되는걸 볼수있다 그다음에 일기버튼,좋아요버튼,기분 버튼을 눌렀을때 해당하는 fragment가 나올수있도록 fragment 레이아웃파일과 코틀린 파일을 각각 만들어준다 바인딩을 사용해주기위해서 build.gradl.. [kotlin]스코프 함수 # 스코프 함수 - 스코프 함수(Scope Function)는 코드를 축약해서 표현할 수 있도록 도와주는 함수이다 영역 함수라도고 한다. 사용법은 함수처럼 쓰지 않고 run, let처럼 괄호 없이 일종의 키워드 같이 사용할 수 있다. lateinit과 함께 Safe Call 남용을 막아주는 역할도 하기 때문에 많이 사용하는 요소이다. 스코프 함수에는 run, let, apply, also, with이 있다. # run과 let으로 보는 스코프 함수 - run과 let은 자신의 함수 스코프(코드 블록) 안에서 호출한 대상을 this와 it로 대체해서 사용할 수 있다. # run 스코프 함수 안에서 호출한 대상을 this로 사용할 수 있다. 클래스 내부의 함수를 사용하는 것과 동일한 효과이기 때문에 this.. [kotlin]지연 초기화 # lateinit - 개발을 하다보면 클래스 안에서 변수만 Nullable로 미리 선언하고, 초기화를 나중에 해야 할 경우가 있다 - 이럴 경우 lateinit 키워드를 사용할 수 있다 # Nullable로 선언하는 일반적인 방법 class Person { var name: String? = null init { name = "Lionel" } fun process() { name?.plus(" Messi") print("이름의 길이 = ${name?.length}") print("이름의 첫 글자 = ${name?.substring(0, 1)}") } } -> 일반적인 선언 방식으로 처음에 null 값을 입력해두고, 클래스의 다른 메서드 영역에서 값을 입력한다 -> 위 방식은 변수에 입력된 값의 메서드.. [kotlin]null 값에 대한 안정적인 처리 - Null Safety - null은 항상 이슈의 중심에 있는데, null로 인해 프로그램 전체 혹은 앱 전체가 멈출 수 있다 - 프로그램이 멈출 수 있는 상황을 다음과 같이 코드로 만들어보겠다 class One { fun print() { Log.d("null_safety", "can you call me?") } } -> 1개의 메서드를 갖고있는 클래스를 만든다 var one: One if (1 > 2){ one = One() } one.print() -> 그리고 onCreate() 메서드 안에서 다음과 같이 one 변수 하나를 선언하고, 타입으로 내가 만든 클래스를 지정해둔다 -> 그리고 특정 조건이 만족할 때만 선언한 변수에 생성자를 호출해서 저장해두는 조건문 if를 만든다 -> 그리고 변수를 통해, 해당 클래스의 메서.. [kotlin]클래스와 설계 - 지금까지 공부한 내용 안에서 클래스를 정리하면, 클래스는 단지 변수와 함수의 모음이다! - 그룹화 할 수 있는 함수와 변수를 한군데에 모아놓고, 사용하기 쉽게 이름을 붙여놓은 것을 "클래스" 라고 이해하면 쉬울것이다! # 클래스의 기본 구조 - Kotlin에서 사용되는 클래스의 기본 구조는 다음과 같다 class 클래스명 { var 변수 fun 함수() { // 코드 } } 다음은 문자열을 저장할 수 있는 String 클래스의 코드를 함축해서 보여주는 코드다 class String{ var length: Int fun plus(other: Any){ // code } fun compareTo(other: String){ // code } } -> length로 문자열의 길이를 알 수 있고, plus로.. [kotlin]함수 함수는 fun으로 정의하고, 반환값이 있는 함수는 내부에서 return으로 값을 반환한다 함수를 정의할 때 입력값을 기술한것을 "파라미터"라고 하는데, 이 파라미터를 전달하고 결괏값을 돌려받는 다양한 방법에 대해 알아볼것이다! 모든 코드는 함수 안에 작성해야하며, 코드의 실행은 함수를 호출하는것에서 시작한다 안드로이드 앱도 onCreate()함수를 호출해서 실행된다고 할 수 있다 (물론 내부는 더 복잡한 구조로 되어있지만, 일단은 단순하게 접근하자!) # 함수의 정의 - 함수는 fun 키워드로 정의하며, 값을 입력받아서 사용할 수 있다 - 이때 입력될 값을 기술한 것을 파라미터(Parameter) 라고 한다 - 기본 구조는 아래와 같다 fun 함수명(파라미터 이름: 타입): 반환 타입 { return 값.. [kotlin]반복문 반복문은 코드를 반복적으로 실행하고자 할 때 사용한다 만약 1부터 10까지의 숫자를 로그를 사용하여 출력할때 반복문이 없다면, 로그코드를 10줄을 작성해야될것이다 그치만 반복문을 사용하면, 반복문 내에서 로그코드를 한줄만 작성하면 된다! 반복문에는 for문과 while문 두가지가 있으며, for문은 특정 횟수만큼 코드를 반복하기위해 사용하고, while문은 특정조건이 만족할 때까지 코드를 반복할 때 사용한다 while문은 if문처럼 조건식을 사용해서 언제까지 반복할지 결정할 수 있다 # for 반복문 - 아래 코드처럼 for 다음의 괄호 ( ) 안에 반복할 범위를 지정하면, for블록의 코드가 지정한 횟수만큼 반복해서 동작한다 for (반복할 범위){ // 실행 코드 } # for in .. (온점 2개.. [kotlin]배열과 컬렉션 Int와 Double같은 타입은 모두 하나의 변수에 하나의 값만 저장하도록 되어있는데, 프로그래밍을 하다보면 하나의 변수에 여러개의 값을 저장해야할때가 있다 이처럼 여러개의 값을 하나의 변수에 저장할수있도록 배열(Array)과 컬렉션(Collection)이라는 데이터 타입을 제공한다 # 배열 - 여러개의 값을 담을 수 있는 대표적인 자료형 - 배열 공간의 개수를 할당하거나, 초기화시에 데이터를 저장해주면 데이터의 개수만큼 배열의 크기가 결정됨 - 개수를 정해놓고 사용해야하며, 중간에 개수를 추가하거나 제거할 수 없다 var 변수 = Array(개수) -> 배열은 다른 데이터 타입과 마찬가지로, 변수에 저장해서 사용할수있으며 위와같은 형태로 선언한다 var students = IntArray(10) var.. 이전 1 ··· 6 7 8 9 10 다음