[TIL][내일배움캠프]

[내일배움캠프][TIL] 24.01.17 (수) - 팀 프로젝트(숙련) 3일차

kimlaurant 2024. 1. 17. 21:11
1. 팀 프로젝트(숙련) 3일차

 

팀 프로젝트를 시작한 지 어느덧 3일차가 됐다.

이제는 슬슬 앱의 윤곽이 드러나기 시작했고, 저번 과정에서 받은 피드백을 바탕으로 조금 더 나은 모습을 보여주기 위해서(주로 기록 부분이나 디자인 부분에서) 노력했다.

 

그럼 오늘의 결과물을 한 번 보도록 하자.

 

 

메시지 보내기 / 전화 걸기 기능 넣기

 

메시지 보내기와 전화 걸기 버튼이 있는데 이걸 아예 안 쓰는 것도 뭔가 이상해서 이 기능을 추가했다.

 

다만, 원래 이 두 가지는 권한 허용 설정을 해야 좋은데 지금은 어차피 더미데이터를 넣어놨기 때문에 권한 설정을 하지 않고 곧바로 이동하도록 만들었다.

 

우선, 메시지 보내기.

        binding.btnMessage.setOnClickListener {
            val message = receiveData?.phoneNum
            val intent = Intent(Intent.ACTION_VIEW)
            intent.data = Uri.parse("smsto:" + message)
            startActivity(intent)
        }

이 때, SMS 앱을 여는 기능이 바로 Intent.ACTION_VIEW이다. 

intent의 데이터에는 다음과 같이 적으면, 폰번호에 찍힌 번호가 그대로 메시지 앱에 전달된다.

 

다음 전화 걸기.

        binding.btnCall.setOnClickListener {
            val dial = receiveData?.phoneNum
            val intent = Intent(Intent.ACTION_DIAL)
            intent.data = Uri.parse("tel:" + dial)
            startActivity(intent)
        }

역시 기본 구조는 메시지 보내기와 같다.

이 때, 전화 걸기에는 2가지가 있는데 곧바로 전화를 걸어주는 ACTION_CALL, 그리고 전화를 바로 걸진 않고 전화번호가 찍힌 상태에서 연락처 앱으로 보내는 ACTION_DIAL.

 

나는 굳이 바로 전화를 걸 필요가 없다 생각해서 ACTION_DIAL을 적었다.

 

단, 전화 걸기를 수행하려면 Androidmanifest에서 다음 항목을 추가해야 한다.

    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.DIAL_PHONE" />

 

 

UI 디테일 수정

 

이제 기본적인 기능 구현들은 어느 정도 완성이 되서 이 다음부터는 UI의 디테일들을 다듬는 시간이 되었다.

 

 

우선, 1차적으로 수정한 UI이다.

 

전과 비교해서 크게 수정된 점은 3가지다.

즐겨찾기 버튼 추가, 색상을 노랑노랑하게 깔맞춤, 그리고 상태 메시지와 번호 위치 변경.

이게 가만 생각해보니 보통 앱에서 상태 메시지를 맨 위에다 표시하지 중간에 표시하지는 않아보여서 이런 식으로 변경했다.

 

 

 

그리고 이게 2차적으로 수정한 UI다.

기존의 컨셉은 유지하되 아까보다는 뭔가 더 세련되어졌다.

 

거기다 폰트도 한 번 바꾸었다.

 

 

트러블 슈팅 & 피드백

 

1. 트러블 슈팅

  • 전화번호 하이픈(-) 넣기 : 원래는 이것도 한 번 구현하려고 했는데 안 됐다. 인터넷에 검색해보니 PhoneNumberFormattingTextWatcher라는 기능이 있는데 이건 editText에서 사용 가능한 기능이더라. 그래서 다른 방법을 찾다가 도저히 안 되서 포기. (string 자체에 -를 표시하면 될 일이지만 그럴려면 data class 안에 있는 object를 전부 바꿔야 하니 보류.)
  • 네트워크 이슈 : 중간에 한 번 인터넷의 문제인지 팀원들끼리 의사소통이 원활하게 진행되지 않았다. 음성이 막 오락가락하는 느낌?

 

2. 피드백

  • 역시나 디자인에 대해서 말씀을 많이 하셨다. 그래서 이번에는 최대한 디자인 부분에서 신경을 써서 만든 것이 두 번째 수정한 UI이고.
  • 메인 프래그먼트와 상세 프래그먼트에 있는 즐겨찾기 버튼을 상호작용하는 방법을 연구 중에 있는데 이걸 실현시키려면 '데이터 무결성'이 전제조건이 되어야 한다고 하셨다. 과연 내일은 이걸 구현시킬 수 있을지….