주간 진행 보고서 (3월 3주차)

2019.03.19


아이피 정보 변경 다이얼로그의 기능을 1차적으로 구현하였다.

메인 화면에서 MRM이 서버와 잘 연결되어 있는지 확인하기 위해 연결 상태를 표시해주는 텍스트뷰를 추가했었는데 그 위에 현재 설정한 아이피 주소와 포트번호 정보를 보여주는 텍스트뷰를 하나 더 추가하여 메인화면에서 즉각적으로 정보를 확인할 수 있도록 하였다.

또, 조이스틱부 화면을 설정하기 위해 기본적인 개념을 공부하였는데 생각보다 복잡한 내용으로 구성되어 있었다.

기존의 View는 onDraw 메소드를 이용하여 시스템에서 화면 그리기를 하게 되어 있는데 이처럼 움직임이 많을 수 있는 View 같은 경우에는 SurfaceView를 사용해야만 원하는 시점에 바로 화면에 그릴 수 있다고 해서 조이스틱을 비롯해 나중에 카메라 화면을 표시할 때도 이 기능을 연구해서 사용해보아야겠다.

우선, 오늘 아이피 정보 변경 다이얼로그의 기능을 구현하면서 EditText와 관련한 문제들을 직면했는데 아이피 주소와 포트번호를 입력하지 않은 경우 또는 아이피 주소 형식이 잘못된 경우에 대한 예외처리를 해야 했다.

입력하지 않은 경우를 제외하고는 숫자와 온점(.)만을 입력해야만 하는데 온점의 개수와 위치 등을 파악해야 하는 경우도 있어서 이 부분은 중요하다기보다는 선택적인 부분이라 나중에 많은 부분이 완료되면 그 때 추가하는 걸로 해야겠다.

또, 엔터키 방지와 int의 최대 표현 길이를 넘지 않도록 SingleLine과 MaxLength를 제한하였다.

마지막으로, 조이스틱 UI를 연구하는 부분에 있어서 직접 SurfaceView 위에 하나부터 열까지 다 그리는 방식도 있겠지만 오픈소스를 이용하는 방법도 있는 것 같아 어떤 방법을 쓰는 것이 좋을지 고려해봐야 할 것 같다.



2019.03.20


기존에 이어서 환경설정 다이얼로그의 기본 형태를 구성했다.

환경설정 다이얼로그는 특별한 취소 버튼 없이 단순히 토글키 또는 선택지 버튼 표시만을 배치한 간단한 형태로 만들려고 계획중이고 이를 안드로이드의 SQLiteDatabase와 연동하여 앱 종료 후 새로 시작하더라도 기존의 설정 값을 유지하는 방향으로 하려고 한다.

저번에 월간 계획표를 간단하게 짰었는데 오늘은 월간 계획표를 세부사항으로 나누어 일간 계획표 형식으로 정리했다.

앞으로 남은 기간 동안에 어떤 방향으로 진행할 지에 대해 쉽게 확인 할 수 있을 것 같다.

환경설정 다이얼로그의 기본 형태를 구성하는 부분에서는 특별히 어려운 것은 없었던 것 같다.

다만, 월간 계획표를 세부사항으로 나누어 일간 계획표 형식으로 정리하는 시간이 너무 길어지다보니 앱 작업에는 많은 시간을 쏟을 수가 없었다.

그래도 일간 계획표를 짜놓고 보니 앞으로 무엇을 어떻게, 언제까지 하면 좋을 지, 필요한 일을 못 했을 경우에 예비 기간은 얼마나 있을 지 등 앞으로의 계획을 제대로 확인할 수 있다는 점에서 미리 했어야 했는데 늦게 하게 되어 지금이라도 정해진 계획표에 따라 제대로 실습할 수 있도록 해야겠다.


2019.03.21


환경설정 다이얼로그의 구체적인 부분들을 구성하기 시작했다.

오늘과 내일 사이에 기본적인 버튼을 만들고 세부적인 기능은 차후 WebioPi와 연동했을 때 추가할 예정이다.

작동 모드, 카메라 기능 On/Off, 데이터 자동 저장 기능 On/Off, 데이터 저장 주기에 대한 선택 버튼으로 구성하였는데 기본으로 제공되는 버튼과 토글 키 디자인을 새롭게 하기 위해 커스텀 버튼 형식으로 만들었다.

이를 위해서 Drawable 폴더에 xml 파일을 하나 추가하였는데 이 안에 버튼이 클릭 되었을 경우와 클릭되지 않았을 경우에 어떤 그림으로 표시될 지에 대한 내용을 담았다.

이번에 커스텀 라디오 버튼을 만들기 위해 아이콘을 직접 제작하여 Drawable 폴더에 추가하였고 안드로이드 스튜디오에서 쓰이는 파일은 이름이 숫자로 시작하면 안 된다는 것을 처음으로 알게 되었다.

이는 툴 자체 내에 정해진 규칙인 것 같고 숫자 뿐만 아니라 기호로 시작되는 이름을 가져서도 안 되는 것 같다.

이후, 토글 버튼을 설정하는 과정 중에서도 오류가 하나 발생했는데 On/Off 처리 확인을 위해 Toast 메세지를 출력하도록 했지만 계속 똑같은 메세지만 출력하고 변화가 생기지 않았다.

나중에 보니 토글 버튼을 조건에 따라 직접 setChecked 해주지 않아도 알아서 변경되는데 라디오 버튼처럼 변화를 주려다보니 생긴 문제였다는 것을 깨달았다.

또, 항상 setOnClickListener로만 클릭 시에 변화를 확인했지만 setOnCheckedChangeListener를 이용하여 변화가 생겼을 경우에 특정 명령을 줄 수 있는 기능도 있다는 것을 공부할 수 있었다.



2019.03.22


한이음 ICT멘토링 프로젝트 계획서를 작성하였다.

현재 캡스톤디자인과 현장실습을 병행하고 있는데 비슷한 느낌으로 외부 프로젝트에도 도전해보려고 한다.

현재 실습하고 있는 회사에서 도와주시는 부분들이 많아 3개를 모두 병행할 수 있을 것 같다.

물론, 그 세 가지가 전체적인 한 가지를 수행하는 것이긴 하지만 필요에 따라 차이점을 조금씩 두는 것이 개인적인 발전에 도움이 될 것 같다.

오늘은 프로젝트 계획서를 작성하는데 대부분의 시간을 보냈기 때문에 프로젝트 관련 결과는 나오지 않았다.

계획서를 상세하게 작성하다보니 하루종일 시간을 그곳에 할애할 수 밖에 없었다.

그래도 내용이 유사하다보니 계획서를 작성하면서 지금 만들어야 할 프로젝트에 대한 전반적인 느낌을 다시 한 번 정리할 수 있었다.

Author

Alec J

Posted on

2019-05-04

Updated on

2021-02-09

Licensed under