일일 회고 시연 영상을 만들며 발표준비를 하였다. 영상만드는 것도 은근 재미있는 것 같다? .... (요즘 영상 편집 툴이 정말 좋은 것이 많아서 그런가.....) 오늘의 키워드 알고리즘 알고리즘 발표 준비하느라 따로 한 것이 없어서 알고리즘으로 대체... [programmers][Kotlin] JadenCase 문자열 만들기 문제 설명 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출 aaapple.tistory.com
일일 회고 프로젝트도 마무리 단계에 들어갔다. 오류를 찾아 조금씩 고치고, 발표 준비를 하면 될 것 같다! 잘 마무리해 보자 오늘의 키워드 BottomSheetBehavior BottomSheetBehavior 안드로이드 뷰 중에 가끔 보면 위에서 올라와서 다른 화면을 보여주는 것을 볼 수 있다 (ex) 유튜브 댓글 창) 이러한 동작은 안드로이드의 BottomSheetBehavior를 통해 구현을 할 수 있다. BottomSheetBehavior는CoordinatorLayout에서 자식 뷰에 대한 플러그인 중 하나이다. 자식 뷰의 app:layout_behavior에서 설정해 주면 하단에서 펼쳐지는 방식으로 자식 뷰가 동작하게 된다. BottomSheetDialog 나 BottomSheetDialogFr..
일일 회고 연휴가 거의 끝나고, 다시 시작할 시간이 되었다. 연휴 간 내가 맡은 부분은 완료를 하였다. MVVM을 해보는 것도 중요하지만 프로젝트의 완성을 위해 안된 부분을 같이 해보기로 하였다. 같이 해보면서 이번 프로젝트도 잘 마무리해 보자 오늘의 키워드 지금까지 내가 한 작업 간 트러블 슈팅 정리 원인 - 동영상 재생에 관련된 id를 찾지 못함 해결과정 - 동영상 id를 찾고 ExoPlayer를 이용한 방법을 찾음 원인 - media3 - exoplayer에서는 “https://www.youtube.com/watch?v=1ID6pfTViXo” 이런 형식의 videoId를 가진 url을 재생시킬 수 없음 **출처: https://developer.android.com/guide/topics/media..
DOING IN THIS WEEK : 심화 프로젝트 작업을 쭉 진행하였다. 주된 작업으로 HomeFragment UI 구현작업, Room Database 세팅작업, Shorts Fragment 기능 구현 작업을 진행하였다. 우선 내가 맡은 것들은 기능 구현은 완료하였다.. FEELING : 안드로이드 앱내에서 영상을 실행 시키는 작업이 굉장히 힘들었다... media3 - exoplayer는 유튜브 링크로 영상 재생하는 것을 지원하지 않아 다른 방법을 강구해야했다. 처음엔 영상 링크를 mp4로 바꾸어 로컬에 파일을 저장해서 해야하나? 아니면 파이어베이스 같은 클라우드 시스템을 사용해서 영상 링크를 mp4로 바꾸어 저장하고 다시 꺼내오는 방식으로 해야하나? 아니면 오픈소스 같은 것들이 있나 많은 고민을 하..
일일 회고 이제 추석연휴 시작이다. 하지만 할 게많다.. 오늘의 키워드 선발대 세션 프로젝트 구현 선발대 세션 MVVM의 Repository 패턴을 적용하는 방법을 공부 + SerializedName을 하는 이유 -- 코드를 release하면 코드 난독화가 되면서 변수명이 바뀌는데 이러면 서버에서 가져오는 값과 변수명이 맞지 않기 때문에 에러가 발생 각 Layer 별로도 필요한 모델을 모두 만들어줘야함 (타입이 같더라도, layer가 다르면 모델을 분리) UI에 뿌려주는 데이터는 ViewModel, Repository 단에서 모두 만든다. UI로 뿌려주기만 한다 프로젝트 구현 쇼츠 페이지를 구현하고 있어서, 유튜브 쇼츠처럼 화면을 넘어가는 방식의 UI를 구성하고자 하였다. recycler view의 sn..
일일 회고 할 일이 많다! 쓸 시간이 줄어든다! 어렵다! 추석 기간 이용해서 열심히 해보자... 오늘의 키워드 Room DB 기본 세팅 Room DB 기본 세팅 // AppDatabase.kt @Database(entities = [MyPageEntity::class], version = 1) abstract class AppDatabase : RoomDatabase() { abstract fun myPageDao(): MyPageDao companion object { private var INSTANCE: AppDatabase? = null fun getDatabase(context: Context): AppDatabase { if (INSTANCE == null) { INSTANCE = Room.d..
일일 회고 심화 프로젝트가 시작되었다. 오늘은 회의 위주와 UI 디자인, 구현을 위주로 진행하였다. 추석이 껴있는 2주짜리 프로젝트인 만큼, 시간을 들여 열심해 해봐야겠다! 오늘의 키워드 심화 프로젝트 구현 심화 프로젝트 UI 구현 심화 프로젝트의 홈화면을 맡게 되어 우선 Figma로 디자인한 UI를 구현하였다. 먼저, RecylclerView의 아이템을 구현하였다. Constraint layout을 통해 ImageView, TextView의 위치를 조정하였다. ImageView는 아직 받아올 이미지의 크기를 알지 못해 match_parent, 0dp를 부여한 후, constraintDimensionRatio를 4:3으로 해, 가로 세로 비율만 맞추어 두었다. 추후에 데이터를 가져왔을 떄, 이미지 크기가..
DOING IN THIS WEEK : 개인 과제와 선발대 과제 위주로 진행하였다. 개인 과제를 완료하고 (MVVM ,DiffUtil 등 각종 리팩토링 작업을 추가적으로 함) 선발대 과제가 있어 선발대 과제를 완료하였다. (Repository 패턴 적용해보기) 추가적으로 알고리즘 공부와 안드로이드 아키텍쳐 이론 공부를 진행해보았다. FEELING : 아키텍처 패턴 공부는 역시 쉽지 않다. 머리로는 뭔가 알겠는데, 코드를 짜보며는 헷갈리는 점이 많아 시간을 많이 쓴 것 같다. 어렵고 시간을 쓰는 만큼, 실력이 늘어나는 느낌을? 들었다. 이제 반복 숙달, 이해를 하며 내 것으로 만드는 연습을 많이 해야할 것 같다. FINDING THIS WEEK: Data Binding 알고리즘 Repository Patte..
일일 회고 금요일이 끝났다! 개인과제 제출을 완료했고, 선발대 과제도 해놓았다. 이제 2주간 프로젝트를 앞두고 있는데, 이를 위해 주말은 쉬는 시간을 가져봐야겠다! 그래도 너무 놀지만 말고 복습도 조금 해보자...! 오늘의 키워드 알고리즘 ConstraintLayout Group 알고리즘 [programmers][Kotlin] 개인정보 수집 유효 기간 문제 설명 고객의 약관 동의를 얻어서 수집된 1~n번으로 분류되는 개인정보 n개가 있습니다. 약관 종류는 여러 가지 있으며 각 약관마다 개인정보 보관 유효기간이 정해져 있습니다. 당신은 각 aaapple.tistory.com androidx.constraintlayout.widget.Group ConstraintLayout을 사용할 때, 내부의 다양한 위젯..
일일 회고 개인과제 주석도 달고.. 수정도 하고 마무리를 하고 제출을 했다! 심화 과제답게 시간도 꽤 많이 든 것 같다. 내일이 지나고 다음 주 부터는 심화프로젝트의 시작이다. 내일은 살짝 가볍게 공부하는 느낌으로 가고, 다음 주를 준비해봐야겠다! 오늘의 키워드 알고리즘 Repository Pattern 알고리즘 [programmers] [Kotlin] 로또의 최고 순위와 최저 순위 문제 설명 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 6개 번호가 모두 일치 2 5개 번호가 일치 aaapple.tistory.com Repository Pattern (feat. Facade) 등장 배경 비즈니스 ..