일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
- 독서
- Python
- list map
- map
- kotlin collection
- 안드로이드
- ktor api call
- android
- AWS EC2
- ansi2html
- android ktor
- FastAPI
- build with ai
- 스피너
- kotlin list
- DiffUtil.ItemCallback
- android custom view
- exoplayer cache
- ChatGPT
- 시행착오
- ExoPlayer
- doc2vec
- llm
- 유튜브
- ktor client
- video caching
- getChangePayload
- ListAdapter DiffUtil
- ListAdapter
- android exoplayer
- Today
- Total
목록분류 전체보기 (100)
버튼 수집상
https://en.wikipedia.org/wiki/Functional_predicate Functional predicate - Wikipedia From Wikipedia, the free encyclopedia In formal logic and related branches of mathematics, a functional predicate, or function symbol, is a logical symbol that may be applied to an object term to produce another object term. Functional predicates are also en.wikipedia.org functional predicate, 혹은 function symbol ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/qdzk1/btskMngp9vb/fjSBLk7e0kIEjCRFIGNudk/img.gif)
배경 ViewPager 안쪽 웹뷰에서 가로로 스크롤되는 UI가 있을 때 뷰페이저 페이지가 넘어가는 현상이 있었다. 예시 화면 포인터를 보면 웹뷰의 가로 스크롤 영역을 드래그했을 때 바깥쪽 뷰페이저가 넘어간다. 웹뷰의 가로 스크롤을 따로 읽는 함수는 없어서 onTouchEvent 안에서 터치 좌표로 처리했다. CustomWebView.kt class CustomWebView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyle: Int = 0 ) : WebView(context, attrs, defStyle) { private var oldY = 0f private var oldX = 0f init { // 샘플..
배경 리사이클러 뷰 onScrolled 에서 뷰홀더가 화면에 일정 퍼센트 이상 노출됐을 때 알파값과 translationY 값을 제어해서 부드럽게 나타나는 것처럼 보이는 애니메이션이 적용되어있다. open class CustomRecyclerView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 ) : RecyclerView(context, attrs, defStyleAttr) { // 애니메이션 제어할 뷰홀더 담아놓는 리스트 private val itemHolders: MutableList = mutableListOf() fun onAddViewHolder(viewHolder: ..
git config에는 세 가지 종류가 있다. --system 현재 컴퓨터에 있는 모든 레포지토리의 유저들 --global 현재 로그인된 유저와 그 유저의 레포지토리들 --local 특정 레포지토리만의 설정 우선, 유저정보를 수정하려는 레포지토리에 위치를 잡은 뒤, 기존의 유저 정보를 확인한다 git config user.name git config user.email 그러고 --local 옵션을 넣어서 유저 정보를 수정한다. git config --local user.name "바꿀유저명" git config --local user.email "바꿀메일@gmail.com" --global 옵션을 넣어서 전역 유저 정보와 달라졌는지 확인한다. 만약 유저 정보를 세팅을 미처 못 해서 커밋 저자author..
reset 커밋을 없던 일로 돌리는 것 revert 취소 이력을 하나 더 만드는 것 $ git reset HEAD~1 현재 위치로부터 하나 전으로 그러나 이미 원격저장소에 push를 한 상태면 reset은 잊도록 하자. 로컬 git만 하나 전으로 돌아가고 원격 git은 뒤쳐지기 때문.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/sXEGc/btsjGhWxYkd/JAUV88TKxwD2v6mkUuzlT0/img.jpg)
배경 TabLayout의 특정 탭에만 api에서 받아온 이미지를 노출시키면서 기존에는 tab.customView를 세팅해서 탭 뷰를 통째로 새로 그렸다. val tabDataList : List // tab data //.. with (binding) { tabs.setupWithViewPager(viewPager) for (i in 0 until tabs.tabCount) { val tab = tabs.getTabAt(i) val tabData = tabDataList[i] if (!tabData.imgPath.isNullOrEmpty()) { // 이미지 정보가 있을 때만 커스텀뷰로 노출 val imageCustomBinding = ViewGnbImageCustomBinding.inflate(layo..
https://www.museum-carbon-project.org/ Museum-Carbon-Project MMCA 다원예술 2022 «미술관-탄소-프로젝트» www.museum-carbon-project.org MMCA 다원예술 2022 «미술관-탄소-프로젝트» 웹사이트는 아래의 개발 지침에 따라서 개발되었다. - 친환경 호스팅 업체를 사용한다. - 유지 보완 보수가 쉽도록 코드를 작성한다. - 유저가 원하는 정보를 더 쉽게 확인할 수 있도록 검색엔진에 최적화를 진행한다. - 트리쉐이킹 툴을 이용, javascript에서 사용하지 않는 코드를 확인해서 제거한다. - Purge CSS 툴로 불필요한 코드를 제거한다. - 사이트에 캐시를 추가해 이미지, 텍스트의 불필요한 요청을 최소화한다. - html과..
https://youtu.be/V60QQDA57SA 키워주고 싶은 신입 개발자 1. 회사 스펙을 문서로 정리해서 선배와 공유 (문서화) 2. 제품의 이해: 써보고 불편한 점 / 버그 정리 3. 팀에서 개발하고 있는 모듈의 이슈를 받아와서 PR해봄 4. 리팩토링은 유닛테스트가 필수! 5. 밝고 긍정적이게 댓글에서 보고 추가 1. 자기 개발 일정 미리 끝내고 다른 팀원들 챙기기 2. 연봉 목메지 말고 능력 가꾸기 3. 도움만 요청하는 개발자보다 도움주는 개발자 되기