android(42)
-
gradle kotlin dsl migration - 1.BuildSrc 폴더 생성하고 그 안에 build.gradle.kts 생성
android의 multi module, modularization을 통한 이점으로 android clone coding에 차별화를 두고 싶었습니다. 시작은 좋았지만...모듈화를 할 때 build gradle 관리를 kts 를 이용해서 하는 걸 보고 migration 하다가 삽질한 게 최근 업데이트된 걸로 그나마 알려드리고 싶어 글을 적습니다. 그래서 kotlin dsl? kts? 그게 뭐야?? 먹는건가?? DSL이란 Domain Specific Language의 약자로 특정 분야에 최적화된 프로그래밍 언어를 뜻한다. 상용구 코드를 최소화하기 위해 명령형 코드 대신 선언적 코드 형식을 따르고, Kotlin DSL은 코틀린의 언어적인 특징으로 가독성이 좋고 간략한 코드를 사용하여 Gradle 스크립팅을 하..
2022.04.27 -
android fragment lifecycle adapter 위치 정리
insta clone coding을 하는 도중 궁금한 게 생겨 정리해보려고 한다. fragment에 Recyclerview adapter를 연결해야 했는데 어느 시점에 만들어야 할지 정확히 몰랐다. onCreateView와 onViewcreated 둘 중에 어디로 보낼지 헷갈렸다. 그래서 Fragment의 LifeCycle에 대해 검색하였고 공홈에서 알게 되었다. 일단 Fragment의 생명주기에 대해 사진으로 보면 view를 만들 때 Activity 랑 비슷하지만 조금 길다. 그럼 여기 중에 내가 Adapter를 넣어야 하는 곳은 어디일까?? 검색해 보니 공식 홈에 onCreateView()에서 작업하라고 나와있다. LiveData, RecyclerView, ViewPager2 adpater 등을 이곳..
2022.04.25 -
Instagram App clone coding(2)
대략적인 틀은 일단 이렇게 하려고 한다. 그림처럼 앞서 만들었던 bottomNavigation 을 이용해 5개의 fragment 를 연결하고 처음 나오는 Home 화면에 ViewPager2 를 이용하여 3개의 fragment를 만들었다. 두번째로 돋보기를 누르면 나오는 View인데 여기에는 Appbar collapstingToolbar를 이용하여 사라지게 하고 밑에 RecyclerView Layoutmanager로 GridLayout span 열당 3개씩 오게 설정하자. 3번째 4번째 fragment는 릴스와 샵 인데 좀 더 생각해보려고 한다. 일단. 릴스는 recyclerview 달고 Recyclerview item 에 버튼이랑 영상들어가는 view 좋아요 팔로우 이런 버튼 달아서 어뎁터에서 Data ..
2022.04.25 -
Instagram App clone coding (1)
Instagram clone coding을 시작했다. 인터넷에 인프런 강의로 이미 많은 사람들이 따라한 결과와 흔적이 있었다. 시간이 지나 달라지기도 했고 참고는 하지만 나는 내 나름대로 만들어보고 싶었다. 각 과정을 기록하고 어렵거나 몰랐던것 위주로 정리를 하고, 나름의 과정을 공유하여 나중에 혹시 이 글을 읽어보는 분들에게 조금이나마 미약한 실력이지만 도움이 되었으면 좋겠다. 그럼 시작해보자. 먼저, 인스타의 사진을 보자. > Image credit : Instagram 대략적인 틀을 먼저 생각해보았다. 밑에 5개의 버튼이 있고 각 버튼을 누르면 화면이 나온다. BottomNavigation으로 만들면 될 것 같다. 아래의 사진처럼 5개의 프래그먼트를 만들고 BottomNavigation을 Graph..
2022.04.25 -
android Unit test는 왜 작성할까?
Q. Test code는 왜 작성하고 중요할까? 여러가지 이유가 있는데 나는 결국 리소스 낭비를 방지하기 위해인 것 같다. 테스트를 위해 매번 전체 빌드는 매우 비효율적인 작업이다. 빌드 시간 + 반복적인 작업으로 생산성의 감소가 발생하고, 결국 휴먼 리소스의 낭비로 이어진다. 업무의 효율성과 생산성, 코드의 신뢰성을 높이기 위해서는 네거티브 요소들을 배제해야한다. 그러기 위해 테스트코드 작성은 매우 매우 중요하다고 생각한다. Q. 중적점으로 check할 영역은 어디일까?? 1. 비즈니스 로직 2. Viewmodel 3. Presenter instrumented test가 뭐지 ? -> 기기에 올려서 테스트 하는 것. espresso -> UI 테스트 라이브러리 unit test는 robolectric ..
2022.04.12 -
android 빌드 시간을 단축 하기 위한 노력.
빌드 시간을 어떻게 단축 시킬수 있을까? 일단 컴퓨터 사양이 좋으면 당연히 빌드 시간은 빠르다! 그럼 이거 말고 뭐가 있을까??? 1. android build cache fix gradle plugin 이용 2. Remote Cache 3. buildscript 최적화 4. 빌드를 준비하는 시간의 병목현상 관리 5. 빌드 환경 공통 세팅 BUT . 빌드 시간도 중요하지만, 빌드 안정성이 더 중요하다. 그러기 위해선 테스트 多 , 시스템의 이해도가 필요하다. gradle property 시스템 이용. 빌드 환경의 파편화로 인해 최적화된 값을 설정할 수 있도록 구성 -> 전체 빌드 시간을 줄이고 데일리 코딩의 빌드만 하면 된다. Modularization. 기능별 모듈화를 통해 모듈화의 장점인 유지보수, ..
2022.04.12