본문 바로가기

Android/현업에 투입되기위한 STUDY

0710 2일차 AlramStudy project 컨설팅



  • 'Why'라는 고민을 항상하자!  → 싱글톤은 왜 해야할까? setHasOptionsMenu( )를 왜 해야하지? 등등
  • 자바를 숙달하자. 어떤 프로젝트던지 언어때문에 막히는 일은 없어야한다.
  • 항상 일의 우선순위를 정하자!
현재로서는,  API 문서보기 > project 구현
  이론과 개념 > 코드 구현
  • 이 스터디를 통해 과장님의 지식을 전수받으려면, 사소한 것도 메모해서 얻어가도록 하자.





< App Components API 문서 읽기 >


읽다가 내용이 잡다하고 디테일하면 skip하자. 개념만 보자.



예를들어 인텐트를 skip 해야한다.

액티비티나 서비스를 읽다보면 인텐트 얘기가 나오는데, 그 때마다 참고하면 된다.







< AlramStudy project >


- TimePicker 프래그먼트와 Option 프래그먼트를 하나로 묶기

- Manager는 싱글톤 패턴으로 구현할 것

- AlramListAdapter를 중첩클래스로 만들기

- AlramManager 프레임웤 이용하지말고 구현하기

- 쓰레드와 서비스 이용하기



  • 프로젝트를 최초로 볼 때에 매니페스트 파일을 보면 편하다.
> 메인 화면이 어디인지, 어떤 액티비티들이 있는지 앱 구조를 파악할 수 있다.
  • 액티비티를 프래그먼트로 나눌 때 같은 기능을 하는 애들을 하나의 프래그먼트에 정의한다.
> 소인수분해하듯 최소 단위로 나누지 말자.
>> TimePicker 프래그먼트와 Option 프래그먼트를 하나로 묶기
  • 설계의 기준은 내부 코드이므로 UI에 결속되지 말자.
> 집 : 창문 = 코드 : UI
  • 다양한 객체들이 사용하는 모델은 하나만 존재해야한다.
  • 프로젝트에서 매니저(프록시)는 하나만 존재하는 것이 좋다.
> > Manager는 싱글톤 패턴(=static)으로 구현할 것
network, wireless icon 다양한 객체들이 하나의 매니저(proxy)를 통해 모델을 사용한다.
  • 한 화면으로만 사용되는 것은 중첩클래스로 만들기 (static inner class = nested class)

>>AlramListAdapter를 중첩클래스로 만들기 

위 어댑터는 알람 리스트만 사용하므로 외부 클래스로 만들지 않아도 된다.
  • 모델은 최대한 단순하게 만들기, 컨트롤러적인 기능은 넣지 않는다.
> [예외 예시] 서버에서 받은 데이터를 앱에서 사용해야 할 경우에만 모델이 데이터 변환 기능을 갖게하자.
: 서버가 저장한 데이터들은 다양한 값일 수 있다. (JSON, XML, Binary 등) 
 앱에서는 String 값만 사용한다고 할 때, 모델이 데이터를 포함한 김에 변환도 해주는 것이 좋다.
  • UI 최소화하기



설계한 UML 다이어그램에 의존하기보다는 모든 설계와 그 작업흐름도가 내 머릿속에 있어야한다는데,

아직은 머릿속에 다 담고있기가 힘들다. 

종이에 그린 설계도조차 머리에 담겨지지 않는다.