맨땅에 코딩

객체지향프로그래밍 실화인가 - '학습의 숲' 본문

KAU 2023 (2학년)/객체지향프로그래밍

객체지향프로그래밍 실화인가 - '학습의 숲'

나는 푸딩 2024. 7. 9. 17:50
🍀 ‘학습의 숲’ 줄여서 ‘학숲’ 애플리케이션은 자신만의 고유한 학습 일정과 시간표를 저장하고, 동시에 공부 시간에 따른 열매를 생성 시키는 기능이 있습니다. 일정 공부 시간이 지나면 생기는 열매를 통해 공부를 하고자 하는 사용자들이 성취감을 얻을 수 있도록 도와줍니다.

프로젝트 기간 📅

2023. 10. 31 - 2023. 12. 05

애플리케이션 화면 및 기능 📱

 

 
1. 일정

  • 캘린더
  • 오늘의 날짜를 누르면 본인이 추가한 할 일을 볼 수 있음

2. 오늘의 할 일

  • 할 일 추가
  • 할 일 수정
  • 할 일 삭제

3. 공부 시간 기록

  • 공부할 과목 추가
  • 타이머

4. 오늘의 나무

  • 공부 시간이 1시간이 될때마다 나무에 과일이 생성됨(공부 시간 기록 타이머 기준)

5. 나의 시간표

  • 강의 추가(강의명, 교수명, 요일, 시간)
  • 강의 삭제

6. 과일 누적 랭킹

  • 오늘의 나무에 추가된 과일 수를 기준으로 앱 사용자들의 순위, 총 과일 개수를 볼 수 있음
  • 닉네임으로 사용자를 검색하면 그 사용자의 정보를 확인할 수 있음

7. 기타

  • 인트로
  • 로그인, 로그아웃
  • 메뉴

* 굵은 글씨로 표시된 기능은 필자가 개발한 기능입니다.
 

사용 언어 및 개발 환경 🛠️

Kotlin, Android Studio, Firebase
 

개발 시 적용한 패턴 📖

MVVM이란?

MVVM(Model-View-ViewModel)은 소프트웨어 아키텍처 패턴 중 하나로, 애플리케이션의 로직과 UI를 분리하기 위해 사용된다. MVVM은 크게 세 가지 구성 요소로 나눌 수 있다.

  1. Model: Model은 비즈니스 로직을 처리하고 데이터를 관리하는 역할을 한다. 이는 일반적으로 데이터베이스, 네트워크 또는 디스크와 같은 데이터 소스와 상호 작용하며, 애플리케이션의 상태와 동작을 관리한다.
  2. View: View는 사용자에게 보여지는 UI를 담당한다. 사용자의 입력을 받아 처리하고, 사용자에게 정보를 표시한다. View는 ViewModel로부터 데이터를 받아 사용자에게 표시하며, 사용자의 입력을 ViewModel에 전달한다.
  3. ViewModel: ViewModel은 Model과 View 사이의 연결 역할을 한다. ViewModel은 View를 위한 데이터를 준비하고 이를 View에 제공한다. 또한 View로부터 사용자의 입력을 받아 이를 처리하거나 Model에 전달한다. ViewModel은 View의 생명주기와 독립적이므로, 화면 회전 등의 구성 변경이 발생해도 데이터를 유지할 수 있다.

MVVM 패턴의 장점

  • MVVM은 애플리케이션의 구성 요소를 명확하게 분리하여 코드의 가독성과 유지보수성을 향상시킨다.
  • ViewModel은 View와 분리되어 있으므로, UI 없이 ViewModel의 테스트가 가능하다.
  • ViewModel과 View 사이의 데이터 바인딩을 통해 UI를 자동으로 업데이트할 수 있다.
    이를 통해 UI 코드를 줄일 수 있다.

프로젝트 후기 😊

단기간에 개발할 수 있을 것이라고 생각 못했는데, 해냈다..
내가 팀원들을 볼때마다 했니? 다 했니? 라고 겁을 줬기 때문(?)
근데 또 해와달라고한대로 또 다 해오는 이 대단한 친구들👍🏻
시간표 개발할 때 진짜 힘들었고.. 성공했을 때 진짜 진짜 진짜 기뻤다 호호
Android Studio를 할줄 모르고, Kotlin도 할줄 모르고 시작했더니 정말 힘들었던 것 같아서...
방학 때  Kotlin이랑 Android Studio로 앱 간단한 거 만들어보고 객체를 들으면 정말 정말 좋을 것 같다.....
(재수강 하는 사람 꽤 많아요...ㅜ)