Glacier's Daily Log

Android) 안드로이드 어플 개발자로 살아본 후기 1편, 의무경찰 성적표 앱 개발기 본문

Coding/Android

Android) 안드로이드 어플 개발자로 살아본 후기 1편, 의무경찰 성적표 앱 개발기

h__glacier_ 2020. 5. 9. 13:38
반응형

 

내 플레이 디벨로퍼 콘솔

3월달 쯤 부터, 안드로이드 개발 공부를 시작한 나는,

한달 반 기간 정도 동안 3개의 어플리케이션을 출시했다.

 

1달 독학 한 것 치고는 정말 만족스러운 결과물들 이였고,

특히 의무경찰 성적표 어플 (의무경찰 전역일 계산기) 는

동료들에게 엄청난 반응을 얻었고, 또한 다운로드 수도 첫 작품 치고 굉장히 많았다.

 

https://play.google.com/store/apps/developer?id=Glacier+Han

 

Google Play의 Glacier Han 개발자 Android 앱

수백만 개의 최신 Android 앱, 게임, 음악, 영화, TV 프로그램, 도서, 잡지 등을 즐기세요. 기기 간에 공유되어 언제 어디서든 이용할 수 있습니다.

play.google.com

 

따라서, 어플을 직접 백지에서 부터 개발하고, 완성하고, 스토어에 업로드하고, 광고 수익도 받아보고, 어플 유지보수

까지 하는, 완벽한 개발자 간접 체험을 해보았다.

 

비록 4월 중순부터 애드몹 계정이 제제를 받는 바람에, 흥미가 떨어져서 건드리지 않았지만

한달동안 내가 느낀 개발자의 삶은 "쉽지않다" 였다.

 

우선, 가장 사용자가 많은 의무경찰 전역일 계산기 - 의무경찰 성적표 어플이다.

옆에 클래스 리스트를 보면 알겠지만

상당히 간단한 구조로 되어있다.

 

인트로 화면이 있고, 메인화면, 결과창, 바탕화면위젯

으로 이루어져있다.

 

실질적으로 사용되는 부분은 결과창이 전부이다.

 

왜냐하면, 사용자가 젤 처음 어플을 설치해서, 메인화면에서 자신의 정보를 입력하면

다음 실행시 부터는, 휴대폰 저장공간에 DB를 기록해서

메인화면으로 안넘어가고 바로 결과창으로 자동완성 해주는 기능을 넣었기 때문에

 

사용자가 이 어플을 사용하면서 실질적으로 확인 하는 부분은 결과창이 전부이다.

 

이렇게 간단한 로직을 가진 어플도

사용자가 100명을 넘어가니

 

이렇게 예상치 못한 비정상 종료와 버그들이 들끓었다.

다행히도 내 앱이 정말 간단한 로직을 가지고 있어서

저 한번 피크를 친 버그는 바로 해결 할 수 있었다.

 

메인창에서 정보를 입력받아서

결과창으로 intent와 SharedPreferences 를 이용해 정보를 넘겨주는 방식인데,

사용자가 실수로 메인창에 아무것도 입력하지 않은 상태에서

결과보기 버튼을 누를시에 어플이 강제종료 되는 버그가 있었던 것이다.

 

//자동완성기능 구현 1) (if 저장된 값이 있으면 알림창과 함께 자동완성 후 자동으로 넘어감)
        if (startdate.getText().toString().length() == 0 && enddate.getText().toString().length() == 0 && nameedit.getText().toString().length() == 0 && classedit.getText().toString().length() == 0
                && kisooedit.getText().toString().length() == 0 && leveledit.getText().toString().length() == 0) {
            Toast.makeText(MainActivity.this, "정보를 입력하세요.", Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(MainActivity.this, "저장된 대원정보를 불러옵니다.", Toast.LENGTH_SHORT).show();
            Toast.makeText(MainActivity.this, "오늘은 " + todview + " 입니다.\n 꿀같은 하루 보내십시오!", Toast.LENGTH_LONG).show();
            b1.performClick();
        }

따라서 코드를 이와같이 변경하였다.

조건문을 사용해서, textarea에 입력된 값이 없을때 -> textbox.getText().toString().length()

정보를 입력하라는 토스트 메세지를 띄우는 형식으로 변경하니까

비정상 종료가 바로 줄어드는 모습을 볼 수 있었다.

 

이렇게 내가 만든 앱을 유지보수 하는 것도 굉장히 큰 경험이였 던것 같다.

 

하지만 다른 고질적인 버그가 있었는데,

이 버그를 찾는데 고생했다..

 

글이 너무 길어지는 것 같아서

이 내용은 다음 포스팅에서 다루어 보도록 하겠다.

 

 

반응형
Comments