일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- UITextView
- map
- uitableview
- combine
- Human interface guide
- 리팩토링
- Clean Code
- swift documentation
- 클린 코드
- Observable
- rxswift
- collectionview
- Refactoring
- RxCocoa
- uiscrollview
- ios
- tableView
- HIG
- Protocol
- SWIFT
- 리펙터링
- swiftUI
- clean architecture
- UICollectionView
- 스위프트
- 리펙토링
- Xcode
- MVVM
- 애니메이션
- ribs
- Today
- Total
목록Git, CocoaPods, Xcode, Shell (71)
김종권의 iOS 앱 개발 알아가기
Memory Leak 메모리 누수는 인스턴스가 할당되었지만, 앱에서 더 이상 사용하지 않음에도 불구하고 해제되지 않은 메모리 블록이나 세션에 대한 참조가 없으면 해제할 방법이 없는 경우 존재 Instrumnets 도구 Xcode에 통합된 일련의 애플리케이션 성능 분석 도구 Allocation 상태를 확인 가능 Memory leak 상태 확인 가능 Instrument 사용하여 Memory Leak 분석 Instruments의 cmd + I로 'Profile' 실행 (I는 Instruments를 의미) 또는, Xcode > Run 아이콘 부분을 long 클릭 > Profile 선택 > Instruments 앱 자동 실행 > Leaks 선택 주의: "permission denied"오류 메시지 뜨는 경우, p..
CocoaPod 클린 후 시도 (아래 방법 순서대로 실행) pod cache clean --all 캐시 삭제 rm -rf Pods pod install 시 설치되는 Pods디렉토리 삭제 rm -rf ~/.cocoapods/repos/trunk/ trunck는 CocoaPods API 서비스와 인증정보를 가지고 있는 디렉토리 pod update pod update {pod name}: Podfile.lock을 참조하지 않고 모든 팟을 최신 버전으로 업데이트 cf) pod install: 새로운 pod을 다운받고 설치, 각 설치된 버전을 Podfile.lock에 기록, install은 Podfile.lock에 지정된 버전만 설치하며 새로운 버전이 존재하는지는 체크하지 않는 명령어 Podfile.lock은 p..
linux 기본 명령어 파일 검색: find $ find . -name "[FILE NAME]" -type f 줄 바꿈 없이 출력 옵션 -print0 find . -name "[FILE NAME]" -print0 특정 파일의 문자열 변경: sed (Stream Editor) -i 옵션: input -e 옵션: 다중 편집을 가능하게 활성화 $ sed -i -e 's/oldString/newString/g' [FILE NAME] // 다중편집: 1~3라인 삭제, oldString을 newString으로 치환 $ sed -e ‘1,3d’ ?e ’s/oldString/newString/g’ find하여, 각각의 파일을 argument화 시켜서 변수처럼 사용방법: | xargs // 찾은 파일들의 ls -l 정보..
코코아팟 라이브러리 만드는 방법 (오픈소스) 코코아팟 라이브러리 소스코드 생성, 오픈소스 만들때 고려할 점 코코아팟 라이브러리 배포 배포 준비 .podspec에 관한 유효성 검증 $ pod spec lint --allow-warnings Git에 있는 라이브러리를 tag작성과 Release하지 않은 경우 발생 Git에서 Release 추가: 방법 참고 - ios-development.tistory.com/356 해결 후 다시 유효성 검증 * WARN 유형 1) "- WARN | summary: The summary is not meaningful.": .podspec부분의 s.summary 값을 디폴트로 둔 경우 2) "- WARN | [iOS] swift: The validator used Swift ..
코코아팟 라이브러리 만드는 방법 (오픈소스) 코코아팟 라이브러리 소스코드 생성, 오픈소스 만들때 고려할 점 코코아팟 라이브러리 배포 소스코드 작성 Pods/Development Pods/JKTextFieldView/ReplaceMe.swift 파일 삭제 후 만들 ViewController 추가 - 디폴트로 생성하지 않고 경로 지정 필요 주의: 따로 경로를 지정하여 생성하지 {project name}/{project name}/Classes에 만든 파일이 저장 안되는 이슈 존재 파일을 다른 곳에서 복사하여 복붙하고 싶은 경우, Finder에서 Classes파일에 복붙 후, Xcode에서 "Add Files to pods"으로 추가하면 편리 실행 화면 오픈소스 만들 때 고려할 점 접근 제한 클래스는 다른 모..
코코아팟 라이브러리 만드는 방법 (오픈소스) 코코아팟 라이브러리 소스코드 생성, 오픈소스 만들때 고려할 점 코코아팟 라이브러리 배포 코코아팟 라이브러리 프로젝트 생성 생성 전에 cocoapods에 담길 git author정보 확인 git author정보 변경 git config --global user.name "Jake" git config --global user.email "palatable7@naver.com" 프로젝트 생성 $ pod lib create {library name} 위 명령어 입력 시 옵션 선택 생성된 파일 확인 자동으로 실행된 Example/JKTextFieldView.xcworkspace 파일 swift version을 최신으로 변경 {library name} 디렉토리 위치에 ..
commit 삭제 방법 일반적으로 사용하는 것은 revert이지만 revert는 커밋 정보가 남기 때문에 (과거의 커밋 + 커밋이 수정되었다는 최신 커밋) 다른 방법 사용 rebase interactive로 second 커밋으로 HEAD이동 -> second를 revert -> revert 내용 커밋과 second커밋 두개를 squash하여 내용 삭제 * 가끔 git rebase --continue를 하면 commit안의 수정 내용은 없지만, 커밋포인트가 살아있는 버그 존재 -> 직전 commit point를 대상으로 rebase interactive로 Head 이동 후 continue rebase를 선택하면 제거
Tag와 Release tag를 작성하여 등록해놓으면 자동으로 Release정보가 아래처럼 생성 Release 정보를 작성하고 싶은 경우 -> tag를 작성하여 관리 1. Terminal에서 tag 사용 방법 tag 설정이란 커밋을 참조하 쉽도록 알기 쉬운 이름을 붙이는 것 한 번 붙인 태그는 브랜치처럼 위치가 이동하지 않고 고정 tag의 종류 일반 tag: 이름만 붙일 수 있는 것 주석 tag: 이름 / 설명 / 서명 / timestramp 정보 모두 가능 release branch에서는 주석 태그를 사용, feature branch에서는 이름만 붙이는 태그 사용 일반 tag 사용 방법 tag 이름 설정 (현재 HEAD에 tag 설정) $ git tag 특정 commit 버전에 tag 다는 방법 $ g..