본문 바로가기

Andriod_Java

[안드로이드/java] MBTI 수강신청 앱 제작 기획단계 (3개월 차..) | 학기말 앱개발 프로젝트

학교 수업 '모바일 프로그래밍' 과목을 수강하면서

"기말 팀 프로젝트!!!" mission이 주어졌습니다. ( 안드로이드 배운지 2개월 채 안됬는데..)

 

- 기간은 1달 이상으로 넉넉했지만 다른 시험때매.. 최대 2~3주로 잡고 앱 제작을 하기로 결심했습니다.

 

절망하던 중에 친구가 제안한 '수강신청' topic!

 

이 주제를 토대로 뭔가 더 사용자를 끌어들일 방법이 없을까 고민하던 중 ...

MBTI 키워드를 접합해서 사용자에게 직접 MBTI 별로 재밌어 할 수강 과목을 추천해주는 앱 제작

친구, 형 , 저 총 3명이서 기획하고 제작했습니다. +_+

Initial App Plan_

뒤에 더 많은 Activity를 설계했지만 사진이 많아서 pass!!

 

배운것을 토대로 activity, fragment, bottomNavigationBar 등을 활용해서 최소 6개의 Activity를 구성했습니다.

카페랑 동아리 방 등 여러곳에서 초기 기획을 5~7차례 논의 한 끝에 최종 기획안을 구성했습니다.

 

(

이렇게 오래 걸릴줄이야.. 앱 제작 기획을 구성한답시고... 3~6번 만나서 토의를..

한 일주일 정도를 기획에 투자해버렸습니다. ㅋㅋ;;

) // 아닛 개발 습관이 여기서?!

App Plan_

이렇게 View를 전체적으로 기획했고

세부적인 알고리즘, 로직이 어떤것이 필요한지 홈 BottomNavigationView를 통해서 세부적으로 기획했습니다.

(노란색은 화면개수)

호호호.. 아이디어는 넘치고 넘치지

About Cooperation Planning_

이제 문제는 각자 개발해야 할 코드를 어떻게 합칠 것인지가 문제였습니다.

너무나도 당연하게 제 머릿속에서는 협업?! == Github 를 써야쥐!! 라는 생각과 함께 Github을 통해 원격 repository로 관리하자고 제안했고 OK되었습니다.

또한 MVVM, MVC, MVP 등 아키택처 패턴을 책을 통해 공부를 했지만 무난하게..

MVC 패턴을 적용해 개발하기로 했습니다.

 

(

아아 잊고 있었는데 ,,,

팀원이 알려준 DTO 개념과 떠오른 VO... 

이들의 분류 방법을 파악해 이 개념을 도입해서 Model을 구성하기로 했습니다.

 

- 추가적으로 발표할 때 교수님이 알려주신 DAO 개념은 숙지만..-

)

 

그리고 기능 구현시 or 변수 생성 시 반드시 Code Review를 통해 추후 알아볼 수 있게끔 코드를 작성하기로 선언했습니다!!

 

대략적으로.

친구가 백엔드를 쫌 해서 

1. 울 학교 과목 list를 JSON형식으로 만들고 JSP를 통해 JSON serializable로 파싱을 한다.

2. 초기 시작 시에 mbti를 알고 있는지 유무 파악을 해서 

         -알고 있는 경우 : mbti 입력, while(input == mbti 유형) { 맞는거 입력 안 할 때까지 다음 화면 안넘어갈거야~}

                 -이때 예외처리 기능을 구현했다.

         -모를 경우         :  약 12가지의 질문을 통해 자신에 맞는 MBTI 유형을 탐색한다.

                 -이때 mbti Algorithm이 들어간다.

                   ( 맨 처음에 12개 질문만해도 최소 2^12 경우의 수 어떻게 판별할지 무척 해맸는데..

                     다행히 알고리즘이 있어 이해하고 적용시켰다.)

3. user info 입력 후 완료 버튼 누를 시 추천된 mbti 별 재밌어 할 수강 과목을 3~5개를 보여준다.

    이때 사용자는 원하는 것을 찾아 계속적으로 추천 받을 수 있다!! ( 추후 추가 구현..)

4. 3 이 완료될 경우 홈화면으로 가서 시간표를 구현한다.

5. mbti에 대한 리스트와 detail 특징을 보여준다 ( 추후 추가 구현..)

6. 이전 학기에 대한 시간표를 구성할 수 있다. ( 수강과목이 현재 1학기여서 1학기꺼 밖에 정보를 얻을 수 없어 1학기만!! ( 1,2,3,4학년)

 

개발 과정은 생략 다음 글은 앱 제작 후기로 찾아뵙겠습니다.

 

- 무척 에러도 많이났지만,, github pull request 하는데 애먹었지만 하다보니 익숙해져버렸다. - 

- Swift보다 android studio java가 익숙해진건 뭐지..

 

enter my github : https://github.com/SHcommit/TimetableApplication