- 공통과제 I (6/29 ~ 7/5) - 탭 구조를 활용한 안드로이드 앱 제작 목적: 서로 함께 공통의 과제를 함으로써, 개발에 빠르게 익숙해지기
- 결과물: 세 개의 탭이 존재하는 안드로이드 앱
- 탭 1: 나의 연락처 구축. 휴대폰의 연락처 데이터를 활용하거나, JSON 형식을 이용해서 임의의 연락처 데이터를 구축. (추천: ListView나 RecyclerView 등을 이용해서 데이터 보여 주기)
- 탭 2: 나만의 이미지 갤러리 구축. 이미지는 대략 20개 정도.
- 탭 3: 자유 주제
- 첫날 해야 하는 일: Android Studio 설치하기, Hello World 띄워 보기
- 과제 중 추가로 해야 할 일 - 협업을 위한 도구 사용
- Git에 대한 이해도 높이기
- github.com에서 퍼블릭 프로젝트로 운영하는 것을 권고 (실제로 현업에서 많이 사용되기에)
IDE: Android Studio
Language: java
minSdk: 24
targetSdk: 33
Hardware: Galaxy S7 (Android 8.0.0)
- 공통: 탭 레이아웃 작성
- 김창완: 탭1, 탭3
- 엄창용: 탭2, git 사용법 공부
앱을 실행하기 전, 연락처 권한을 허용 받기 위한 팝업 제시. 사용자가 거부할 경우 앱 실행을 종료한다.
- 휴대폰에 저장되어 있는 연락처를 List 형태로 저장해서 화면에 보여줌. (ListView 사용)
- 짧게 누를 시, 해당 연락처로 전화를 바로 걸 수 있는 다이얼 화면으로 전환.
- 길게 누를 시, 해당 연락처를 삭제. (위 사진에서는 Jamie 연락처를 삭제함.)
앱을 통한 연락처 수정이 있을 때마다 ListView를 새로고침하여 실시간으로 변경된 정보 확인 가능.
또한, 연락처 수정으로 인해 연락처 목록 순서가 바뀌더라도 알맞게 전화가 걸리는 모습을 확인 가능.
상단의 입력 칸에 이름과 전화번호를 쓰고 "연락처 추가" 버튼을 누르면 해당 정보로 연락처 추가. 전화번호를 적는 EditText는 편의를 위해 숫자만 입력하더라도 010-xxxx-xxxx 형식으로 알아서 맞춰지게끔 구현함.
- 연락처 프로필 사진, 메모, 이메일 등 더 다양한 기능을 구현해야 함.
- EditText와 Button의 width를 pixel 단위가 아닌 weight 비율로 구현해야 함.
- "사진" 탭을 누르면 빈 화면으로 시작.
- "불러오기" 버튼을 누르면 휴대폰 내부저장소에서 사진 파일을 고를 수 있음.
- "포토" 버튼을 누르면 휴대폰 갤러리에서 사진을 선택할 수 있음.
- 선택된 사진은 갤러리 형태로 화면에 나타남. (GridView 사용)
- 메인 화면에서 원하는 사진을 한 번 더 누르면, 해당 사진 탭이 나옴.
- "삭제" 버튼을 누르고 삭제를 원하는 사진을 누르면 해당 사진은 메인 화면에서 없어짐.
- 사진 추가는 원하는 만큼 가능함.
- 앱을 재실행했을 때 갤러리가 초기화되는 문제 해결해야 함. -> SQLite로 구현 시도 중
네이버 국어사전을 연결해 사용자가 원하는 단어 검색을 할 수 있게끔 구현. (WebView 사용)
단, 기기가 인터넷에 연결되어 있어야 함.
- 탭1, 탭2에 시간을 뺏겨 탭3를 다소 단순한 주제로 잡음. WebView는 기능 구현이 간단해서 탭3에 시간을 쏟지 못한 것이 아쉬움.
김창완: 안드로이드 스튜디오와 java 언어를 거의 처음 다뤄봐서 우여곡절이 많았지만, 결국 과제를 해내긴 해서 뿌듯했다. 이해보단 우선 구현을 목표로 개발을 했는데, 이제 전체적인 느낌을 알게 됐으니 나중에는 원리 위주로 코드를 이해하고 싶다. 그리고 기능을 구현하기도 벅차 디자인을 소홀히 한 부분과 git이 익숙하지 않아 공동작업에 어려움을 겪은 게 많이 아쉽다.
엄창용: "다시는 어플 느리다고 욕하지 않겠습니다. 다시는 어플 기능 적다고 욕하지 않겠습니다." 아직 못다한 문제들이 남았지만 이런 것들을 해결하고자 하는 과정에서 많이 배웠던 것 같다.
김창완 GIST - [email protected]
엄창용 KAIST - [email protected]