본문 바로가기
반응형

전체 글1603

함수를 어떻게 짜죠? -클린코드 중- 클린코드 책을 읽다 보니 이건 기록을 해 두면 좋겠다는 생각이 들어 옮겨 놓는다. 소프트웨어를 짜는 행위는 여느 글짓기와 비슷하다. 논문이나 기사를 작성할 때는 먼저 생각을 기록한 후 읽기 좋게 다듬는다. 초안은 대개 서투르고 어수선하므로 원하는 대로 읽힐 때까지 말을 다듬고 문장을 고치고 문단을 정리한다. 내가 함수를 짤 때도 마찬가지다. 처음에는 길고 복잡하다. 들여쓰기 단계도 많고 중복된 루프도 많다. 인수 목록도 아주 길다. 이름은 즉흥적이고 코드는 중복된다. 하지만 나는 그 서투른 코드를 빠짐없이 테스트하는 단위 테스트 케이스도 만든다. 그런 다음 나는 코드를 다듬고, 함수를 만들고, 이름을 바꾸고, 중복을 제거한다. 메서드를 줄이고 순서를 바꾼다. 때로는 전체 클래스를 쪼개기도 한다. 이 와중.. 2022. 2. 4.
fileManager tmp directory of files delete, stack-logs.xxxx.... 앱을 개발하면서 지속적인 테스트를 진행하다 보니 갑자기 폰에서 용량이 없다는 알림이 떠고 더 이상 앱이 설치 되지 않았다. 설정의 아이폰 용량을 확인해보니 개발중인 앱의 용량 중, 문서 및 데이터의 용량이 20기가 넘어있었다. 설치된 앱의 컨테이너를 다운로드하여 패키지 안을 보니 tmp디렉토리에 알수없는 로그 파일이 잔뜩 쌓여있어 이를 삭제하는 로직을 추가하게 되었다. 근본적인 원인은 누가 쌓고 있는지 모르겠으나, 설사 안다고 해도 라이브러리거나 SDK거나 일게 뻔하디 뻔하여 그냥 앱 시작 시점, 백그라운드 들어가는 시점 등에서 tmp디렉토리의 파일을 삭제하는 함수가 불려지도록 구현을 했다. 따라서 해당 함수를 기록해 둔다. /// 템프폴더의 파일을 삭제 private func clearTmpFolerO.. 2021. 11. 30.
UITableView Grouped 스타일의 헤더 안보이게 처리 UITableView를 가지고 화면을 만들다 보니, 여지껏 알지 못했던 여러가지 설정이나 값들이 있다는 사실을 알았다. 테이블뷰의 스타일을 Grouped로 설정을 하고 tableView의 heightForHeaderInSection의 리턴값을 보통 0으로 리턴을 했지만 결과는 원하는 형태가 아니었다. 인터넷을 찾아보니 나와 비슷한 고민을 한 사람들이 있는 듯 하다. heightForHeaderInSection 의 리턴 값을 0이 아닌 CGFloat.leastNormalMagnitude를 반환하도록 하면 헤더의 높이가 없는 상태로 보여진다. Plain모드에서는 해당 사항이 없고 Grouped 스타일에서 해당되는 내용이다. 오랜만에 포스팅을 올린다. 일이 좀 정리가 되면 여러가지 유용한 정보들을 정리해서 올.. 2021. 11. 12.
UIImageView 회전 애니메이션 (Swift ver) 통합 자산 총액을 새로고침하는 버튼이 있다. 이 버튼이 눌려질 때 버턴 안에 새로고침 아이콘을 회전시켜 달라는 요구사항. 간단하게 생각해서 transform으로 rotationAngle 로 애니메이션을 구현함. UIView.animate(withDuration: 0.8) { let rotate = CGAffineTransform(rotationAngle: .pi) self.refreshIconView.transform = rotate } completion: { result in let rotate = CGAffineTransform(rotationAngle: .zero) self.refreshIconView.transform = rotate } /// completion에서 iconView의 trans.. 2021. 9. 10.
XCode archive distribute content? distribute app 설정 오늘 앱 Archive를 하다가 닥친? 문제. 아카이브 빌드 후 오픈 된 창에서 distribute app이 안나오고 distribute content가 나온다. 이게 뭐야? 난 content는 필요없다. 찾아낸 결과 target Build Settings > Deployment > Skip Install > YES 를 NO로 수정하고 다시 아카이브하면 된다. 끝. 2021. 9. 9.
Xcode Provisioning Profile 삭제 참 다양한 이슈가 발생한다. 여튼, 프로젝트 앱의 프로비저닝이 여러개 발행이 되면서 특정 프로비저닝 파일에서 내 단말의 UDID가 누락된 상황, 빌드를 하니 오류가 발생했다. 인터넷 검색을 통해 찾았지만, 내 블로그에도 기록을 해 둔다. cd ~/Library/MobileDevice/Provisioning Profiles/ 폴더로 이동 한다음, 프로비저닝을 다 지운 다음 새로 넣으면 된다. 끝. 2021. 8. 27.
반응형