[프로젝트] 안드로이드 앱 개발 구상

개요

개발자로써 커리어를 App 개발로 정했고, 시작으로 간단한 프로젝트를 진행한다.
이전에 앱 개발을 해본 경험을 바탕으로 프로토타입용 앱을 개발하려고 한다.

기획과 디자인, 개발 모두 1인으로 진행한다.
짧은 시간과 1인 프로젝트인 만큼 toy 프로젝트 형식으로 간단하게 개발한다.

1. 어떤 개발을 할 것인가?

짧은 시간제한과 의미있는 프로젝트를 위해 몇 가지 고려해야할 사항이 있다.

  • 어떤 개발환경으로 진행할 것인가? (language, DB, logger, error handling..)
  • 어떤 어플을 만들것인가?

수익구조나 타겟층같은 내용도 고려해야 하지만 toy 프로젝트이므로 그런점은 감안하고 진행한다.

어떤 개발환경으로 진행할 것인가?
  1. 개발언어 : Kotlin

    • 2017 Google이 선정한 Android 대표 개발언어. 객체지향 언어라 기존 JAVA 개발과 흡사하며 코드가 간결하다.
  2. DB : SQLite

    • Android 개발시에 사용할 DB. 마지막 개발한지 몇년이 지나서 아직도 이걸 쓰는지 모르겠다
    • Realm 도 검토예정
  3. Server : AWS

    • $0.88 매달 내면서 이용중인 개인서버가 있다. 유저가 로컬만 사용하는 어플이 아니어서 회원가입, 로그인 등에 이용가능할듯

기타 사항은 만들면서 추가 예정

어떤 어플을 만들 것인가?

1인개발의 장점을 살리기 위해서는 화려한 기능보다는 적은 기능에 집중하는게 좋다.
아이디어를 고민하던 중 친구의 도움을 받아 일정 관리 어플을 만들어보기로 했다.

1
2
3
4
5
6
7
8
9
10
11
12
13
<챙겼나요?>

- 특정 날짜를 지정해서 한줄메모를 계속 추가할 수 있음
- 위젯으로 각 날자에 써놓은 항목을 배경화면이나 잠금화면 위에 띄울수있음
- 각 항목을 클릭하면 삭제선그어짐

ex)
10월 18일
- 우산(삭제선)
- 대강당 교육 오후 2시
- xx한테 돈보냄?(삭제선)

앱은 기능이 많으면 안되고 최대한 단촐하게. 추가한다면 알람정도

일정 관리 어플 장점

  • 구글 Keep 메모, MS 원노트, 에버노트, 리마인더 등 먼저 있었던 앱들을 참고할수 있다.
  • 유저마다 원하는 일정 관리의 형태가 달라 특정 사용자층을 노릴 수 있다
  • 간단하다
  • 실생활에 접목하기 쉽다

일정 관리 어플 단점

  • 시장에 비슷한 어플이 너무 많아 굳이 쓸 이유가 없다
  • 너무…많다…

기존 앱들을 사용해보고 불편했던점을 종합해서 요구사항으로 반영해보기로 했다.

2. 어플 기능 정리

  • 요구사항 정의

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    - 메모가 가능해야함
    - 가독성이 용이해야함
    - 수정이 용이해야함 / 채팅형 방식도 고민중
    - 다음날짜로 넘어갈경우(24:00 이후) 안에 내용도 모두 다음날짜 내용으로 바뀌어야함
    - 위젯이 가능해야함. 4x2 ~ 5x5 대응
    - 이전 날짜에 있던 모든 일정은 보이지 않아야함(기본)
    - [메모 유지] Flag 가 On 되어있을경우 다음날짜로 일정이 넘어감 (선택)

    - 검색창에 내 할일을 찾으면 찾을 수 있어야함 (추가기능)
    - 리마인더, 구글캘린더와 연동이 가능해야함 (추가기능)
    - 스마트워치와 연동가능해야함 (추가기능)
    - 백업이 가능해야함 (추가기능)
    - 잠금화면 위에 위젯이 올라와야함 (추가기능)
    - AOD 위로 올라와야함 (추가기능)
    - 알림이 가능해야함 (추가기능)
  • 기능 정의

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    - 메인 화면 구현
    - 메인화면 상단 달력 바 구현
    - 날짜 클릭 시 해당 날짜의 일정 출현 기능 구현
    - 이전 주 / 다음 주 슬라이드 이동 기능 구현
    - 월 누르면 월 선택할수있는 박스 기능 구현
    - 해당 월의 가장 뒤 날짜로 이동 기능 구현(이번달은 오늘날짜)
    - # 아래 bar 클릭시 달력 출현 기능 구현 (추가기능)

    - 메인화면 하단 일정 관리 화면 구현
    - 체크박스 기능 구현 (체크할시 취소선)
    - 우측에 휴지통 버튼 구현 (클릭시 일정 삭제)
    - 최하단 메모 추가 버튼 구현 (클릭시 일정추가화면으로 이동)
    - 무한 기능이 들어간 일정의 경우 글자색이 바뀜

    - 위젯 화면 구현
    - 위젯 화면 상단 소형 달력 화면 구현
    - 이전 날 / 다음 날 버튼 기능 구현
    - 오늘 날짜 표시 기능 구현
    - 오늘 날짜로 돌아가기 버튼 구현
    - 일정 추가 버튼 구현
    - 다양한 크기가 가능해야함

    - 위젯 하단 일정 화면 구현
    - 당일의 일정 리스트 가져오기 기능 구현
    - 취소선이 그어진 일정은 가져오지 않음
    - 체크박스 기능 구현
    - 체크박스 클릭시 3초뒤에 위젯에서 삭제

    - 일정 추가 화면 구현
    - 뒤로가기 버튼 구현
    - 메모 작성칸 구현
    - 화면 진입시 오토포커스
    - 클릭시 키보드 출현, 내용 입력 가능
    - 날짜 기능 구현
    - 오늘 날짜 표시 기능 구현
    - 이전 날 / 다음 날 버튼 기능 구현
    - 하단에 취소 / 저장 버튼 구현
    - 저장 기능 구현
    - 저장시 해당된 날짜 기준으로 메모 내용 저장
    - 무한 버튼 구현
    - 무한 버튼이 활성화 되어있을경우 다음날로 넘어가면 다음날에 해당 일정이 추가됨
  • 디자인 정의
    앱 디자인화면
    Oven.io 로 구현했다. 프로토타입 디자인하기에 최적의 사이트.

    1. 메인화면
    2. 위젯화면
    3. 일정추가 화면

    크게 3개로 분류했고 [해당일정 관리화면]이 따로 필요할 경우 추가예정

공유하기