금일 알아 볼 것 오늘은 Constraintlayout의 chain 부분을 다루어 볼려고 한다. 기본적으로 Constrainlayout의 상대적인 배치에 대해서는 다른 블로그에 많이 있으니깐 다루지 않겠다. 자 오늘도 드가즈아아아~~ Chain 이 뭔데? Constrainlayout의 연결 방식에 대해서는 누구나 기본적으로 알고 있을 것이다. 이 부분 중 Chain이라는 말도 들어본적 있을 것이다. Chain은 사용 가능한 공간 내 뷰들간의 분활되는 방식을 제어는 제약조건을 말한다. 쉽게 말하자면 2개의 View 사이에 서로의 제약조건을 걸어 서로 연결되면 Chain이 생기게 된다. 이해를 돕기위한 이미지는 아래에 있다. 위 사진 처럼 1과 2이 사이에는 체인이 생성된 것이다.(위는 신경쓰지 말것 위치를..
오늘 알아 볼 것 저번에 ViewBinding에 대해서 글을 포스트 했었는데 그 포스트 내용 중 NullPointException에 대한 이야기가 있었다. 그런 오늘 진짜 딱 맞는 사례가 생겨서 글을 추가로 포스트하게 되었다. 생각났을 때 바로바로!! 문제의 코드 [Activity 코드] class SignInActivity : AppCompatActivity() { val etId = findViewById(R.id.et_id) val etPw = findViewById(R.id.et_pw) val btnLogin = findViewById(R.id.btn_login) val btnSignin = findViewById(R.id.btn_signin) override fun onCreate(savedIn..
오늘 알아 볼 것 금일 알아 볼 것은 현재 프로젝트에서 진행하려고 하는 안드로이드 아키텍처 이다. 단간히 알아보자 Single Activity Architecture 아키텍처는 여러가지가 존재한다. 아마 제일 유명한 아키텍처를 말한다면 클린 아키텍처라고 할 수 있을 것이다. 이처럼 아키텍처를 알고 적용해서 코드를 작성하냐 안하냐는 내부 코드의 구조를 볼 때 많은 차이가 난다. 일단 우리 오늘 알아볼 Single Activity Architecture는 제목에서도 알 수 있듯이 Activity를 단일 혹은 아주 적은게 사용하고 나머지는 모두 fragment를 사용해서 구현하는 구조를 말한다. 줄여서 SAA라고 말한다. Google I/O에서는 하나 혹은 적은 갯수의 Activity만을 사용하고 나머지 화면..
오늘 할 일! 금일 알아 볼 것은 ViewBinding 이닷!! 사실 금일 이 해당 포스를 쓰게 된 이유가 있다. ViewBinding을 사용하는 방법에 대해서는 다른 블로그나 카페 등에 자세히 나와있다. 그런데 갑자기 왜 어떻게 layout에 있는 xml를 가져오는 궁금해졌다. 물론 알아야되는 부분이지만 글쓴이는 급급하게 안드로이드를 공부했고 독학을 하다보니 쓰는 방법 위주로 공부했었다. 그러다보니 어느 정도 개념은 알지만 정확히 어떤 부분이 이렇게 된다고 말할 정도는 아니다.ㅠㅠ 이부분에 대해서는 많이 반성한다.(그래서 열심히 노력중!) 혹시 쓰는 방법을 알고 싶다면 다른 글을 찾아보기 바란다 좋은 블로그 등이 많다. 이번 포스트는 내가 자신이 알고 싶은 내용을 포스트하려고 한다. 자 시작해보자 Vi..
오늘 알아볼 것 저번 시간에 이어서 RoomDB에 대해서 조금 더 알아보려고 한다. Entiry '개체'인 entity는 관련이 있는 속성들이 모여 하나의 정보 단위를 말한다. 개체(Entity) 우리가 아는 객체(object)와는 비슷하지만 다른 의미가 있다. 객체는 정보와 동작, 기능 등을 가지고 있지만 개체는 정보 뿐다. 아래 코드는 생성 방법이다. @Entity(tableName = "UserTable") data class User ( var name: String, var age: String, var phone: String ){ @PrimaryKey(autoGenerate = true) var id: Int = 0 }다음과 같이 @Entity라는 어노테이션을 붙여준다. pri..
오늘 공부한 것 오늘은 RoomDB의 대해서 공부했다. RoomDB란 Room은 스마트폰 내장에 DB에 데이터를 저장하기 위해서 사용하는 라이브러리이다. 간단히 개발자로써 말하자면 스마트폰 전용 DB라고 보면되겠다. 보통 메모장 저장, 일정 저장, 웹툰 등의 각종 즐겨찾기 저장 등에 사용된다. 원래 과저에는 이역할을 SQLite가 했는데 여러 단점 때문에 Room으로 대체되었다. 위에 그림을 보면 단점들이 나온다. 내용적으로 이러쿵저러쿵 그냥 어려워서...그러니 바꾸었겠지 진짜 궁금한사람들은 찾아보길 바란다. Room 우리가 간단히 RooDB라고 부르는 이놈은 사실 SQLite를 활용해서 객체를 매핑해주는 요녁이다. 구글에서는 Room을 쓰기릴 권장한다. 구지 SQLite를 쓰겟다면 말리지 않겠다.(솔직..
오늘 알아 볼것 저번 코루틴 포스트에 이어서 포스트하려고 한다. Coroutine 구조 코루틴은 크게 Coroutine Scope, Coroutine Context, Coroutinew Builder 이렇게 3가지로 나눌 수 있다. Coroutine Scope 코루틴의 동작하는 범위를 규정하고 스코프 내에서 실행되는 코루틴의 실행을 감시하거나 취소할 수 있다. Coroutine Scope: 인터페이스로 정의되며 특정한 dispatcher를 지정하여 동작이 실행될 스코프를 제한한다. Global Scope : Coroutine Scope의 한 종류로, 안드로이드에서 어플리케이션 라이프사이클을 따르며, 싱글톤으로 최상위 레벨에서 코루틴을 시작하기 때문에 필요할 때 만들어 쓰고 버리고 할 수 없다. 일반적으로..
오늘 알아 볼 것!! 오늘은 간단히 코루틴에 대해서 알아보려고 한다. 이번 포스트와 Rxjava 포스트는 안드로이드의 비동기가 필요할 때 많이 쓴다. 금일 글쓴이의 상태가 메롱이라 조금 오타가 있다면...이해주길 바란다. 예비군 너무 힘들다...ㅇㅅㅇ;; 코루틴?? 그게 뭔뎅? 코루틴은 현재 프로그래밍 언어에 구현되어 있으며 코틀린만의 고유한 개념은 아니라고 한다. 프로그래밍에서 루틴이란 프로그램의 흐름을 추상적으로 일컫는 말로, 크게 메인루틴과 서브루틴으로 나눌 수 있는데 예를 들어 메인함수에 의해 수행되는 프로그램의 흐름을 메인루틴이라고 하면 main함수 안에서 실행되는 개별 함수들에 의해 수행되는 흐름을 서브루틴이라 비유할 수 있다. 즉 루틴의 한 종류인 함수는 호출을 함으로써 그 내부에 진입하여 ..
오늘 알아볼 것? 오늘 알아 볼려고 하는 것은 바로 안드로이드에서 날짜를 데이터를 알아 볼 수 있는 Calendar 클래스에 대해서 알아보려고 한다. 저번에 말했듯이 Calendar 클래스를 잘 이용하면 달력을 만들 수 있다. (현재 시도 중 ㅇㅅㅇ;) Calendar 클래스란? Calendar 클래스는 안드로이드에서 날짜 및 시간 정보를 다루는데 사용되는 클래스로, 이 클래스는 시간을 계산하고 조작하기 위한 다양한 메서드를 제공하며, 날짜와 시간을 효율적으로 다룰 수 있도록 도와준다.(대신 처음에는 쥰내 다루기 힘들다. 도와준다고만 했지 쉽다고는 안했다가 이런건가?...) 일단 그럼 많이 사용하는 3개의 메소드를 알아보자 getInstance() 기본적으로 Calendar클래스의 인스턴스를 가져오는 메..
오늘의 알아볼것! 오늘은 의존성 주입을 도와주는 hilt에 대해서 알아보려고 한다. 그러기 위해서는 간단히 의존성 주입부터 천천히 알아 보자! DI (?ㅅ?) 다들 "DI"라는 말은 안드로이드 개발자라면 귀가 뚫어 지게 들어봤을 것이다. 사실 개발자라면 본인도 모르는세 쓰고 있을 것이다. 그럼 이 "DI"뭔지 간단히 알아보자 DI 는 Dependency Injection 의 약자로 말 그대로 의존성 주입 을 말한다. 의존성이란 말은 함수에 필요한 클래스, 참조변수, 객체에 의존한다는 것을 말한다. 간단히 말하자면 A클래스를 만들기 위해서 B클래스가 필요한 경우 B클래스는 A클래스의 의존 대상이 되는 것이다. 즉 자동차를 만들때 타이어가 필요한 것을 볼 수 있다. 이런 경우 자동차를 만드는 회사는 타이어를..