본문 바로가기

코드스피츠 1강 오브젝트 1회차 (1) 책 오브젝트를 기반으로 하는 코드스피츠 강의 오브젝트 - 1회차 (1) 를 정리한 내용입니다. 1.코드스피츠 1강 오브젝트 1회차 (1) 2.코드스피츠 1강 오브젝트 1회차 (2) 3.코드스피츠 1강 오브젝트 2회차 4.코드스피츠 1강 오브젝트 3회차 5. 코드스피츠 1강 오브젝트 4회차 6. 코드스피츠 1강 오브젝트 5회차 7. 코드스피츠 1강 오브젝트 6회차 Value 켄트벡이 개발자 세계에서 제시하는 3가지 가치 Communication Communication 이 잘되지 않으면 그만큼 비용이 발생한다. Simplicity 간단하게 코드를 짜라 Flexibility 유연성을 얻기 위해서는 간단하게 짜라! Principle 원칙을 다같이 지키고 있을때 그 효과를 발휘한다. 또, 불필요한 비용을 줄일 .. 더보기
[WWDC 2018] iOS Memory Deep Dive (1/2) WWDC 2018 iOS Memory Deep Dive 를 정리한 포스트입니다. 더 자세한 내용을 원하시면 위 링크를 참조하시길 바랍니다. Virtual Memory? Device마다 RAM의 크기는 다르며, 서로 다른 RAM 시스템을 통일된 Adress 시스템으로 추상화하는 기술을 Virtual Memory라고 합니다. Virtual Memory 주소가 "Virtual"의 의미는 물리적 주소가 정렬할 필요가 없다는 것을 의미합니다. 앱의 모든 프로세스는 가상 메모리 공간을 확보하고 해당 공간의 모든 주소에 액세스 할 수 있습니다. 모든 가상 메모리 공간에는 동일한 주소 목록이 있다는 점을 고려해야 합니다. 한 프로세스에서 동일한 주소는 다른 프로세스에서 다른 물리적 주소이므로 다른 프로세스의 메모리 블.. 더보기
IPA 추출 방법 (<= iOS 9) iOS 9.0 이상부터 IPA 추출 방법을 소개합니다. Apple Configurator 2 를 Mac에 설치 다운로드를 받은 후 Mac에 설치합니다. 1. Apple Configurator 2 > Device 선택 > 추가 > 앱 2. 앱 선택 > 추가 3. 1,2 번 항목을 진행하면 아래와 같이 진행 화면이 표시됩니다. 4. 아래 경로에 ipa 가 생성되야 하지만 지금은 생성이 되지않았군요. ~/$HOME/Library/Group Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps 5. 1,2,3 과정을 다시 한번 진행합니다. 6. 충돌이 발생하면서 Temp 영역에 IPA 를 .. 더보기
Understanding and Analyzing Application Crash Reports (2/2) Understanding and Analyzing Application Crash Reports (1/2) Understanding and Analyzing Application Crash Reports (2/2) Symbolicating iOS Crash Reports With Xcode Symbolicating Crash Reports With atos Determining Whether a Crash Report is Symbolicated Exceptions Binary Images Thread State 위에 내용은 건너뛰었습니다. 전체 내용을 확인하실려면 여기에서 확인해 주세요. Analyzing Crash Reports Header 모든 충돌 보고서는 헤더로 시작합니다. Incident Id.. 더보기
Understanding and Analyzing Application Crash Reports (1/2) Understanding and Analyzing Application Crash Reports (1/2) Understanding and Analyzing Application Crash Reports (2/2) Symbolicating Crash Reports Symbolication는 symbols로 알려진 소스 코드 방법 또는 함수 이름에 대한 역추적 주소를 결정하는 과정이다. 충돌 보고서를 처음 symbolicating하지 않고는 충돌이 어디서 일어났는지 결정하기가 어렵기 때문입니다. Figure 1 Overview of the crash reporting and symbolication process. 컴파일러는 당신의 소스 코드를 기계 코드로 번역할 때, 컴파일된 이진수의 각 기계 명령들을 .. 더보기
[번외편] iOS 사용성 최대로 올려보자! Shimmer 이 포스팅은 "[번외편] 사용성 최대로 올려보자!"의 Series 중 일부입니다. [번외편][이론] iOS 사용성 최대로 올려보자! UICollectionView Custom Layout [번외편][실전] iOS 사용성 최대로 올려보자! UICollectionView Custom Layout [번외편] iOS 사용성 최대로 올려보자! Shimmer Demo Shimmer 소스는 여기에서 확인할 수 있습니다. Playground UI Preview! playground 에서 preview 를 볼 수 있습니다. 에뮬레이터에 설치하는 시간을 줄일 수 있습니다. Code Layer 의 좌표계입니다. Shimmer Gradient 가 어떻게 생겼는지 확인해 보죠! gradient.startPoint = CGPoi.. 더보기
[번외편][실전] iOS 사용성 최대로 올려보자! UICollectionView Custom Layout 이 포스팅은 "[번외편] 사용성 최대로 올려보자!"의 Series 중 일부입니다. [번외편][이론] iOS 사용성 최대로 올려보자! UICollectionView Custom Layout [번외편][실전] iOS 사용성 최대로 올려보자! UICollectionView Custom Layout [번외편] iOS 사용성 최대로 올려보자! Shimmer 이 포스트는 iOS 사용성 최대로 올려보자! UICollectionView Custom Layout 실전편입니다. 이론편을 확인하고 오시면 더욱 이해하기 수월합니다. Demo Layout 구성 Heights 각 Cell 의 높이를 표시합니다. Layouts 각 Cell 의 View 를 표시합니다. Layout은 위와 같이 구성되어 있습니다. Srction 0 .. 더보기
[번외편][이론] iOS 사용성 최대로 올려보자! UICollectionView Custom Layout 이 포스팅은 "[번외편] 사용성 최대로 올려보자!"의 Series 중 일부입니다. [번외편][이론] iOS 사용성 최대로 올려보자! UICollectionView Custom Layout [번외편][실전] iOS 사용성 최대로 올려보자! UICollectionView Custom Layout [번외편] iOS 사용성 최대로 올려보자! Shimmer Creating Custom Layouts UICollectionViewFlowLayout 클래스는 최적화 되어 있기 때문에 Custom Layout 구현해야 하는 이유를 고려해야 합니다. Grid, Linear 줄 바꿈 레이아웃의 한 방향 이상의 스크롤링이 필요할때 모든 셀 위치를 자주 변경하기 위하여 Custom Layout을 작성하는 것이 기존 FlowL.. 더보기