5. 제품 개발 방법
시장 정의
문제 정의
솔루션 정의
요구사항 도출
제품 기획
제품 개발
제품 출시
Top-Down Approach
Bottom-Up Approach
새로운 기술의 발견
기술의 습득
만들어보고싶은거 만들기
그 제품으로 풀 수 있는 문제를 정의
문제를 더 잘 풀기 위한 개선
패키징
제품 출시vs
6. Top Down Approach Bottom Up Approach
vs
효율적이고 효과적이지만
뻔한 제품이 나오기 쉽다.
독특한 서비스를 개발할 수 있지만,
시장의 선택을 받지 못할 수 있다.
제품 개발 방법
7. 좋은 제품을 만들기 위해서는
두 가지의 방법이 모두 적용 되어야한다
비지니스 하는 사람들이
기술의 트렌드를 기회로 인식할 수 있어야하고,
개발하는 사람들이
현재 시장의 문제를 파악하고 있어야한다.
8. Top-Down식 제품 개발이 주도적인 상황에서
어떻게 하면 Bottom-Up식 제품 개발과 조화를 이룰 수 있을지
개발자의 관점에서
좋은 제품을 만들기 위한 방법을 알아보자
12. WindowManager
Window는 그 자체
로 사용하지 않고,
WindowManag
er를 통해서 사용.
WindowManager는
ViewManager를
상속받았기 때문에,
바로 view를 추가/수정/삭
제
할 수 있음.
View.LayoutParams를 상속받은
WindowManager.LayoutParams를 통
해
독특한 윈도우를 만들 수 있다.
22. Activity와 Window 분리
Activity Life Cycle을 따르지 않음
* Fluctutation이 없음.
View 재사용가능
반응속도 향상
활용법3
왜 빠른가?
Service Context로 WindowManager를 가져와서 구현어떻게?
23. 홈 버튼 후 런처를 제외한
다른 방식으로 앱을 실행하려는
경우 5초 Delay를 갖는 현상
홈BTN delay회피
활용법4
24. WindowManager 주요 Type 소개
TYPE_APPLICATION
가장 기본이 되는 type. Activity를 생성하면 이 타입으로 윈도우가 생성된다.
Activity Context로만 생성이 가능하다.
Activity Context로 생성된 window는 Service Conxtext로 생성된 window보다 우선순위가 낮다. (잠금시는 예외)
TYPE_PHONE
Service Context로 만들수 있는 윈도우 Type 중 가장 우선순위가 낮다.
홈버튼을 막지 않고 통과시킨다.
TYPE_SYSTEM_ERROR
가장 우선순위가 높은 Type 중 하나. 거의 모든 View를 덮을 수 있다.
Status Bar, 네비게이션바 등을 모두 막을 수 있기 때문에 주의해서 써야한다.
홈버튼을 막는다.
25. WindowManager 주요 Flag 소개
FLAG_DISMISS_KEYGUARD
window가 attach되면 잠금해제를 하는 flag. Activity Context를 가진 윈도우매니저에서만 동작
FLAG_LAYOUT_NO_LIMITS
window가 화면을 벗어나서도 배치될 수 있다. 숨기거나 일부만 보이는 윈도우를 만들때 사용
FLAG_LAYOUT_IN_SCREEN
window가 보여지는 화면의 전체 영역을 가진다. status bar 혹은 navigation bar 영역까지도 배치될 수 있다.
FLAG_NOT_FOCUSABLE
해당 윈도우가 focus를 받지 않게 된다.
즉 home button이나 back button처럼 focus를 받아야 동작하는 것들을 다음 우선순위 window에 넘긴다.
FLAG_NOT_TOUCH_MODAL
해당 윈도우가 터치를 받지 않게 된다. 터치가 오면 다음 우선순위 window에 넘긴다.
26. WindowManager 사용시 주의사항
* 안드로이드 6.0 이상에서는 명시적으로 동의를 받아야하는 퍼미션이다. (TYPE_PHONE 이상의 경우)
* 외부 APK를 설치할 경우 Floating App이 있으면 설치가 제한된다.
* 6.0 이상에서 다른 앱들의 명시적 동의를 받아야하는 경우에는 Floating App이 이슈가 된다.
* Context별 사용법을 정확히 알아야한다.
* 잠금해제는 Activity Context만 가능
* 유튜브 SDK사용은 Activity Context만 가능 등
* 디바이스별 파편화가 일부 있다.
* 메모리 관리를 잘 해야한다.
28. 진짜요약
Omni Swipe, TouchLock과 같은 제품들이
시장의 정의, 문제의 정의로부터 시작했을까?
오히려 WindowManager 라는 기술의 발견
Floating App, Home Block 이라는 기술의 습득에서부터 시작하지 않았을까?
마지막 예시 하나 더
30. 1. 신뢰수준
2. 업무 자유도
3. 협업
4. 솔직한 태도
5.고객 피드백
6. 수고에 대한 인정
7. 작업 환경
20. 업무 공간
어떤 팀이 좋은 팀인가? - InfoQ
.
.
.
31. 1. 신뢰수준
2. 팀원 간의 피드백
3. 수고에 대한 인정
4. 협업
14. 끈끈한 유대감
14. 성공에 대한 축하
14. 고객 피드백
14. 정기적인 회고
어떤 팀이 좋은 팀인가? - Tech Planet 2016
.
.
.
.
.
32. 엔지니어
제품을 만들어 주는 사람이 아닌
제품을 만들어 내는 사람
단순히 기술의 발견에만 머무르지 말고
보다 적극적으로 기술을 습득하고
문제를 정의하고
그것을 창의적으로 해결해야한다.