JIGGAG

9월 한달동안 로그

2021년 10월 3일

9/26 ~ 9/30

아이콘을 텍스트로

  • 자꾸 SVG를 텍스트와 동일하게 취급하려다보니 lineHeight가 안맞는다
  • 차라리 전부 한글이거나 영문이면 임의로 조정이라도 하겠는데
  • 어떤 문자가 오게 될지 모르기 때문에 결국 전부 높이가 들쭉날쭉해진다
  • (+문자마다 baseline이 다르기 때문에)
  • (+8월에도 겪은 이야기)
  • (+폰트란 무엇일까 찾아보기도 했지만)
  • 그러다 SVG 자체를 폰트처럼 만들어서 사용하는건 어떨까하는 힌트에 찾아보기 시작
  • SF Symbols
  • iOS 13부터 지원하기도 하고 안드로이드는 답이 없으므로.. 이건 탈락

iOS 상태바

  • 현재 그려져있는 화면은 상태바를 덮는 느낌으로 딤처리 되기를 원했다
  • 그러나 RN에서는 상태바 barStyle, backgroundStyle만 변경할 수 있다고 알고 있었다
  • 레이아웃을 덮는 형태로는 안될까요? 하는 질문에 다시 한번 생각해보게 되었다
  • 검색을 해보려고 해도 무엇을 찾아봐야할지 감이 없어서 도움을 요청하였다 ㅠㅠ
  • iOS에는 zIndex처럼 UIWindow.Level을 바꿔줘서 계층을 변경할 수 있는데
  • 같은 Level 안에서 여러가지 뷰가 그려져 있더라도 Level이 높은 레이아웃이 가장 위에 그려지면서 덮어지게 된다 (normal < statusBar < alert)
  • zIndex처럼 상위 레이아웃이 위를 덮는 형태이기 때문에 상태바 위를 덮는 화면을 그려주고 싶다면 windowLevel을 바꿔서 상태바의 windowLevel보다 높은 레이아웃을 그리면 되는 것
  • 그럼 여기서 UIWindow는 뭘까?
  • 지금 앱 구성을 보면 UIWindow 속에 UIView가 있고 그 안에 레이아웃이 잡혀있는데?
  • open class UIWindow : UIView => UIWindow가 UIView의 서브클래스이다
  • 그럼 왜 맨처음에 UIWindow를 그릴까?
  • UIViewController에서 rootView를 그리는데 UIViewController에서는 View를 직접 제어하는게 아니라 앱에 띄워지는 Window를 제어한다
  • 하나의 Window에는 여러 View가 그려질 수 있고 하나의 앱에서 여러 Window를 가질 수 있다
  • (+ UIWindow.isKeyWindow로 지금 활성화된 Window를 확인한다는 점에서 navigation.isFocused 같다)
  • 그럼 왜 맨처음에 UIWindow를 그릴까? => 처음에 메인 Window 하나를 갖고 있는 것이다
  • 여러개의 Window를 Level을 바꿔서 그려주면 상태바를 덮는 레이아웃을 그릴 수 있는 것이다
  • 그렇지만 RN에서 사용중인 Window는 여러 Window 중 가장 아래에 위치하고 있다
  • 여러 Window를 추가해도 RN이 사용하는 Window 자체는 변경되지 않기 때문이다 (RN에서는 상태바를 덮는 뷰를 그릴 수 없고 네이티브 뷰를 추가해주어야만 하는 이유)
  • 왠지 나와 비슷한 의식의 흐름을 갖고 있던 블로그... 친구와 같이 스터디하는 기분이 들었다
  • 근데 windowLevel을 상태바보다 크게 변경해주어도 딤처리가 되지 않았다!!??? ⁉️

9/19 ~ 9/25

다시

  • 반복되는 일정
  • 마음을 가다듬고

RN 0.65

9/12 ~ 9/18

다시

  • 동작하는게 전부가 아니라 왜 동작하는지 알아야한다는걸 다시 새기며
  • 내 것이 될때까지 계속 되새기면 언젠가 내 것이 되겠지

RN 0.65

9/5 ~ 9/11

  • 왜 일주일이 또 지나갔을까

RN 0.65

  • 어느때와 똑같이 버전을 올리려고 했을뿐이다
  • 그런데 왠지 이번엔 너무나 수월했다
  • 변경된 내용이 간단했다
  • 그렇게 yarn install && yarn ios
  • Last few GCs
  • allocation failure scavenge might not succeed
  • ?????????????????????????????????????? ⁉️

9/1 ~ 9/4

깃헙 액션

  • 코드푸시가 실패하는 줄 알았더니
  • bugsnag sourcemap 업로드를 실패하는거였네
  • 코드푸시 하면서 빌드한 파일을 올려야하는데 경로를 파일을 찾을 수 없다
  • 왜?
  • 아무리 생각해도 왜 로컬을 되는데 액션에서는 안될까?
  • 문득 떠오른게 appcenter-cli 버전
  • 지난번 겪었던 건데 잊고 있었다
  • 안드로이드 빌드를 위해 macos가 아니라 Ubuntu로 설정하고 테스트 중이였다
  • 그리고 Ubuntu에는 appcenter가 내장되어 있지 않아 전역으로 추가해주었는데
  • 이것이 로컬과의 차이점이 있었다
  • no such file or directory, open 'build/android/CodePush/index.android.bundle.hbc.map'
  • 빌드된 내용을 보니 저 파일만 없었다
  • hbc 이름도 수상한 hermes sourcemap이 생성되지 않고 있었다
  • 우선은 appcenter-cli 버전을 로컬과 동일하게 명시해주니 해결은 되었는데, 버전을 올리고 해결해야겠다
  • 찾다보니 흘러들어간 appcenter 깃헙 이슈
  • 그러다 도착한 bugsnag 깃헙 이슈

Animated

  • 왜 계속 모르는것만 나올까
  • 나도 잘하고 싶은데!