Git
Mac/iOS
- [iOS] 준 Clean Architecture With RIBs, ReactorKit 그리고 Tuist를 이용한 프로젝트 모듈화 설계(5) - Repository, Dependency Injection, Service Locator
- [iOS][UIKit] UIViewController의 view를 CustomView로 대체하기
- [iOS][Swift][Modular Architecture] Troubleshooting - Static Library를 모듈로 작업 후, Extension으로 코드 확장시 멤버를 찾을 수 없는 문제와 해결방법
- [iOS] 준 Clean Architecture With RIBs, ReactorKit 그리고 Tuist를 이용한 프로젝트 모듈화 설계(4) - Presentation, Domain
- [iOS] 준 Clean Architecture With RIBs, ReactorKit 그리고 Tuist를 이용한 프로젝트 모듈화 설계(3) - UserInterface
- [iOS] 준 Clean Architecture With RIBs, ReactorKit 그리고 Tuist를 이용한 프로젝트 모듈화 설계(2) - Tuist
- [iOS] 준 Clean Architecture With RIBs, ReactorKit 그리고 Tuist를 이용한 프로젝트 모듈화 설계(1) - 설계편
- [iOS][Tuist 1.7.1] 프로젝트 생성/관리 도구 Tuist(5) - Local Swift Package와 Proxy Swift Package
- [iOS][Tuist 1.7.1] 프로젝트 생성/관리 도구 Tuist(4) - Plugin
- [iOS][Xcode] 서드파티 라이브러리 잘 관리하기 - Static Library와 Dynamic Library의 관점 분리
- [iOS][Tuist 1.7.1] 프로젝트 생성/관리 도구 Tuist(3) - Extension
- [iOS][Tuist 1.7.1] 프로젝트 생성/관리 도구 Tuist(2) - StaticFramework
- [iOS][Tuist 1.7.1] 프로젝트 생성/관리 도구 Tuist(1) - Start
- [Mac][VSCode] 터미널에서 VSCode를 실행하기
- [Xcode] Release로 실행시 BreakPoint가 동작하지 않는 문제 해결
- [iOS]UIViewController가 진입시 viewDidAppear에서 한번만 필요한 기능 호출하기
- [Swift]컴파일 시간을 아주 많이 줄이기
- [iOS][Trick]UILabel에 margin 주기 - UIButton을 이용하기
- [iOS][Swift 2.2]UIViewController에서 UITableView를 분리하여 가볍게 만들기
- [Swift]@IBOutlet의 Forced Unwrapping Optional(!) vs Optional(?)
- [iOS]왜 addChildViewController를 사용해야 하는가? - Container View Controller 구현
- [iOS]Google Analytics에서 광고 없이 IDFA를 사용하여 리뷰 통과하기
- [iOS]ScrollView의 Bounce를 아래에서만 동작하기
- [iOS]Settings Bundle을 이용하여 라이센스를 설정 내에 표시하기
- [iOS][Swift]구글 매터리얼 디자인의 물결 효과 만들기
- [iOS][Swift]이미지로부터 픽셀 데이터 얻어 새로운 이미지 만들기
- [iOS][Swift]NSHTTPCookieStorage를 이용하여 사라진 Cookie 찾기
- [Apple][iTMSTransporter]iTMSTransporter로 인앱 만들기
- [Apple][iTMSTransporter]iTMSTransporter로 인앱 다루기
- [Swift]클래스만 사용 가능한 프로토콜 선언하기
- [iOS][fastlane]Pem과 SSL Certificate Check를 통해 Push 인증서 관리하기
- [Shell][Xcode]PlistBuddy를 이용하여 Plist의 CFBundleVersion 다루기
- [iOS][Xcode]fastlane을 이용하여 쉽게 테스트, 빌드, 배포하기
- [Swift]SpriteKit을 이용하여 UIView에 눈 내리는 효과 만들기
- [Objective-C][Swift]한글 풀어쓰기
- [Objective-C]카테고리로 파일 분리시 속성을 외부에 노출시키지 않기
- [Swift]Swift 로그 매크로(?) 만들기
- [Objective-C]Struct에 Objective-C 객체 사용하기
- [Xcode][iOS]App Transport Security
- [Swift][iOS]Search API를 사용해보자
- [Swift]Error handling in Swift2 - Try/Throw/Catch/ErrorType
- [Swift]런타임시 Mirror를 사용하여 JSON 데이터 만들기
- [Swift]각각의 클래스로부터 동적 디스크립션 만들기
- [Swift] Method Swizzling이란?
- [Swift]Associated Objects로 Delegate에서 Closure로 바꾸기
- [Xcode]뷰 디버깅시 접근성 라벨로 뷰 객체를 빠르게 찾자
- [Swift]트위터 커버 효과 만들기
- [Xcode]사용하고 있는 플러그인 리스트
- [Swift]UIAlertController에서 UITextField 만들기
- [Xcode]XCPlayground Framework
- [Swift]IBDesignable을 이용하여 UIBezierPath로 +와 - 버튼 만들기
- [Swift]UIWebView에서 Request 제어
- [Swift]로딩 이미지 애니메이션 팝업 쉽게 만들기
- [iOS]iOS8에서 UIAlertView 대신에 UIAlertController를 사용하자!
- [Swift]Playground에서 Dimmed를 어떻게 만들까?
- [Swift]Playground에서 CAGradientLayer를 어떻게 적용할까?
- [Swift]Enumeration를 이용한 Binary Tree 만들기
- [Swift]Enumeration를 이용한 Error Handling
- [Swift]NSDataDetector
- [Xcode]dSYM 파일은 어디 있나요?
- [Swift]UIGestureRecognizer
- [Swift]오토레이아웃을 위한 새로운 클래스 NSLayoutAnchor
- [Swift]Method Chaining
- [Swift]weak와 unowned 사용 방법
- [Swift]Iterator 패턴 구현하기
- [iOS]UIDevice의 Orientation을 믿으시나요?
- [Swift]Singleton 패턴 사용 방법 3가지
- [Swift]커스텀 UIButton 클릭시 항상 특정 메소드 호출하기
- [Swift]인터페이스 빌더에서 실시간 렌더링을 통한 커스텀 뷰 만들기
- Xcode 서버와 CI만들기(0)
- [Xcode]Provisioning Profiles 삭제하기
- [Objective-C]Nullability
- [Swift]Autoclosure란?
- [Xcode]Storyboard 또는 Xib 미리보기
- [Swift]쉽게 값을 교환하기
- [Swift]지연 로딩으로 테이블뷰에 데이터를 반영하기
- [Swift]GCD를 이용한 RaceCodition 만들기
- [Swift]NSUserDefaults 값 초기화하기
- [Swift]Function 정리
- [Xcode]스토리보드 안에서 원하는 뷰를 쉽게 선택하기
- [Objective-C]Block 객체 사용하기
- [CoreAnimation]Implicit Animations
- [CoreAnimation]CALayer의 AnchorPoint, zPosition
- [CoreAnimation]Layer
- [Objective-C]GCD의 dispatch group과 notify를 사용하여 작업을 위임하기
- [Objective-C]GCD를 이용하여 데이터 동기화
- [Objective-C]NSOperation과 NSOperationQueue를 사용하는 방법 - 설명 및 예제
- [iOS]AFNetworking에서 afnetworking property with 'retain (or strong)' attribute must be of object type 에러 처리하기
- [Objective-C]PerformSelector 대신 GCD로 호출하기
- [iOS]OpenGL을 사용하는 라이브러리간 화면 객체 충돌을 처리하는 방법
- [Objective-C]숫자에서 3자리마다 ,를 추가시키기 - NSNumberFormatter
- [번역]NYTime의 iOS팀 Objective-C 스타일 가이드
- [Objective-C]nil vs null
- [Objective-C]클래스 확장 - Category, Extension
- [Objective-C]메소드 선언 - Protocol
- [Objective-C]클래스 호출 - @class vs import
- [Objective-C]description - 객체 설명 메소드
- [Objective-C]NSDictionary를 이용한 조건문 제거하기
- [iOS]상태바 표시에 대한 설명
- [iOS]Google Analytics 세션 유지
- [Xcode]Library 호출 시 사용하는 all_load, force_load
- [iOS]View의 Layer 속성 minificationFilter과 magnificationFilter 정리
- [iOS]Storyboard의 Segue를 이용하여 화면 전환하기
- [CoreData]Objective-C 프로젝트에서 MagicalRecord를 이용하여 Core Data 사용하기
- [Xcode]VVDocumenter-Xcode 플러그인 소개
- [iOS]Key Value Coding, Key Value Observing
- [iOS]왜 landscape로 전환하면 viewDidLoad에서는 회전한 가로 및 세로의 값이 portrait 값으로 주는가?
- [Xcode]상세 로그 만들기
- [iOS]키즈 카테고리 가이드라인 및 적용 예제 정리
Shell
Regex
programming
- [Swift] Protocol를 준수하는 Extension 코드를 주의하여 작성하기
- [Swift] 간결한 if let 문은 Optional의 map 그리고 Nil-Coalescing(??)으로 대체하기
- [Swift][SwiftPM] Swift Package - ProcessInfo Environment 기반 빌드 환경설정
- [Swift 5.3] @_exported 속성 정리
- [Swift 5.3+] Binary Framework(XCFramework)를 Swift Package로 배포하기(2) - iOS 프로젝트에 사용하기
- [Swift 5.3+] Binary Framework(XCFramework)를 Swift Package로 배포하기(1) - Swift Package 만들기
- [Swift][SwiftPM] Swift Package로 리소스 번들링하기
- [SwiftPM][Carthage] 라이브러리 Link 경로를 install_name_tool 을 이용하여 변경하기
- [Swift][RIBs] Child Router 변수 할당 및 attachChild 순서
- [Swift][RIBs] RIBs에 Dependency Injection Container를 적용하여 의존성 관계 해결하기
- [Swift5.1+][RIBs] dynamicMemberLookup의 KeyPath를 이용하여 Component의 Dependency 속성을 접근하기
- [LLVM] 정적 라이브러리(Static Library), 동적 라이브러리(Shared Library) 만들기
- [iOS][Swift] 모듈간의 관계를 Dependency Injection Container으로 풀어보자
- [Swift 5.2][BetterCodable] JSON 데이터를 Decode할 때, 키가 없는 경우 PropertyWrapper를 이용하여 빈 값을 채우기
- [Swift5][RIBs] Uber의 RIBs 프로젝트에서 얻은 경험 (6) - ViewControllable 확장 및 Wrapper
- [Swift5][RIBs] Uber의 RIBs 프로젝트에서 얻은 경험 (5) - Adapter
- [Swift5][RIBs] Uber의 RIBs 프로젝트에서 얻은 경험 (4) - Unit Test 작성하기
- [Swift 5.1] Opaque Type과 Type Erasure
- [Swift][Trick] 값이 옵셔널이 아닌데, guard 또는 if let 문에 사용
- [iOS] XcodeProj Gem과 Graphviz를 이용하여 프로젝트의 Framework Dependency Diagram 그리기
- [iOS][Swift] Framework에 있는 이미지를 Imageliteral 사용하여 불러오기
- [Swift5][RIBs] Uber의 RIBs 프로젝트에서 얻은 경험 (3) - Dependency와 Component 그리고 Builder
- [ReactiveX][RxSwift]Single Trait - 장단점
- [Swift5][RIBs] Uber의 RIBs 프로젝트에서 얻은 경험 (2) - 강제성
- [Swift5][RIBs] Uber의 RIBs 프로젝트에서 얻은 경험 (1) - 프로토콜 지향 프로그래밍
- [Swift5.1] Property Wrapper 사용 - 맛보기
- [iOS] 도메인 별로 파일을 모으기
- 2019년 2월 4주 개발 자료 모음집 - Python, iOS, Swift
- [Swift][Trick] Protocol에 정의된 함수에 기본값 사용하기
- 2019년 1월 5주 개발 자료 모음집 - iOS
- 2019년 1월 4주 개발 자료 모음집 - iOS, Swift
- 2019년 1월 3주 개발 자료 모음집 - iOS, Swift, UI, UnitTest
- [RxSwift][Swift3] Closure, Delegate 대신 Observable을 사용해서 응답값을 쉽게 처리하기
- [RxSwift][Swift3]POP를 이용하여 더 나은 MVVM 구조 만들기
- [Swift3][RxSwift]UITableViewCell에서 Rx 사용하기
- [Swift3]Phantom Type
- [Swift3]The Swift Array Design 요약
- [Swift3]향상된 연산자 선언 - precedencegroup
- ABI - Application Binary Interface
- [Swift][Objective-C]컴파일러 경고 해결 - Cast from objectivec type to unrelated type swift type always fails
- [번역]Swift API Design Guidelines
- [ReactiveX][RxSwift]Unit Test 2 - Subject
- [ReactiveX][RxSwift]Unit Test 1 - 핫 옵저버블과 콜드 옵저버블
- [ReactiveX][RxSwift]핫 옵저버블과 콜드 옵저버블
- [ReactiveX][RxSwift]Delegate 패턴을 Rx로 바꾸기
- [ReactiveX][RxSwift]비동기 작업을 스트림으로 만들기 - 네트워크 예제
- [ReactiveX][RxSwift]Combining Operator - startWith, CombineLatest, Merge, Zip, switchLatest
- [Shell][Python][ImageMagick]하얀색을 투명으로 바꾸기
- [ReactiveX][RxSwift]flatMap, flatMapFirst, flatMapLatest
- [ReactiveX][RxSwift]Scheduler, observeOn, subscribeOn
- [Shell][ImageMagick]홀수 크기의 이미지에 패딩 추가하기
- [Swift]Hashable 프로토콜
- [ReactiveX][RxSwift]Subjects - PublishSubject, ReplaySubject, BehaviorSubject, Variable
- [ReactiveX][RxSwift]Observable과 Driver
- [Objective-C][LLVM]Clang diagnostic 경고 무시하기
- [ReactiveX][RxSwift]들어가기 전
- [번역][Swift]값 타입(Value Types)으로 더 나은 앱 만들기
- [번역][Swift]프로토콜지향 프로그래밍
- [Objective-C]Generics를 사용하세요.
- [Swift]Switch문 Trick
- [Swift][일일 코드 #28]코딩도장 - Spiral Array
- [Swift]안전하게 배열 조회하기
- [Swift][일일 코드 #27]코딩도장 - Special Sort
- [Swift][일일 코드 #26]코딩도장 - 가장 짧은 지점 구하기
- [Swift][일일 코드 #25]코딩도장 - Duplicate Numbers
- [Swift][일일 코드 #24]오일러 프로젝트 023
- [Swift]함수 묶기(Binding)
- [Swift][일일 코드 #23]오일러 프로젝트 022
- [Swift][일일 코드 #22]오일러 프로젝트 021
- [Swift][일일 코드 #21]오일러 프로젝트 020
- [Swift][일일 코드 #20]오일러 프로젝트 019
- [Swift][일일 코드 #19]오일러 프로젝트 018
- [Swift][Algorithm]꼬리 재귀
- [Swift][일일 코드 #18]오일러 프로젝트 017
- [Swift][일일 코드 #17]오일러 프로젝트 016
- [Swift][일일 코드 #16]오일러 프로젝트 015
- [Swift][일일 코드 #15]오일러 프로젝트 014
- [Swift][일일 코드 #14]오일러 프로젝트 013
- [Swift][일일 코드 #13]오일러 프로젝트 012
- [Swift][일일 코드 #12]오일러 프로젝트 011
- [Swift][일일 코드 #9]오일러 프로젝트 008
- [Swift][일일 코드 #8]오일러 프로젝트 007
- [Swift][일일 코드 #11]오일러 프로젝트 010
- [Swift][일일 코드 #10]오일러 프로젝트 009
- [Swift][일일 코드 #7]오일러 프로젝트 006
- [Swift][일일 코드 #6]오일러 프로젝트 005
- [Swift][일일 코드 #5]오일러 프로젝트 004
- [Swift][일일 코드 #4]오일러 프로젝트 003
- [Swift][일일 코드 #3]오일러 프로젝트 002
- [Swift][일일 코드 #2]오일러 프로젝트 001
- [Swift][일일 코드 #1]이동하는 방향 확인하기
- [Swift]flatMap을 이용하여 유효한 이미지 리스트를 가져오기
- Helper Class란 뭘까?
- [번역]Github의 Swift Style Guide
- [Git]언제부터 Svn에서 Git으로 전환되었을까?
- 리센룽 싱가포르 총리의 문제
- 순수 함수(Pure Function)
- [Swift]Map 안에서 조건문 써야하나?
- [Swift]커링(Currying)
- [Swift]Insertion Sort
- [Swift]예제로 살펴본 함수형 프로그래밍
- [DesignPattern]데코레이터 패턴(Decorator Pattern)
- [Swift]BubbleSort
- [DesignPattern]커맨드 패턴(Command Pattern)
- [Swift]MergeSort
- [Swift]Quick Sort
- [Programming]Method와 Function의 차이
- [Algorithm]Binary Tree
- [DesignPattern]팩토리 패턴(Factory Pattern)
- [Algorithm]Base64 알고리즘
- [DesignPattern]상태패턴
- [DesignPattern]입문 및 전략패턴
mac/ios
git
blabla
Go
python
Node.js
Programming
- [Swift5] StringInterpolation, StringInterpolationProtocol, 그리고 NSAttributedString
- [Swift5] Import 사용 방법
- [Swift4.1] JSONDecoder의 KeyDecodingStrategy
- [Swift4][ReactiveX] 에러 쉽게 다루기
- [Swift4] LazySequence
- [Swift4]KeyPath의 Get Set 그리고 Observe 사용하기
- [Swift4] Struct를 체이닝 메소드로 값을 계속 변경하기
- [Swift4]옵셔널 비교문 사용시 guard let, if let 대신 if case나 Switch를 사용하자
- [Swift4][ReactiveX]RxSwift를 직접 구현해보기 - Sink
- [Swift4][ReactiveX]RxSwift를 직접 구현해보기 - Event, Disposable, Observer, Observable
- [Swift4][iOS]권한 획득시 비동기를 동기로 처리하기(DispatchSemaphore)
- [Swift4]Protocol Extension, associatedtype, Generic을 이용하여 기능(변수, 함수)을 그룹화하기
- [Swift4]Codable, 현실의 Codable 그리고 Extension
- [Swift3]Protocol Extension(2) - Dynamic Dispatch과 Static Dispatch
- [Swift3]Protocol Extension(1) - 클래스 또는 구조체가 Protocol Extension에 같은 이름을 갖는 메소드나 계산 속성을 가질 때 어떻게 될까?
- [Swift]Name Mangling
iOS/Mac
- [iOS][SwiftPM][Xcode 13.2.1+] SwiftPM로 RxSwift 사용할 때 RxBlocking, RxTest를 유닛테스트에서 사용하기 - 해결편(SwiftPM)
- [iOS][SwiftPM][Xcode 13.0] SwiftPM로 RxSwift 사용할 때 RxBlocking, RxTest를 유닛테스트에서 사용하기 - 절반해결(코드복사)
- [Xcode] Xcode Build Configuration Files - XCConfig
- [Swift 5.2][SwiftPM] Swift Package Manager를 이용하여 패키지를 통합 관리하기 - Proxy Module
- [iOS][RxSwift 5.1] Unit Test 작성시 ReplaySubject의 createUnbounded를 이용하여 모든 이벤트를 저장하고 비교 테스트하기
- [SwiftUI][iOS] Framework에 있는 Custom Font을 등록하여 사용하기
- [번역][WWDC][Xcode] Binary Frameworks in Swift 살짝 정리 - XCFramework
- [iOS][Xcode] Framework Part 3 : Storyboard, Xib, Color, Image를 리소스 프레임워크에서 관리
- [iOS][Xcode] Framework Part 2 : 프로젝트, 서브 프로젝트, Dependencies, 그리고 Static, Dynamic Framework
- [iOS][Xcode] Framework Part 1 : Static Framework와 Dynamic Framework
- [Xcode11 Beta1] Chisel 동작하지 않는 문제 - 해결
- [Xcode][iOS] 프레임워크를 이용하여 한 프레임워크가 리소스를 관리하고, 여러 프레임워크가 리소스 사용하기
- [Xcode 10][Carthage] Run Script phases의 Input File List에 xcfilelist를 추가하여 쉽게 라이브러리를 넣기
- [iOS] 스토리보드에서 특정 화면에서만 사용하는 복잡한 뷰를 분리하여 동적으로 붙이기
- [iOS]No such module - Modulemap
- [iOS] Enterprise 규모 앱 환경 구성 - 2
- [iOS] Enterprise 규모 앱 환경 구성 - 1
- [iOS] 의존성 주입하기 - 외부 라이브러리, iOS 프레임워크
- [iOS] Custom Mock Network Request
- [iOS] 접근성 정리
- [iOS][Network]Mock 데이터로 서비스 개발하기 - OHHTTPStubs
- [Xcode][LLDB]Debugging With Xcode, LLDB and Chisel
- [Xcode][LLDB]Debugging With Xcode and LLDB
SwiftUI