Android
-
Android LocalDate/Time(안드로이드 날짜/시간 관련 메서드)Android/Usage 2019. 10. 24. 16:23
안녕하세요. 오늘은 안드로이드 내에서 날짜/시간 관련한 메서드 사용법에 대해 알아보겠습니다! LocalDate, LocalTime, LocalDateTime 이 세 가지가 있습니다. 이들은 자바 언어를 쓰는 환경에서는 다 통용됩니다! 왜냐면 java.time 이라는 패키지에 들어있기 때문이죠. 한 번 각각 써 봅시다! (Kotlin입니다. 그리고 API 22이상만 된다는 군요!) 기본 호출 기본적으로 다 .now() 를 찍으면 현재 날짜/시간을 보여줍니다. (뒤에 .toString()은 그냥 로그에 출력하기 위해 문자열로 바꿔주는 겁니다! 로그는 문자열만 인자로 받거든요...) LocalTime 시간만 표시합니다. 형식은 HH:mm:ss 입니다! LocalDate 날짜만 표시합니다. 형식은 YYYY-MM..
-
Android Fragment Usage(안드로이드 프래그먼트 사용법)Android/Usage 2019. 10. 21. 21:15
매우매우 자주쓰는 Fragment에 대해 알려드리겠습니다! Fragment란? Fragment란, Activity보다 가벼운 하나의 종이라고 생각하시면 편합니다. Activity는 그 종잇장들이 붙어있는 하드보드지 같은걸로 생각하면 됩니다. 좀 더 정확하게 말씀드리자면 Fragment는 Activity의 기능들을 거의 다 갖고 있습니다(거의 동일해요). 다만 꼭 Activity 위에서 동작해야 합니다. 즉, Fragment 하나 달랑 사용할 수는 없다는 소리입니다. 그럼 왜 Activity를 쓰지 Fragment를 쓰느냐? 바로 가벼움 때문입니다. 하나의 Activity 위에 여러 Fragment를 올려놓고 바꿔가며 쓸 수 있기 때문이죠! 실제 앱에서 PlayStore 같은 곳을 보시면 게임/영화/도서 ..
-
Android about Context (안드로이드 Context에 대하여)Android/Concept 2019. 8. 7. 18:13
이번에는 안드로이드 프로그래밍 중에 많이 접하게 되는 Context에 관하여 알아봅시다. 일단 사전적 의미는 '문맥, 맥락'입니다. 음... 뭔가 감이 안옵니다. 위에 구글이 정의 해 놓은 설명의 첫 줄을 보면, 어플리케이션 환경에 대한 글로벌한 정보에 대한 인터페이스 랍니다. 즉, 대강 해석하면 앱에 대한 여러 정보들을 갖고 있는 놈이라고 볼 수 있습니다. 이건 예전에 다른 글에서 봤던 것인데, Context가 영어권에선 바로 요것을 뜻한다고 합니다. 또는 운영체제나, 시스템 프로그래밍을 배우신 분들에게 쉽게 설명 해 드리자면 레지스터들을 생각 해 볼 수 있습니다. rsp, rax, rbx 등의 값들을 Context라고 하고, 프로세스 내에서 값 전환이 일어날 때 Context Switch를 한다고 하..
-
Android Components(안드로이드 구성요소)Android/Concept 2019. 8. 3. 22:15
이번에는 안드로이드의 구조가 아닌, 안드로이드 앱 자체가 어떻게 구성이 되어 있는지 그 요소들에 대해 알아보겠습니다! 먼저 위와 같이 4개가 가장 기본적이고도 대표적인 안드로이드의 컴포넌트들 입니다. 왜 그림엔 5개 인데 4대 구성요소냐구요? 저 가운데에 인텐트(Intent)는 빼고 얘기하는 겁니다! 그럼 각각 어떤 역할을 하는지 살펴봅시다. Activity(액티비티) 안드로이드 프로그래밍을 해보셨다면 꽤나 익숙한 요소입니다. 대략적으로 한 화면을 담당한다고 느껴지죠. 맞습니다. 액티비티는 UI를 담당하며, 스마트폰 스크린으로 유저와 상호작용을 담당하는 컴포넌트입니다! 코딩을 위해서 프로젝트를 만들면 가장 먼저 MainActivity가 있죠. 이 처럼 가장 기본적인 구성요소이며, 필수적인 요소입니다. p..
-
Android Life Cycle of Activity(안드로이드 액티비티 생명주기)Android/Concept 2019. 7. 30. 16:59
저번에 안드로이드의 시스템적 구조에 대해서 공부했으니, 이번에는 실제 안드로이드 코딩 때 많이 쓰는 항목인 생명주기에 대해 공부 해 봅시다. 위 그림이 안드로이드 Activity의 생명주기입니다. 생각보다 단계가 별로 없고 이름들이 직관적입니다! 일단 하나하나씩 어떤 놈들인지 살펴보죠. OnCreate() 먼저 create, 창조하다? 입니다. 말 그대로 액티비티가 처음 시작 시 제일 먼저 발동되는 함수입니다. 완~~전 맨 처음에 부릅니다. 그래서 왠만한 경우 이놈을 다시 호출하지는 않아요. (예외로, 화면 회전 할 경우 액티비티를 새롭게 만들기 때문에 onCreate()이 다시 호출 됩니다!) 저희가 안드로이드 코딩을 하다보면, 이 함수에 여러 사항들을 적고 시작하죠. 그 이유가 최초로 실행 시 여러 ..
-
Android Architecture(안드로이드 구조)Android/Concept 2019. 7. 26. 19:51
공부 할 겸 안드로이드 구조에 대해 써봅니다! 안드로이드 구조 안드로이드 구조는 왼쪽의 사진과 같이 대표적으로 5계층으로 나뉘어져 있습니다. 리눅스 커널 계층 하드웨어 추상화(HAL) 계층 Native 라이브러리/안드로이드 런타임 계층 프레임워크 계층 어플리케이션 계층 먼저 아셔야 할 것은 안드로이드의 운영체제(OS)는 Linux 기반이며, 사용되는 언어는 Java입니다. 리눅스 커널 계층 네. 운영체제가 리눅스 기반으로 만들어져 있어서 커널 또한 리눅스로 이루어져 있습니다. 커널(Kernel)이란 영어 단어 뜻은 '알맹이' 라는 뜻인데 컴퓨터 쪽에선 '핵심'이라는 뜻이라고 합니다. 얘가 하는 짓은 운영체제의 관리자? 느낌입니다. 운영체제의 일들을 일반 사용자들이 건드리질 못하니까 그 사이 다리 역할을 ..
-
[Android Studio]How to use pre-populated .db file in Room(미리 만든 db파일, 앱에서 local로 쓰기)Android/Usage 2019. 7. 21. 22:51
처음에 삽질 했던 것이 기억나서 글로 남겨봅니다. 틀린 정보 있을겁니다.. 뇌피셜로 이해 한 것들이라.. (sdk 26~28, kotlin, android studio에서 작성) Room은 Google에서 Local Database인 SQLite 쓸 때 더 편하라고 만든 ORM입니다. 이게 다른 Jetpack에 들어있는 LiveData, Viewmodel, Lifecycle 등을 지원하기 때문에 요러요러한 것들 쓰는 사람이라면 편합니다! ORM이란 Object-Relational Mapping의 약자입니다. 아마 백엔드에서 DB 만져보신 분들은 아시는 개념일겁니다. Object는 객체지향언어 할 때 그 객체고, Relational은 RDB의 관계형 DB 할 때 그 관계입니다. 옛날엔 코딩하면서 IDE에서..