profile
러닝커브를 따라서 등반중입니다.
태그 목록
전체보기 (115)kotlin(57)android(54)안드로이드(54)코틀린(36)medium(16)1일1문서(16)기초(9)jetpack(7)jetpack compose(6)navigation(5)epoxy(4)AndroidStudio(4)RecyclerView(4)예제(4)공유(3)ViewModel(3)fragment(3)MVVM(3)json(3)Toyproject(3)fastcampus(3)touch(3)Event(3)View(3)의존성(2)개발(2)에폭시(2)링크(2)클린아키텍처(2)의존성주입(2)댓글(2)에러(2)오류(2)동기(2)비동기(2)라이브러리(2)context(2)dagger(2)di(2)리사이클러뷰(2)class(2)Andorid(2)Glide(2)LiveData(2)예시(2)compose(2)Paging3(2)구현(2)coroutine(2)Android Studio(2)ImageView(2)Immutable(1)다중 클릭(1)src(1)SharedFlow(1)회고(1)정적 언어(1)패러다임(1)position(1)커뮤니티(1)Dispatcher(1)clipboard(1)sql(1)visibility(1)협업툴(1)데이터 공유(1)롤링(1)AsyncListDiffer(1)프로가드(1)DML(1)URI(1)onRenderedFirstFrame(1)GET(1)CAA(1)페어프로그래밍(1)push(1)RX(1)coldflow(1)library(1)dimensions(1)OOP(1)entrypoint(1)lifecycleOwner(1)재구성(1)엔트리포인트(1)컨텍스트(1)requestDisallowInterceptTouchEvent(1)List(1)lint error(1)http(1)상태(1)convert(1)응답코드(1)애자일(1)린트(1)withContext(1)이중(1)무한스크롤(1)아임포트(1)Epoxy SnapHelper(1)범위 지정 함수(1)thumbnail(1)바텀시트(1)이미지(1)boolean(1)동기적처리(1)lifecycle(1)postvalue(1)카카오(1)mutable(1)배너(1)Eventbus(1)LifeCycleScope(1)oAuth(1)Flamingo(1)통신(1)스냅헬퍼(1)lottie(1)트렐로(1)(1)구독(1)페이스북(1)버전(1)dataclass(1)애니메이션(1)url(1)DDL(1)fade in(1)람다(1)다이나믹링크(1)뷰페이저(1)backstack(1)클립보드(1)snapHelper(1)DP(1)앱 설치(1)콘텐츠 라벨(1)소프트키(1)shape(1)proguard(1)옵저버(1)lateinit(1)플레이어(1)with(1)tutorial(1)vector(1)Dex(1)requestLayout()(1)안정화(1)SharedPreference(1)navigate(1)ViewPager(1)throttle(1)debounce(1)Bitmap(1)webview(1)fade out(1)서버(1)NavController(1)명령형UI(1)터치영역(1)invalidate(1)fragmentManager(1)exoplayer blink(1)분류(1)TCL(1)BackHandler(1)후기(1)레트로핏(1)clipboard manager(1)PagingListAdapter(1)composition(1)coroutineScope(1)autoscroll(1)문맥(1)푸시알림(1)Datastore(1)padding(1)문서 해석(1)오픈소스(1)activityviewmodels(1)계층(1)디버깅(1)자동스크롤(1)GuideLine(1)위치(1)prevent(1)backpress(1)multi click(1)파이어베이스(1)ide(1)login(1)exoplayer listener(1)라이브데이터(1)RxJava(1)logcat(1)apptheme(1)rearrangement(1)error(1)PendingIntent(1)공식문서(1)로딩속도(1)jitpack(1)find(1)opensource(1)늦은 초기화(1)RxAndroid(1)let(1)내비게이션바(1)클로저(1)네아로(1)백그라운드쓰레드(1)위치 저장(1)CS(1)require(1)캐시(1)DiffUtil(1)sizeMultiplier(1)패딩(1)데이터스트림(1)also(1)foreach(1)fmc(1)auto(1)이니시스(1)shutter(1)Collection(1)activityViewModel(1)pattern(1)option(1)flow(1)trello(1)히스토리(1)ExoPlayer(1)힐트(1)State(1)popuptoinclusive(1)Picasso(1)접근 제한자(1)update(1)obeserver(1)background(1)intercept(1)datastream(1)파싱(1)hilt(1)clone(1)난독화(1)메세지(1)AAC(1)require vs get(1)manage(1)30(1)visiblee(1)데이터스토어(1)remember(1)(1)by lazy(1)Expand(1)navigateup(1)setvalue(1)stateFlow(1)version(1)popupto(1)코루틴(1)카드결제(1)의존(1)dynamiclink(1)FragmentManagerApi(1)notification(1)viewlifecycleowner(1)파란만장(1)소셜(1)ListAdapter(1)프로그래밍 언어(1)infiniteitem(1)이미지뷰(1)테크스펙(1)Intent(1)메시지(1)Configuration(1)설치 여부(1)차이점(1)확인(1)textview(1)선언형UI(1)동적링크(1)DCL(1)높이(1)노티(1)커뮤니티 댓글(1)EditText(1)대댓글(1)requireparentfragment(1)gson(1)contentdescription(1)nestedcomment(1)해석(1)popbackstackk(1)뷰모델(1)Access Modifier(1)업데이트(1)BottomSheetBehavior(1)일반결제(1)hotflow(1)깜박임(1)메인쓰레드(1)retrofit2(1)웹뷰(1)Pending(1)정기결제(1)rxkotlin(1)MVP(1)deeplink(1)카드등록(1)컴포즈(1)json 파싱(1)스크롤(1)안드로이드 결제(1)set(1)run(1)롤링배너(1)Listener(1)jitpack.io(1)ViewModelScope(1)retrofit(1)생명주기(1)저장(1)mvp패턴(1)apply(1)drawble(1)디버그(1)Refresh(1)Comment(1)종료(1)대응(1)기본(1)로그캣(1)PagingAdapter(1)메모리(1)페이징(1)Expected BEGIN_OBJECT but was STRING at line 1 column 1 path(1)ConstraintLayout(1)airbnb(1)카카오톡 공유(1)
post-thumbnail

# Go to Flamingo

Go to Flamingo 안드로이드 스튜디오를 사용하다 보면 여러가지 버전을 만나게 된다. 혼자서 개발을 진행하거나 규모가 작은 스타트업에서 개발을 진행할때에는 안드로이드 스튜디오의 새로운 버전이 나올때마다 계속해서 업데이트를 진행했었다. 체감상 한달에 한번정도씩은 마이너 버전 업데이트부터 가끔씩 이름이 바뀌는 대규모 메이저 업데이트까지 다양하게 이루어졌었다. 그때는 그게 행복인줄 몰랐었다. 하지만 현 회사에서는 그게 어려웠다. 왜 버전업데이트 안해? “혼자서 개발을 진행하거나 규모가 작은 스타트업” 에서는 가능할 수도 있다. 혹은 회사에서 버전에 대한 업데이트를 중요하게 생각하여 사용하는 라이브러리들을 항상 최신화 시키거나 아니면 은행과 같이 써드파티 라이브러리를 사용하는것이 부담스러워서 프로젝트에 여러가지 라이브러리를 사용하지 않는 경우도 가능하다고 말할수 있다. 하지만 꽤(?)많은 규모가 어느정도 있고 연력이 있는 회사들은 앞선 전임자들의 레거시와

2023년 4월 20일
·
0개의 댓글
·

ReqeustLayout() VS Invalidate()

개발을 진행하다 보면 특정 상황에 따라서 화면 전체가 아닌 특정 뷰에 대한 업데이트를 진행해야 할 경우가 종종 발생합니다. Android에서 UI 업데이트를 수행할 때, requestLayout() 및 invalidate() 메서드가 사용됩니다. 이 두 메서드는 UI 업데이트를 수행할 때 사용되지만, 각각 다른 방식으로 동작합니다. requestLayout() requestLayout() 메서드는 View의 레이아웃을 갱신하기 위해 호출됩니다. 즉, View의 크기나 위치가 변경되었을 때 호출됩니다. 이 메서드는 View의 크기나 위치가 변경되면 View의 부모 ViewGroup에게 레이아웃 갱신을 요청합니다. 그리고 ViewGroup이 다시 자식 View의 크기와 위치를 계산하여 레이아웃을 다시 그립니다. 따라서, requestLayout() 메서드는 View의 레이아웃을 갱신하고 다시 그리는 데 사용됩니다. invalidate() invalidate() 메서드

2023년 3월 29일
·
0개의 댓글
·