2022 Monthly I Learned - kirseia/study GitHub Wiki

2022. 12
2022. 11
  • SwiftUI Charts Tutorial
  • TestFlight에서 매번 표시되는 '수출 규정 준수 없음' 설정을 생략하는 방법
    • 매번 수동으로 하다가 최근에 애플 사이트에 해당 내용에 대한 경고가 있어서 추가했는데, 정리된 글이 있어서 남김.
  • SwiftUI Redraw 분석, 2
    • 코드만 따로 빼놓은 경우는 identity가 변경되어 다시 그려짐, struct 를 아예 분리해서 view를 별도로 만들면 identity 가 별도로 부여되어 관련 없는 경우 redraw 되지 않음
    • 코드는 가능하면 별도 struct view로 extract 하자, 연결되는 값을 통으로 넘기지 말고 가능하면 개별값을 넘겨서 업데이트를 최소화 시키자.
  • SwiftUI - NavigationLink in .sheet 또는 .sheet in NavigationLink 에서 탈출하기
    • 예제와 같은 코드에서 탈출처리 할 때 최종적으로 탈출 후 다른 뷰로 이동처리하거나 하면, 이동되지 않는 경우 있음, 단계별로 disappear 중에 다른 뷰로 이동시켜버리면 disappear 중간에 루트가 사라져버려서 뷰가 남는 경우가 생김. animation 을 끄고 view를 사라지게 하거나 또는 dismiss 애니메이션이 끝날 때까지 대기 후 view 이동 처리를 해줘야 함.
2022. 10
2022. 9
  • CloudKit Product로 로드 설정
  • Xcode 에서 svg 파일의 gradient 처리를 하지 못함. 벡터 대신 png 같은 이미지로 변경해서 사용해야 함
  • SwiftUI Markdown 처리하기
    • swiftui markdown 은 아직까지 문단이나, 중간에 color 를 바꾼다거나 하는건 불가능, 기존의 attributed string 을 활용해야 가능.
    • github 일부 라이브러리는 문단 정도는 지원하기도 하나 컬러 변경 등은 여전히 attributed string 을 활용해야 가능...
  • 원주율은 소수점 몇 째자리까지 필요할까
    • 나사에서는 행성간 여행 할 때 소수점 15자리까지, 우주 크기 계산시 소수점 40번째자리 까지 사용하면 수소 원자 하나의 지름보다 작은 오차가 된다고 함.
    • 개발 이야기는 아닌데 재밌어서 남김.
  • addObserver 이후에 Remove 해야 할까
    • block 기반 등록했으면 remove필요, 그렇지 않으면 안해도 됨.
  • SwiftUI 그림자 관련
    • .background(Color.yellow.shadow...) 이렇게 해도 됐던걸로 기억
  • 악기 튜너 만들기
    • 마이크로 입력받은 것을 fft 로 주파수 분석해서 코드를 찾는 방식. 마이크 -> 버퍼 -> 메모리로 읽어서 fft 처리까지 과정, 언젠가 써먹을지도
  • iOS 16 위젯 대응법
  • Xcode 15의 single size icon
    • 리사이즈 알고리즘 사용하므로 디테일 깨질 수 있음, 기존에도 icon generator 같은걸 이미 쓰고 있다면 single size icon 쓰는게 나음.
    • 디테일 신경 쓴다면 기존처럼 모든 아이콘 따로 만들어서 쓰는게 좋음.
2022. 7
2022. 6
2022. 5
  • AdMob prepare 는 SwiftUI 기준 app 의 .task 가 아니라 .onAppear 또는 onChange(phase - scene)에서 active 됐을 때 처리해야 아이패드에서 크래시 나지 않음.
  • SwiftUI alert -> View.alert(isPresented: ...).alert(isPresented: ...) 중첩하면 오동작함 (동작 안하거나...) -> View.alert(item: )을 활요하자.
  • Xcode shortcut
  • Color Generator - Figma plugin
  • SwiftUI pattern image 배경 처리
  • SwiftUI preferredColorScheme 동작이 안되는 것
    • Color 대신에 UIColor("lightColor") 를 사용할 경우 UIColor 는 colorScheme 에 따라 동작하지 않음.
    • UIColor는 UIColor(color)?.resolvedColor(with: .init(activeAppearance: ...)) 을 사용해야 color scheme 에 따라 동작함
    • 그냥 Color("lightColor")를 사용하면 colorScheme 에 따라 동작함.
  • 화면 캡쳐 시 dark mode / light mode 반영 안되는 것 - 캡쳐 할 window 에 window.overrideUserInterfaceStyle = userInterfaceStyle 설정해줘야 함
2022. 4
2022. 3
2022. 2