[Android&Kotlin] - Calcurator App(계산기앱)

 

1. Project생성정보

   - Package Name : com.farmerkyh.study.calcurator

   - Language : Kotlin

   - Minimum SDK : API 23: Android 6.0 (Marshmallow)

2. Android Version정보

   - Android Studio : 4.1.2 (2020.12.20)

   - Java : 1.8.0_242

   - AVD Test API : 29

   - Kotlin Plug in version : 1.4.32-release-Sdudio4.1-1

 

3. 실행화면

   a. 버튼      

      - 자판중 맨 왼쪽.아래 시계icon이 : 계산기록 보여주기 버튼

      - [계산기록삭제] : db에 저장된 계산기록을 삭제 한다.

   b. 개발SPEC

      - 4칙 연산만 수행한다.

      - ( ) 괄호 , . (소수점) 은 제외 한다.

      - 숫자 15자리 이하만 가능하다.

      - 계산기록은 App이 종료 되어도 db에 계속 남아 있다.

         (그래서 App을 다시 실행해도 [계산이력]버튼 (시계icon)을 클릭 하면 이력을 볼 수 있다.

      - [계산기록삭제]버튼을 누르는 경우에만 계산이력을 삭제 한다.

 

4. 디렉토리 구조

5. 프로젝트 소스

    - 프로젝트 전체를 올릴 려고 했으나 10M 이상 초과 되어 파일들만 upload함   

CalcuratorA-src.zip
0.01MB

6. 각 파일 간략 설명

    a. build.gradle

 

    a. activity_main.xml

         - 계산기 주요화면 Layout

    b. history_row.xml

       - 계산이력 한줄을 보여주는 Layout

    c. history_view_icon.xml

       - vector형 icon

       - 생성방식 : drawable > Right mouse > New > Vector Asset

    d. drawable>button_background.xml

       drawable>button_background_green.xml

       - 버튼 background용

 

    a. HistoryDao.kt

        - @Dao

        - Room에 연결된 dao

    b. History.kt

       - @Entity

       - data class

    c. AppDatabase.kt

       - @Database

       - Database class로 생성

    d. MainActivity.kt

 

7. 소스별 상세 설명

    a. build.gradle

       - viewbinding을 사용하기 위해 gradle  변경

       - room db를 사용하기 위해 gradle  변경

 

    a. activity_main.xml

         - 계산기 주요화면 Layout

 

    b. history_row.xml

       - 계산이력 한줄을 보여주는 Layout

       - 계산식과 계산식에 대한 결과를 보여주는 TextView 2개만 존재

       - activity_main.xml의 LinearLayout.addView( )를 이용해서 계산이력을 한줄 한줄 추가해준다. 

    c. history_view_icon.xml

       - vector형 icon

       - 생성방식 : drawable > Right mouse > New > Vector Asset

    d. drawable>button_background.xml

       drawable>button_background_green.xml

       - 버튼 background용

 

    a. HistoryDao.kt

        - @Dao

        - Room에 연결된 dao

    b. History.kt

       - @Entity

       - data class

    c. AppDatabase.kt

       - @Database

       - Database class로 생성

    d. MainActivity.kt

     

 

 

 

 

 

 

Posted by 농부지기
,