빙글 면접이 다음주 월요일로 다가왔다. 그래서 안하던 공부를 좀 해보려구 한다! 누군가 Intent에 대해 설명해주세요. 라고 물어봐서 안드로이드 4가지 컨포넌트간에 작업 수행을 위해 정보를 전달하는 역할을 하고있습니다. 암시적, 명시적 인텐트로 구분되며, 일반적으로 앱 내에서 컴포넌트 간의 호출은 명시적 인텐트를 많이 사용합니다. 그 이유는 클래스명을 알수 있어 지정된 클래스명의 액티비티에서만 실행되기 때문입니다. 라고 대답한적이 있다. 다소 여러모로 아쉬운 대답이다. 인텐트는 액티비티 시작, 서비스 시작, 브로드캐스트 전달등 많은 상황에서 사용된다. 안드로이드에서 A액티비티에서 B액티비티를 시작할때 아마 한번쯤은 왜 인텐트를 사용하는지 고민을 해봤을 것이다 Intent는 일종의 메시지 객체이다. 여러..
APK파일은 프로젝트 -> app -> build ->outputs->apk 에서 확인 할수있다. 그럼 이런 APK파일은 어떻게 만들어지는 것일까-? 앞에 그림을 보면 상당히 복잡한 구조로 APK 파일이 만들어지는 것을 확인할 수 있다. 천천히 단계별로 살펴보자. 맨처음은 컴파일 단계로 앱 내의 리소스 관련 파일과 AIDL(android interface description language의 약어로 안드로이드에서 프로세스 사이에 통신이 필요한 경우 필요한 인터페이스를 정의하는 언어 일반적으로 서로 다른 앱에서 통신이 필요한경우 자주 사용 한다.) 파일들이 .java로 각각 aapt 툴과 aidl 툴에 의해서 변환되어 Application Source Code에 해당되는 .java 파일들과 함께 자바 컴..
몇 일전 스타트업 빙글의 테스트를 보았다. 어찌어찌 요구사항은 모두 만족하였지만, 맘 한구석이 무거웠다. 역시나 역시나 열정만큼 따라오지 않는 실력이 아쉬웠다. 그래서 안드로이드 개발력(?)에 대해 피드백도 받고싶고, 한걸음 성숙한 개발자가 되고 싶어 기술 블로그를 시작 하게 되었다. 오늘은 첫 포스팅 다운 포스팅을 하려고 한다.(세상에서 제일 못하는 것들 중 하나가 글쓰기다... 아아 물론 개발도 포함된다^ㅠ^ 쓰다보면 늘지 않을까 싶다) 필자는 주말마다 한남동에 가서 안드로이드 개발을 배우고 있다.(사실 프로젝트지만 배움의 느낌이 더크다.)개발자는 모두 5명으로 3명은 안드로이드, 2명은 서버이다.안드로이드 진영은 네이버 웹툰 개발자, 카카오 개발자, 그리고 백수인 나(눈물이 흐른다.) 서버 진영은 ..
자바 객체를 비교할때 equals 뿐만 아니라 hashode도 오버라이드 해줘야 하는 이유 public class Student { private int student_id; private String name; private String major; public int getStudent_id() { return student_id; } public void setStudent_id(int student_id) { this.student_id = student_id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getMajor() { return m..
What is RxJava?생명주기와 동시성 프로그래밍기존의 AsyncTask는 많은 성능저하를 가지고 온다. 또한 생명주기에 따라 인스턴스를 해제해주지 않으면 memory leak에 대한 주의가 필요합니다. 이러한 문제점을 해결하고자한 프로그래밍 패러다임이 Reactive 프로그래밍입니다. 예로 Reactive 프로그래밍을 간단하게 말하면 각 항목을 관찰(Observe)하다가 항목에 변화가 있으면 등록된 Observer에 따라 갱신해주는 구성입니다.Reactive 프로그래밍의 대표적인 예는 엑셀차트입니다.Observable -> 관측 가능한 값의 흐름을 나타내는 객체 (생산자) 버튼 클릭 subscribe 함수를 통해 구독이 가능하며 , 구독자에게 값의 흐름을 알려준다.Observer - > 값의 흐름..