[모바일 프로그래밍]안드로이드 스튜디오로 루틴앱 만들기

목차

  1. 간단설명
  2. 앱 화면 및 기능
  3. 후기 및 앱 영상

제가 기말 과제로 만든 애플리케이션을 올려보려합니다.

많이 부족한 앱이지만 이 앱으로 발표를 통해 A+를 받은 앱이고, 모든 과목중에서 가장 열심히 한 앱인지라 애정이 가는 앱이였습니다. 물론...Chat GPT의 힘도 많이 빌렸습니다..

 

개발하게된 이유

저는 기계처럼 살고 있습니다. 항상 6시에 운동을가고(이게 제일힘듬) 9시에는 등교,출근(학기중, 방학땐 알바)를 하며 5시에는 하교, 퇴근을 하고 저녁먹고서는 게임을 하고 밤12시에 잠에드는 일상의 반복입니다. 하지만 저도 사람인지라 스스로 시간맞춰 일어나거나 시간을 일일이 확인하는데에는 벅차서 앱을 통해 제 일상에 도움이 되는 앱을 만들자 생각했습니다.

 

 


1. 간단설명

알람앱을 조금 변형시켜 만든 앱으로, 알람을 루틴이라는 주제로 바꾸어 만들었습니다. 다음 해야할 일을 표시해주고, 그 전에 일은 다 했는지, 추가시킬 루틴이 있는지 있다면 추가시키거나 삭제도 가능한 앱입니다.


2. 앱 화면 및 기능설명

(1) 메인메뉴

첫 메인메뉴

앱을 처음 키면 이런 화면이 나옵니다.

현재 시간이 얼마나 흘렀는지, 다음 루틴은 무엇인지, 달력을 통해 오늘 날짜를 확인할 수 있게 구성하였습니다.

 

슬라이딩 메뉴

안드로이드 스튜디오 자체에 미리 구현되어있던 메뉴인데, 따로 건들 수 있는 방법을 찾기엔 시간이 촉박하여 기존 메뉴에서 이름만 바꾸어 만들었습니다. 루틴설정과 달성도 메뉴로 이동 할 수 있도록 되어있습니다.

 

(2) 루틴설정

루틴설정

루틴설정 화면입니다. 알람처럼 루틴의 시간, 이름, 요일, 활성화스위치, 삭제버튼으로 이루어진 객체를 UI로 표시하여 구현하였습니다.

여기를 구현하는데에만 총 개발시간에 40%가 들어간 것 같습니다.

 

밑에 루틴추가 버튼을 누르면 추가할 수 있는 화면으로 넘어가게 됩니다.

루틴 추가 화면

-타임피커로 시간을 설정합니다.

-밑에 요일은 토글버튼으로 선택시 사진과같이 초록색으로 표시하게 했습니다.

-텍스트 박스에는 루틴의 이름을 설정합니다.

설정한대로 루틴을 추가하려하면 저장하기를, 취소하려면 취소하기버튼을 선택하면 됩니다.

 

 

 

(3) 달성도 메뉴

달성도 메뉴

이곳엔 달성도 메뉴입니다. 위 사진에는 없지만 처음 앱을 키면 현재 시스템시간보다 전으로 설정되어있는 루틴들의 목록의 팝업창이 나옵니다. 팝업창에서 그 루틴들을 이행했는지 체크를 하고 확인을 하면 카운트가 되는데, 그 카운트가 그 날의 루틴의 갯수와 똑같다면 이행. (모두 체크했다면 그 루틴을 모두 했다는 의미) 갯수가 안맞으면 사진과 같이 미이행으로 표시됩니다.

여기 목록에는 시스템 시간이 00시가 되면 자동으로 추가됩니다.

 

그 위에 이행률은 저 목록들중에 이행인 것들의 갯수로 이행률을 계산하여 표시합니다.

 

안드로이드 스튜디오 시스템 시간이 아무리 바꾸려해도 현실시간으로 아침 9시인가 10시가 되어야지 00시가 되더라구요.. 그래서 해당 기능은 제대로 테스트하지 못해서 모두 미이행으로 되었는데.. 저 이런 게으른 사람 아닙니다..ㅠㅠ

할 일이 많아서 그 시간에 테스트하지 못한거임 암튼그럼

 

 

3. 앱 영상 및 후기

메인메뉴 화면

메인메뉴

루틴설정 화면

루틴설정 화면

루틴 추가 화면

루틴추가 화면

 

달성도 화면

달성도 화면

 

별거 아닌 앱이지만 제 나름 만족해서 구현한 앱 이였습니다.

가장 만족스러웠던것은 루틴 설정화면에 루틴의 UI들의 객체입니다.

 

객체를 통해서 UI로 표시했다고 했는데 이게 제 루틴의 Class 객체입니다.

루틴 클래스

루틴 추가화면에서 이 클래스로 객체를 생성해서 RoutineAdapter라는 클래스에서 이것저것 UI를 꾸미고 해당 루틴을 삭제할 수 있는 삭제버튼까지 추가해서 화면에 UI로 띄우는 구조입니다. 

 

XML코드들

XML코드들

XML코드들입니다. 지금 보니 어떻게 했지 싶네요.

 

 

그래도 시간을 박으면 어떻게든 되네요. 이상입니다.

 

읽어주셔서 감사합니다. 코드와 관련한 내용은 다음글에 쓰겠습니다.