본문 바로가기

Android

0714 3일차 AlramStudy project 컨설팅 * 결정사항 * [D-14] 7/28 (7회차 스터디) App Components 정리해서 발표하기TimeItemManager의 구조와 역할을 재정의해볼 것> 누구한테 뭘 받고, 그걸 어떻게 처리해서, 누구한테 줄 것인지! 특별한 이유가 없으면 실제 구현체를 사용하지말고, 그 구현체가 정의한 인터페이스를 사용하자.방법1) ArrayList(실제 구현체)를 사용하면 확장성이 없다.1public ArrayList mArrayData = new ArrayList();cs 방법2) ArrayList가 정의한 인터페이스를 사용하면 확장성이 좋다.1List mArrayData = new ArrayList();cs 자바 컬렉션의 List는 세 종류가 있다. → ArrayList, LinkedList, Vector> .. 더보기
Adapter 실제 데이터를 가지고 있지 않는게 편할때가 많다. Adapter라는 의미 자체가 "연결"을 해준다는 것이지,자체적으로 데이터를 가지고 있다는게 아니닷! 그래서 Adapter를 컨트롤러 레벨로 인식하기 보다는 모델이라고 보는것이 자연스럽닷! 자바는 포인터 대신 레퍼런스 타입이 있다.new 연산자로 힙에 생성시키기때문에 별도의 삭제를 해야 메모리에서 해제된다.123Phone myphone;myphone = new Phone();myphone.manufacturer = "apple";cs Answer by edan 더보기
Windows에서 git이랑 연결하기 1. 안드로이드 스튜디오에서 프로젝트를 오픈한 상태에서 상단 바의 VCS > Import into Version Control > Create Git Repository를 클릭한다. 그러면 툴의 최하단 오른쪽에 Git: master라는 항목이 추가됨을 볼 수 있다. 2. git 서버에서 새 프로젝트를 생성하니까 아래같은 명령어를 입력하라고 알려준다. 아래의 첫째줄의 existing_git_repo는 자신의 프로젝트 폴더가 있는 경로를 말한다. cmd 창에서 해도 되지만 나는 안드로이드 스튜디오의 자체 터미널을 이용해보았다.cmd 창에서 하면 cd 명령어로 내 디렉토리까지 찾아들어가야하는데,안드로이드 스튜디오에서 제공되는 터미널은 내 디렉토리 위치가 default 이기 때문에위 이미지의 첫째줄을 입력하지 .. 더보기
App Components > Activities Intro 그림 1. Screen과 Activity와 Window의 관계 그림2. Window는 중첩될 수 있다. 액티비티끼리는 느슨하다. 서로 시작시킬 수 있다. 단 App에서 Main 액티비티는 단 하나이다. 액티비티는 다른 액션을 수행하기위해서 다른 액티비티를 시작시킬 수 있다.이런 경우에, Main은 stop되지만 시스템이 backstack에서 보존한다. 그리고 생명주기 콜백을 통해 상태변화가 통지된다.새 액티비티가 시작될 때 backstack 상위에 push 된다.backstack은 스택과 같이 "LIFO"이다.backstack에서 pop되면 destroy / 이전 액티비티가 resume 더보기
0710 2일차 AlramStudy project 컨설팅 'Why'라는 고민을 항상하자! → 싱글톤은 왜 해야할까? setHasOptionsMenu( )를 왜 해야하지? 등등자바를 숙달하자. 어떤 프로젝트던지 언어때문에 막히는 일은 없어야한다.항상 일의 우선순위를 정하자!현재로서는, API 문서보기 > project 구현 이론과 개념 > 코드 구현이 스터디를 통해 과장님의 지식을 전수받으려면, 사소한 것도 메모해서 얻어가도록 하자. 읽다가 내용이 잡다하고 디테일하면 skip하자. 개념만 보자. 예를들어 인텐트를 skip 해야한다.액티비티나 서비스를 읽다보면 인텐트 얘기가 나오는데, 그 때마다 참고하면 된다. - TimePicker 프래그먼트와 Option 프래그먼트를 .. 더보기
App Components > Intents and Intent Filters 안드로이드 프로그래밍을 하려면 쓰레드 단위의, 프로세스 단위의 일들을 3차원으로 생각할 수 있어야 한다. 안드로이드의 (시스템 측면의) 가장 기본인 App Components를 읽고나면 프로그래밍의 측면이 달라질 것이다.내부 시스템을 모르고 프레임워크가 편하게 가이드하는 대로만 프로그래밍을 하면 얻는게 없다. Intro프로그래머가 어떻게 컴포넌트들을 빌드할 수 있는지 설명하고 있는 부분이다.예를들어 인텐트를 사용해서 어떻게 연결시키는지와 같은 것들을. Intents and Intent Filters Intent(이하 인텐트)는 다른 앱 컴포넌트로부터 액션을 요청하기위해 사용할 수 있는 메세지 객체이다.비록 인텐트가 몇가지 방법으로 컴포넌트 간에 통신을 용이하게 해준다.그 세 가지 기본적인 사례이다. 액티.. 더보기
0707 1일차 HAS-A로 시작해서 DI로 끝난다. IS-A : 상속, Inheritance / HAS-A : Composition(리스너나 콜백) 1. 코드로 비교하기 : Shape과 Circle 두 개의 클래스를 이용하여 두 관계를 나타낸다. Circle is a Shape. 원은 모양이다. : Circle 클래스는 Shape 클래스를 상속하고 있다.1234567class Shape { Point x; Point y; }class Circle extends Shape { double radius;}cs Circle has a Shape. 원은 모양을 가진다. : Circle 클래스 안에 Shape을 멤버로 넣어주었다.12345678class Shape { Point x; Point y; }class Circle { double radius; Shape.. 더보기
변수 선언할 때, 스케일 설정을 어떻게 할까? 난 지역변수로만 사용되어도 일단 멤버변수로 선언하는 습관이 있었다.(넓게 보고싶었던 의미가 담겨있다.) 그런데 실무에서는멤버변수로 선언되고 사용되지않은 메모리 누수까지도 생각해야 한다. 따라서 우선 지역변수로 선언하자.그리고나서 다른 메소드나 클래스에서도 사용해야하는 변수일 경우에 멤버변수로 확장하자. 더보기