본문 바로가기

분류 전체보기108

피그마 프레젠테이션 기능 피그마에서 앱ui를 구성하고 나면 화면 전환을 어떻게 할지 간단하게 목업할 수 있는 기능이 있다. 오른쪽 속성에서 디자인을 프로토타입으로 바꾼 후 화면전환 이벤트를 가진 요소에다가 navigate to 로 화면전환할 프레임을 선택하면 된다. 그럼 화살표로 쭈욱 이어진 것을 볼 수 있다. 그럼 끝이다. 제작한 화면들에서 화면전환 이벤트를 모두 구현했다면 Ctrl + Alt + Enter 혹은 오른쪽 상단에 삼각형 아이콘에서 프레젠트를 클릭하면 새창이 뜨면서 화면 전환을 알아볼 수 있다. 2024. 2. 21.
draw.io ERD 테이블에 행 추가하기 Ctrl + Enter를 눌러주면 한 줄이 더 생긴다. 2024. 2. 21.
[안드로이드/코틀린] 테마 적용 오류 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.brandon.playvideo_app/cohttp://m.brandon.playvideo_app.ui.detail.ChannelDetailActivity}: android.view.InflateException: Binary XML file line #16 in com.brandon.playvideo_app:layout/channeldetail_activity: Binary XML file line #16 in com.brandon.playvideo_app:layout/channeldetail_activity: Error inflating class 이런 오류가 뜬다... 해당.. 2024. 2. 20.
[코틀린] context 뜻? 활용 복습 화면에 표시되는 작업을 하다보면 유독 context를 자주 접할 수 있다. 그냥 view를 가리키는건가보다 하고 그냥저냥 이해하고 있었다. 액티비티나 프래그먼트에서 tihs라고 치거나 context라고 치면 왜 되는지느 모르겠지만... 잘 작동하니 말이다. 구글에 context라고 치면 많은 글이 나온다. 문제는 봐도 아하! 이거구나 하고 감이 오지 않는다. context라는 class에 들어가면 7000줄이 넘는 엄청난 양의 코드를 볼 수 있다. 이걸 다 읽을 엄두가 나지 않고 딱히 몰라도 여태 사용하는데는 지장이 없어서 미루고 미루었다. 문제는 지겹도록 나오는 context를 어떤 식으로 써야하는지 도통 감이 잡히지 않으니 매개변수로 context가 나올 때마다 뭘 넣어야할지 몰라서 매번 시간을 낭비.. 2024. 2. 16.
[안드로이드/코틀린] 프래그먼트에서 뒤로 가기 구현하기 프래그먼트에서 프래그먼트로 뒤로 가야하는 걸 구현해야했다. 뷰페이저에서는 onbackpressed를 쓰면 되지만 우리가 했던 프로젝트는 뷰페이저를 쓰지 않았었다. 우선 메인액티비티 안에 a프래그먼트가 있고, a 프래그먼트에서 b액티비티로 화면을 전환한다. 여기서 b액티비티에서 뒤로가기 버튼을 누르면 a프래그먼트로 전환되게 만들어야 했다. 구글에 프래그먼트 뒤로 가기를 검색하고 gpt한테도 물어봤지만 마땅한 답을 찾을 수가 없었다. 튜터님한테 물어봐서 답을 찾을 수 있었다. binding.ivBack.setOnClickListener { requireActivity().supportFragmentManager.popBackStack() } 이 코드를 b액티비티에 oncraate() 안에 넣으니 a프래그먼트.. 2024. 2. 15.
유튜브 api 등록하는 방법 어제 글을 쓰는데 가장 중요한 유튜브 api 를 등록하는 방법을 안썼다. 구글 클라우드 콘솔에서 프로젝트를 생성한 후, 상단 검색으로 youtube api 라고 치면 검색결과에 나올 것이다. 그리고 사용버튼을 누르면 끝. 아래링크는 유튜브 api 페이지이다. https://console.cloud.google.com/marketplace/product/google/youtube.googleapis.com?q=search&referrer=search&authuser=1&hl=ko&project=utility-encoder-414305 Google Cloud console console.cloud.google.com 맨 아래에 유튜브 데이터 api v3가 있다면 적용 완료. 그리고 사용자 인증 정보 메뉴로 .. 2024. 2. 14.
[안드로이드/코틀린] 유튜브 api 사용해보기 부트캠프 과제로 유튜브 api를 사용해보았다. 짜증나는 점은 기능이 매우 많은데 한번에 모두 불러올 수가 없었다. 검색 페이지를 맡아서 리사이클러 뷰에 영상 목록을 불러오는데 영상을 검색할 때 api요청을 보내고, 해당 결과를 또 api 요청을 보내서 영상에 대한 정보를 받아와야 했다. part에다가 snippet,contentdetail 등 필요한 부분만 뽑아서 쓰는 방식이었다. 우선 api 통신을 하기위해 레트로핏2 라는 라이브러리를 사용한다. object RetrofitClient { private val BASE_URL = "https://www.googleapis.com/youtube/v3/" val apiService: YouTubeApi get() = instance.create(YouTub.. 2024. 2. 13.
java.lang.NullpointerException: Parameter specified as non-null is null: method [클래스 경로].<init>, parameter [파라미터명] java.lang.NullpointerException: Parameter specified as non-null is null: method [클래스 경로]., parameter [파라미터명] 유튜브 api에서 정보를 받아와서 가공하는데 이런 오류가 뜬다. 원인: 로그에 친절하게 써져있다. 파라미터 중에 널이 아닌 곳으로 널이 들어있다. 뒤에 파라미터 명까지 알려준다. 확인해보니 해당 값이 null로 들어오고 있었다. 해결: null처리를 해주면 된다. 이 간단한 걸 NullpointerException이란 말에 꽂혀서 시간 날린 걸 생각하면 너무 화가 난다. 로그를 잘 읽어보자. 물론 로그가 모든 에러를 해결해주는데 도움을 주는 건 아니지만 이렇게 다이렉트로 알려주는 경우가 있다. 2024. 2. 8.
안드로이드 코틀린 API 사용 중에 java.lang.IllegalArgumentException: Unable to create converter for class [클래스 경로] 뜨는 이유 유튜브 api를 쓰는데 java.lang.IllegalArgumentException이 자꾸 뜬다. 분명 api 응답에 맞게 클래스를 맞추고 @SerializeName으로 지정까지 해줬는데 말이다. 알고보니 @SerializeName을 복붙하고 수정해야하는데 복붙만 해놓고 수정을 안해서 그런거 였다.... 이런 멍청한 실수를.. 혹여나 api쓰다가 저 오류가 나면 클래스 이름이 맞나 잘 확인해보자. 2024. 2. 8.