안드로이드/기본개념

    플로우 차트(Flow Chart)

    플로우 차트(Flow Chart)

    회사에 들어가거나 팀 프로젝트를 하면 기획 단계에서 플로우 차트를 그려보란 말을 많이 들을 수 있습니다. 개발자가 개발만 하면 되지 그림까지 그릴 필요 있나? 하실 수 있지만 플로우 차트와 다양한 자료들을 기반으로 메뉴 설계와 화면 구성을 하기 때문에 직접 그리지 않아도 볼 줄 알아야 합니다. 또한 개인 프로젝트를 하시거나 토이 프로젝트를 할 때 순서도를 미리 그려놓고 작업하게 되면 개발 중 헤매는 일이 잘 없습니다. 헤매면 웃음밖에 안나오죠 개념 순서도(flow chart)는 워크플로 혹은 프로세스를 보여주는 다이어 그램의 한 종류입니다. 여러 종류의 상자와 이를 이어주는 화살표를 이용해 주어진 문제에 대한 솔루션 모델을 보여줍니다. 프로세스 작용은 이 같은 상자들과 작업의 흐름(workflow)을 나..

    LiveData

    LiveData

    LiveData란? Android Jetpack의 구성요소로 수명주기를 인식하는 관찰 가능한 데이터 홀더 클래스입니다. 수명주기 인식 -> Activity, Fragment, Service 등 다른 앱의 수명주기를 고려 관찰 가능한 -> Observer패턴 데이터 홀더 클래스 -> 많은 양의 Operation, stream을 쓰기에는 부적절 바꿔 말하면 Observer클래스로 표현되는 관찰자의 수명주기가 Started, Resumed이면 LiveData는 관찰자를 활성 상태로 간주하고 해당 관찰자에게만 정보를 업데이트합니다. LiveData 장점 1. UI와 데이터 상태의 일치 보장 Observer패턴이므로 LiveData의 데이터가 변경될 때 Observer객체에게 알려 UI를 업데이트할 수 있습니다...

    DP? SP? DPI? PX?

    DP? SP? DPI? PX?

    스크린의 단위 안드로이드 개발하다 보면 dp와 sp를 자주 사용한다. 쓸 때는 그냥 화면의 단위이겠거니 하면서 썼는데 이번 기회에 제대로 알아보려 한다. PX(Pixel) '화소'라고도 하는데 화면을 구성하는 가장 기본이 되는 단위이다. Red, Green, Blue가 하나씩 모인 것을 픽셀이라 한다. 따라서 px로 설정한 화면의 크기는 절대적이며 디스플레이의 해상도가 크면 클수록 화면이 작게 보인다. 모바일 환경은 해상도가 제각각이므로 px단위는 사용하지 않는다. DPI(Dot Per Inch) 말 그대로 1 제곱인치에 만들어진 점이나 화소 수를 뜻한다. 프린터 출력물이나 디스플레이 해상도의 측정 단위이다. 쉽게 예를 들면 10 dpi는 1인치 너비에 10개의 점이 있다. 따라서 dpi의 값이 클수록 ..

    Inflate

    Inflate

    Inflate란? 사전적 정의로 '부풀리다, 올리다'라는 의미를 가지고 있다. 그렇다면 무엇을 부풀린다는 걸까? 안드로이드에서 inflate는 xml에 표기된 레이아웃들을 메모리에 객체화시키는 행동이다. 쉽게 말해, xml코드들을 객체화해 소스코드에서 사용하기 위함이다. 기본적으로 안드로이드에서 화면(Activity 단위)을 만들면 소스코드, 레이아웃.xml 이렇게 2개가 생성된다. 이때 Activity에서 setContentView() 함수가 바로 xml을 객체화시키는 Inflate동작이다. class MainActivity : AppCompatActivity(){ override fun onCreate(savedInstanceState: Bundle?){ super.onCreate(savedInsta..

    Activity란?

    Activity란?

    개념 안드로이드의 기본 구성요소(컴포넌트) 중 앱이 UI를 그리는 창을 제공하는 컴포넌트이다. 우리가 사용하는 앱은 여러 개의 창을 엮어서 만들어진 형태이다. 우리가 자주쓰는 유튜브를 예로 들어보자. 유튜브를 터치하면 유튜브 로고 화면이 보인 후 홈 화면으로 이동된다. 이때 로고와 홈 화면이 각각 하나의 Activity이다. 그렇다면 왜 활동이라고 이름지었을까? Activity클래스는 한 앱이 다른 앱을 호출할 때 호출하는 앱은 다른 앱을 전체적으로 호출하는 것이 아니라 다른 앱이 하는 '활동'을 호출하기 때문에 Activity라고 지었다. 모바일 앱 환경은 데스크톱의 환경과 다르게 사용자와 앱의 상호작용이 항상 동일한 위치에서 시작되지 않는다. 대신 사용자의 이동경로는 비결정론적(동일한 입력에 다른 과..

    Context?

    Context?

    개발하면서 항상 헷깔렸던 Context에 대해 공식문서와 구글 검색을 통해 정리를 해봤다. 정의 문맥 또는 맥락은 언어학, 사회학에서 핵심이 되는 사건 주변의 실체 정의만 봤을 때 안드로이드에서 어떤 것이 Context인지 확실하지 않다. 개발자 사이트에선 뭐라고 적어놨을까? Interface to global information about an application environment. This is an abstract class whose implementation is provided by the Android system. It allows access to application-specific resources and classes, as well as up-calls for applica..