728x90
30일차
30개 프로젝트로 배우는 Android 앱 개발 with Kotlin 초격차 패키지 Online
강의 목표
- 프로젝트를 따라해보며 앱개발에 필요한 기술을 학습할 수 있습니다.
- 프로젝트를 따라해보며 앱개발에 필요한 기술을 학습할 수 있습니다.
- 앱 개발시 원하는 기능을 구현하기 위해 어떤 기술이 필요한 지 알 수 있습니다.
- 디자인 아키텍처 패턴, 비동기 처리 등 효율적인 앱 개발 방법을 익힐 수 있습니다.
목차 02 Basic - Ch04. 계산기
인트로계산기 UI 그리기 - 1계산기 UI 그리기 - 2계산기 UI 그리기 - 3계산기로 계산하기 - 1계산기로 계산하기 - 2- 계산 기록 저장하기 - 1
- 계산 기록 저장하기 - 2
- 아웃트로
계산 기록 저장하기 - 1
- 저번 시간까지 버튼을 보여주기 입력을 받아 계산을 하고 다시 연산하여 보여주는 동작을 짜보았다
- 이번에는 이 기록을 로컬 DB에 저장하여 기록을 볼 수 있도록 하자
- 늘 그렇듯 기록을 먼저 보여주는 View를 설계
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/historyLayout"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@color/white"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/keypadTableLayout"
tools:visibility="visible">
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/closeButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="@null"
android:onClick="closeHistoryButtonClicked"
android:stateListAnimator="@null"
android:text="닫기"
android:textColor="@color/black"
android:textSize="18sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ScrollView
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_margin="10dp"
app:layout_constraintBottom_toTopOf="@+id/historyClearButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/closeButton">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/historyLinearLayout"
android:orientation="vertical"
/>
</ScrollView>
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/historyClearButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="47dp"
android:layout_marginEnd="47dp"
android:layout_marginBottom="38dp"
android:background="@drawable/button_background_green"
android:onClick="historyClearButtonClicked"
android:stateListAnimator="@null"
android:text="계산기록 삭제"
android:textColor="@color/white"
android:textSize="18sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
- 기록 버튼을 눌렀을 때 보여줄 수 있는 모달 창을 띄어야한다
- activity를 새로 만들진 않고 visibility를 조정하도록한다
- 위에는 닫기 버튼이, 가운데에는 scroll 할 수 있는 계산기록이, 밑에는 계산기록을 초기화할 수 있는 버튼이 들어갈 예정
- 계산기록을 저장하기 위해서는 그에 맞는 자료구조가 필요하다
- 이를 위한 DataClass를 생성할 것이다
- 먼저 app src에 model 패키지를 생성하여 History 액티비티를 생성한다
- 그리고 Android Room 라이브러리를 사용하기 위해 Gradle에 추가하도록 하자
dependencies {
def room_version = "2.4.1"
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
// optional - RxJava2 support for Room
implementation "androidx.room:room-rxjava2:$room_version"
// optional - RxJava3 support for Room
implementation "androidx.room:room-rxjava3:$room_version"
// optional - Guava support for Room, including Optional and ListenableFuture
implementation "androidx.room:room-guava:$room_version"
// optional - Test helpers
testImplementation "androidx.room:room-testing:$room_version"
// optional - Paging 3 Integration
implementation "androidx.room:room-paging:2.4.1"
}
- 그리고 계산 기록 모델에 필요한 primary key 와 이름, 수식과 결과 값을 저장할 열을 생성해준다
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
수강인증샷
링크
728x90
'Android > Challenge' 카테고리의 다른 글
패스트캠퍼스 챌린지 32일차 (0) | 2022.02.24 |
---|---|
패스트캠퍼스 챌린지 31일차 (0) | 2022.02.23 |
패스트캠퍼스 챌린지 29일차 (0) | 2022.02.21 |
패스트캠퍼스 챌린지 28일차 (0) | 2022.02.20 |
패스트캠퍼스 챌린지 27일차 (0) | 2022.02.19 |