본문 바로가기

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

나인패치 적용하기 채팅 메시지 말풍선에 사용할 이미지 리소스를 받았다. 우왕 다 쪼개져 있다. 콘텐츠에 맞게 이미지 리소스가 쭉쭉 늘어나려면 나인패치를 적용해야 한다. 이렇게 리소스가 쪼개져서 잘못 보내졌을때, 혹은 리소스가 커서 텍스트가 좌측 정렬될 때!의 해결법을 배웠다. 차후에 바쁜 일정속에 동일한 이슈가 생기면 내가 처리할 수도 있으니, 정신 바짝 차리고 이 기억을 되살려서 재빠르게 처리하자!.! 파워포인트나 포토샵 등등으로 기존 디자인과 상관없이(비슷하게) 통으로 된 말풍선 이미지를 만든다. 반드시 PNG 파일로 저장한다. 안드로이드 스튜디오로 돌아와서 res - drawable 폴더에 해상도별로 리소스를 추가한다. 프로젝트를 Android 보기 모드로 전환하고, 추가한 리소스를 우클릭해서 Create 9-Pat.. 더보기
0724 4차 App Componenets 발표 최상급 목표는 이면지 다발과 펜으로만 발표를 하는 것이었다.각종 lifecycle이며 실행 흐름도까지 머릿속에 넣어서 직접 그리려고 했다. 하 지 만 시간적 여유가 있진 않아서,완벽 추구를 포기하고설명에 필요한 그림들만 ppt로 정리했다. 대학교 전공시간에 교수님들이, 자기들만 알아볼 수 있는 그림만 ppt로 보여주면서모든걸 구두로 설명하시곤 했었다.즉, 내 머리속에 전체 그림이 있어야 설명이 가능한 ppt 버전 인거다.비록 처음 듣는 학생들은 이해하기 어려운 ppt 였으나,나는 10년 이상 개발 경력을 쌓아온 edan을 타깃으로 발표하는 것이니, 그림만 가득한 ppt를 선택했다. 마음같아선 ppt에 넣을 그림들을 직접 만들고 싶었지만, 괜한 데에 시간을 허투루 사용하지 않기로 결심했다.남이 잘 요약해놓.. 더보기
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> .. 더보기
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.. 더보기