학교 수업 '모바일 프로그래밍' 과목을 수강하면서
"기말 팀 프로젝트!!!" 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