본문 바로가기

전체 글

(46)
[안드로이드] ConstraintLayout - Guideline에 대하여 이직할 회사에서는 View를 주로 다룬다. 그래서 ConstraintLayout에 대하여 속성을 정리해 볼 것이다. 오늘은 Guideline에 대하여 정리할 것이다. - Guildeline '특정 위치에서 여기까지가 너가 원하는 길이 / 높이다.' 라고 가이드를 잡아주는 라인을 말하는 것이다. 가이드를 잡아주는 것이므로 View에서는 직접적으로 보이지 않는다. 다만 아래 사진과 같이 일정 간격이 얼만큼 되는지 표시해주는 역할을 한다. 이러한 가이드라인은 아래 3가지의 속성을 갖고 있으며, 속성에 대한 설명은 다음과 같다. layout_constraintGuide_begin : 좌측 혹은 상단에서부터 고정된 값을 나타내준다. layout_constraintGuide_end : 우측 혹은 하단에서부터 고정된..
[안드로이드] Github OAuth를 이용한 로그인 로그아웃 구현해보기 오늘은 Github RestAPI를 이용한 인증 및 로그인/로그아웃을 구현해 보도록 하자. - Github OAuth App 생성해주기 가장 먼저 Github에 들어가서 OAuth App을 생성해줘야 한다. 해당 OAuth App을 생성해주려면, 아래 경로로 들어가주면 된다. * Github 홈페이지 >> Settings >> Developer Settings https://github.com/settings/developers GitHub: Where the world builds software GitHub is where over 73 million developers shape the future of software, together. Contribute to the open source com..
[코틀린] inner class(내부 클래스)와 nested class(중첩 클래스)에 대하여 어제 면접을 갔다 왔다. 정말 많은 방면에서 질문이 들어왔다. 다만 나는 준비가 많이 덜 되있고 부족하다는 생각이 들었다. 내가 안해서 부족한걸 어떡하겠는가. 더 열심히 준비해야지 그래서 면접에서 받은 기술면접 질문 중 내가 멍.... 하게 만든 간단(?) 하면서도 나는 솔직하게 몰라서 제대로 대답하지 못한 질문에 대해서 알아볼 것이다. inner class에 대해서 질문을 받았을 때, 나중에 면접자 분께서 Java에 대해 질문을 하려고 하셨는데, 자바를 잘 모른다고 답해서 해당 질문은 들어오지 않았다. 다만 그 질문이 뭔지 내부 클래스를 찾아보면서 추측할 수 있었다. 자바 프로젝트에서 A 클래스가 있고 B 클래스가 A 클래스 안에 선언되어 있다고 가정해보자. 이렇게 되면 B클래스는 A클래스의 내부 클래..
[안드로이드] DI(Hilt) + Retrofit + Coroutine(suspend) 콜라보레이션 이전에 내가 코루틴에 대하여 포스팅한 글이 있다. [안드로이드] 코루틴에 대하여 이 글에서 내가 suspend를 기깔나게 쓰려고 DI와 Retrofit 그리고 Coroutines를 콜라보레이션 하여 예제로 보여주겠다고 했는데, 회사에서 집으로 튀어와서 호다다닥 완성해 보았다. 자 그럼 차례대로 설명 들어가겠다. app / project의 build.gradle에서 implementation 해주기 당연하게도 Retrofit, Hilt, Coroutine을 사용하려면, '저 이거 쓸거니까 불러와주세요~' 라고 선언해 줘야 한다. 그 작업을 먼저 해준다. //Project build.gradle buildscript { ext.timber_version = '4.7.1' repositories { googl..
[안드로이드] 코루틴에 대하여 사실 코루틴은 이미 쓰고있다. 대신 정말 1%만 쓰고있다고 자부할 수 있다. 정말 GlobalScope.launch{ ... } 이렇게 비동기 처리를 할 요량으로만 사용중이다.. 하지만 최근 이직 시장을 살펴보면서 알게된건 코루틴을 사용하는 것에 대하여 보다 면밀하고 세밀하게 알아야 할 필요성을 많이 느껴서 이렇게 코루틴에 대하여 정리를 하게 되었다. Coroutine 코루틴에 대해서 알아보려고 하다가 아래 코틀린을 소개해주는 코틀린 컨퍼런스 영상을 보았다. 시간이 된다면 다들 보는걸 추천한다. 개인적으로 직관적으로 설명을 잘 해주었다. 코틀린 컨퍼런스 2017 - https://www.youtube.com/watch?v=_hfBv0a09Jc 내가 주로 API Call이나 Room 작업을 할 때 메인 스..
[안드로이드] View와 ViewGroup에 대하여 View 액티비티에서 화면을 구성하는 최소 단위로 화면에 보이는 모든것은 View이다. 이러한 View는 Object 클래스를 상속받으며, TextView, EditText, Button 등 모든것들이 다 View에 해당하고, 위젯이라고 부르기도 한다. ViewGroup ViewGroup은 n(n>=1)개 이상의 View를 담을 수 있는 일종의 컨테이너로서, View를 상속받는다. 이러한 ViewGroup은 우리가 흔히 아는 LinearLayout, RelativeLayout, ConstraintLayout이 포함된다.
[안드로이드] 임장노트 #2 LocationManager를 이용한 대략적인 주소 구하기 LocationManager를 이용하여 현재 내 위치를 구현할 것이다. LocationManager를 쓰는게 여러가지를 두고 봤을 때 가장 간단해서 쓰는 것이다. 위 사진과 같이 임장노트를 작성할 때 대략적인 나의 위치를 미리 매핑해주는 역할을 한다. 그렇게 되면, 세부적인 주소만 작성하고 나머지 주소는 따로 타이핑 하지 않아도 되서 간편할 것이다. 과정은 간단하게 아래에 순서대로 서술하겠다. AndroidManifest에 ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION 권한을 추가해준다. 해당 권한을 사용할 수 있게 PermissionListener를 만든다. (tedPermission강력 추천) MyLocation 클래스를 만들어준다. 이때 파라미터에 Activity ..
[안드로이드] 제네릭 함수, 클래스 정의하고 사용해보기 코드를 보면서 시작해보자 val temp :List = listOf() 위 코드를 보면, 'List안에 String을 집어 넣어서 리스트를 구성할게!' 라고 선언을 해줬다. 그렇다면 String 말고 다른건 넣을 수 있냐? 물론 넣을 수 있다. Int를 집어넣으면 Int를 집어넣는 리스트가, Double을 집어넣으면 Double을 집어넣는 리스트가 된다. 좀 자세히 보면, 저 리스트 타입 지정해주는 꺽세 안에는 무슨 타입만 들어가면 상관없는건가? 하고 Collections.kt를 뒤져보니까 아래처럼 나온다. public interface List : Collections public interface 그래 여기는 알지 그치 인터페이스라고? 근데 그 다음은 뭐냐 List 그래 이건 인터페이스 이름이잖아. ..