일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ios
- RxCocoa
- clean architecture
- Protocol
- combine
- swiftUI
- ribs
- 애니메이션
- 클린 코드
- HIG
- Refactoring
- UITextView
- map
- SWIFT
- uitableview
- 리펙터링
- Human interface guide
- Observable
- 리팩토링
- rxswift
- tableView
- Clean Code
- MVVM
- uiscrollview
- 리펙토링
- Xcode
- 스위프트
- swift documentation
- UICollectionView
- collectionview
- Today
- Total
목록ios (1095)
김종권의 iOS 앱 개발 알아가기
함수 가능한 하나의 함수는 20줄도 길다고 생각하여, 짧게 만드는것이 가독성에 중요한 요소 하나의 함수가 길어진다면, 그 길어지는 것들을 또다른 함수로 정의하여 그것을 호출하도록 설계 함수 안의 if, guard문의 블록은 여러줄이 아닌 한줄로 구현 하나의 함수는 한가지의 일만 하도록 구현 ex) 페이지를 입력받아서 HTML로 변환하는 함수 정의 - 입력받은 페이지가 테스트 페이지인 경우, 설정페이지(setup)와 해제페이지(teardown)에 페이지를 넣고 해당 테스트 페이지를 HTML로 렌더링하는 기능 WRONG - if문 블록이 한줄을 넘어가므로 잘못된 코드 - 하나의 함수에서 다양한 일 처리 (페이지를 가져오고, 설정페이지와 해제페이지를 추가하는 작업) func renderPageWithSetup..
의도를 명확히 좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 더 많은 장점이 존재 의도가 명확하게 이름을 지을 것 (주석이 필요하다면 의도를 명확히 드러내지 못한 것) 존재 이유는? 수행 기능은? 사용 방법은? WRONG var d: Int // 경과 시간 (단위: 날짜) RIGHT var elapsedTimeInDays: Int var daysSinceCreation: Int var daysSinceModification: Int var fileAgeInDays: Int 잘못된 정보를 지양 여러 계정 그룹을 묶을 때 실제 List가 아니면 accountList라 하지 않는것을 주의 실제 컨테이너가 List인 경우에도 컨터이너 유형을 이름에 넣지 않는 것이 바람직 WRONG var ..
론 제프리스(Ron Jeffries)의 클린 코드 정의 중복 줄이기 표현 높이기(네이밍) 초반부터 추상화 고려(DIP) - 지금은 간단하게 재빨리 구현했다가 나중에 구현체만 변경 가능, 추상화하면 `진짜`문제에 신경 쓸 여유가 생기는 효과 C++ 창시자, Bjarne Stroustrup의 클린 코드 정의 버그를 줄이기 위해서 논리가 간단한 코드 유지보수를 쉽게하기 위하여 의존성을 줄인 코드 나쁜 코드는 너무 많은 일을 하려 애쓰다가 의도가 뒤섞이고 목적이 흐려지기 때문에, 클린 코드는 한 가지에 `집중`한 코드 나쁜 코드는 `유혹`을 하여, 나쁜 코드를 고칠 때 또다른 나쁜 코드를 생성할 확률이 높아지므로 애초부터 아무리 바쁜 상황이라도 나쁜 코드를 지양하는 습관이 필요 나쁜 코드가 생기면 안되는 이유 ..
1. WKWebView - UIToolBar 사용하여 뒤로가기, 앞으로가기 구현 (goBack(), goForward()) 2. WKWebView - Header 설정, Cookie 설정, access token 전달, deeplink 수신 방법 3. WKWebView - 양방향 통신, WKUserScript, WKScriptMessageHandler 델리게이트를 구현하여 JavaScript interface 사용 방법 Swift -> JavaScript WKUserScript 사용 webView에서 웹페이지로 script를 주입시킬때 사용하는 script WKUserContentController() 인스턴스에 WKUserScript 값을 추가하고, WKUserContentController인스턴스를 ..
* WKWebView 기초 개념은 이곳 먼저 참고: https://ios-development.tistory.com/700 1. WKWebView - UIToolBar 사용하여 뒤로가기, 앞으로가기 구현 (goBack(), goForward()) 2. WKWebView - Header 설정, Cookie 설정, access token 전달, deeplink 수신 방법 3. WKWebView - 양방향 통신, WKUserScript, WKScriptMessageHandler 델리게이트를 구현하여 JavaScript interface 사용 방법 Header 주입 방법 WebViewController에 header 프로퍼티 정의 private var headers: [String: String] { let b..
* WKWebView 기초 개념은 이곳 먼저 참고: https://ios-development.tistory.com/700 1. WKWebView - UIToolBar 사용하여 뒤로가기, 앞으로가기 구현 (goBack(), goForward()) 2. WKWebView - cookie 설정, access token 송신, deeplink 수신 방법 3. WKWebView - 양방향 통신, WKUserScript, WKScriptMessageHandler 델리게이트를 구현하여 JavaScript interface 사용 방법 설계 UIViewController를 상속한 BaseViewController를 생성하고, 여기서 ToolBar에 들어갈 뒤로가기, 앞으로가기 UIBarButtonItem 인스턴스 생성..
1. fastlane이란? 2. Bundler란? cocoapod 동기화 방법? 3. fastlane match (certificate, provisioning profile 정보를 git에 저장) 4. fastlane build_app (빌드, firebase에 배포) 5. fastlane 앱 스토어에 배포 (App Store Connect) 6. fastlane register devices, 디바이스 정보(UDID, Name) Apple Developer에 등록 방법 (register_devices) *7. fastlane 총 정리 및 phase별 configuration 설정, 환경변수 설정 *8. fastlane과 Bitrise를 이용한 자동 배포 구축 방법 cf) fastlane 환경 변수 (..
1. fastlane이란? 2. Bundler란? cocoapod 동기화 방법? 3. fastlane match (certificate, provisioning profile 정보를 git에 저장) 4. fastlane build_app (빌드, firebase에 배포) 5. fastlane 앱 스토어에 배포 (App Store Connect) 6. fastlane register devices, 디바이스 정보(UDID, Name) Apple Developer에 등록 방법 (register_devices) *7. fastlane 총 정리 및 phase별 configuration 설정, 환경 변수 설정 *8. fastlane과 Bitrise를 이용한 자동 배포 구축 방법 cf) fastlane 환경 변수 ..