Tags
- git 49
- command 4
- github 38
- translate 18
- collaborating 14
- pull 5
- fork 2
- commit 8
- network 1
- kids 1
- ios 34
- guideline 2
- parent 1
- gate 1
- log 3
- xcode 15
- commits 3
- rebase 4
- amend 1
- push 3
- viewDidLoad 1
- viewDidAppear 2
- view 7
- kvc 1
- kvo 2
- k ey-value coding 1
- key-value observing 1
- branch 3
- tag 7
- fetch 1
- shell 10
- tree 3
- history 1
- message 1
- issue 1
- compare 1
- time 1
- mac 7
- comment 1
- javadoc 1
- document 1
- coredata 1
- magicalrecord 1
- gist 4
- storyboard 5
- segue 1
- wget 1
- markdown 1
- npm 1
- node 2
- clone 1
- filter-branch 2
- interactive 1
- layer 4
- minificationFilter 1
- magnificationFilter 1
- nearest 1
- linear 1
- prune-empty 1
- subdirectory-filter 1
- merge 2
- read-tree 1
- subtree 1
- gsutil 1
- python 6
- google 3
- sale 1
- report 1
- sensitive data 1
- remove 1
- regex 3
- 정규식 3
- 정규표현식 3
- 역참조 1
- backreference 1
- 전방탐색 1
- 후방탐색 1
- lookaround 1
- lookahead 1
- lookbehind 1
- release 5
- designPattern 5
- strategy 1
- pattern 3
- interface 5
- class 23
- inheritance 6
- constructor 3
- abstract 4
- state 1
- context 3
- method 9
- if 9
- remote 3
- add 1
- master 1
- origin 3
- track 1
- name 3
- Xcode 32
- Framework 16
- linker 1
- all_load 2
- force_load 2
- kakaotalk 1
- objc 28
- library 1
- algorithm 6
- base64 1
- encode 1
- decode 1
- shift 1
- padding 3
- rename 1
- ga 2
- google analytics 2
- analytics 1
- heartheat 1
- keepalive 1
- statusbar 2
- viewwillappear 1
- viewwilldisappear 1
- nsdictionary 3
- switch 10
- block 3
- factory 1
- description 1
- import 2
- annotation 1
- programming 3
- protocol 17
- delegate 2
- category 5
- extension 12
- private 3
- public 2
- implementation 1
- instance 10
- 카테고리 1
- 익스텐션 1
- nil 5
- coding 1
- style guide 2
- decimal 1
- dot 2
- string 4
- style 1
- number 1
- opengl 1
- eaglcontext 1
- performSelector 1
- gcd 5
- timer 1
- arc 4
- selector 2
- dispatch_after 1
- dispatch_async 1
- afnetworking 2
- retain 1
- strong 3
- property 10
- nsoperation 1
- nsoperationqueue 1
- afhttprequestoperation 1
- tableview 2
- cell 1
- lock 1
- queue 1
- async 8
- sync 2
- barrier 1
- synchronized 1
- binary 2
- preorder 1
- inorder 1
- postorder 1
- levelorder 1
- dispatch 1
- dispatch_group 1
- dispatch_queue 1
- dispatch_group_wait 1
- dispatch_group_notify 1
- dispatch_group_async 1
- notify 1
- wait 2
- concurrent 1
- nsnotification 2
- uiview 2
- calayer 3
- anchorpoint 1
- zposition 1
- transform 3
- transaction 1
- terminal 2
- softlink 1
- profile 1
- alias 2
- gitconfig 1
- closure 20
- first-class 1
- reference 7
- weak 5
- extention 1
- typedef 2
- function 13
- object 4
- autolayout 3
- interface builder 1
- constraint 1
- NSLayoutConstraint 2
- constraintWithItem 1
- constraintsWithVisualFormat 1
- config 1
- swift 142
- optional 8
- let 2
- var 2
- constants 2
- optional binding 1
- safe 2
- operator 5
- update-index 1
- ignore 1
- gitignore 1
- character 1
- literal 1
- type 10
- scalar 1
- unicode 1
- utf 1
- collection 1
- array 3
- dictionary 1
- nsarray 2
- nsmutablearray 1
- nsmutabledictionary 1
- for-in 2
- control 1
- flow 1
- for 3
- while 1
- break 1
- continue 1
- fallthrough 1
- label 1
- where 3
- case 7
- tuple 4
- range 1
- nested function 2
- inout 1
- func 2
- return 2
- external parameter name 2
- parameter 1
- defalut 1
- hash simbol 1
- variadic parameter 1
- function type 1
- trailing 1
- infer 1
- reference type 3
- strong reference cycle 2
- shorthand argument name 1
- closure expression 1
- map 9
- enumeration 6
- raw value 1
- toRaw 1
- fromRaw 1
- associated value 1
- member 1
- variable 4
- enumerations 1
- structure 4
- Identity Operator 1
- encapsulate 1
- value type 2
- Assignment 1
- copy 2
- static 3
- struct 7
- newValue 2
- oldValue 1
- observer 1
- setter 3
- getter 3
- set 4
- get 2
- willSet 1
- didSet 1
- computed property 2
- type property 1
- lazy 5
- stored property 2
- constant 2
- type method 2
- instance method 1
- mutating 3
- self 5
- subscript 6
- overloading 1
- superclass 2
- subclass 3
- base class 1
- override 2
- super 2
- final 2
- initialization 2
- initializer 4
- default 1
- init 3
- convenience 2
- designated initializer 1
- convenience initializer 1
- parameter name 1
- local parameter name 1
- required 1
- delegation 2
- chaining 1
- deinitializer 1
- deallocation 1
- deinitialization 1
- deinit 1
- type cast 1
- downcast 1
- is 1
- as 1
- Any 1
- AnyObject 2
- nested type 1
- optional chaining 2
- question mark 1
- exclamation mark 1
- unwrapping 2
- debug 5
- sublimetext 1
- plugin 2
- ARC 2
- unowned 2
- in 1
- requirement 1
- conformance 1
- adoption 1
- generic 4
- type parameter 1
- extend 1
- type constraint 1
- associated type 1
- access control 1
- internal 1
- access level 1
- bit 1
- infix 3
- prefix 1
- postfix 1
- overflow 1
- underflow 1
- equivalence 1
- associativity 2
- precedence 2
- left 1
- right 1
- none 1
- filter 6
- reduce 14
- inference 1
- 2014 1
- tumblr 1
- post 2
- blog 2
- euro 1
- travel 1
- nsuserdefaults 1
- racecondition 1
- didset 1
- go 1
- swap 1
- quicksort 1
- lamda 3
- sort 4
- mergesort 1
- 2015 1
- dependency 1
- bubblesort 1
- decorator 2
- wrapper 2
- component 1
- concrete 1
- generator 1
- functional programming 3
- FP 3
- battle ship 1
- refactoring 2
- pure function 2
- first-class function 1
- module 3
- insertionsort 1
- currying 2
- uncurrying 1
- haskell 2
- xib 1
- adaptive layout 1
- preview 1
- condition 1
- loop 1
- autoclosure 1
- scala 1
- cpu 1
- Two's complement 1
- nullability 2
- nullable 1
- nonnull 1
- provisioning profiles 1
- ci 1
- server 1
- system 1
- apple 5
- ibdesignable 1
- ibinspectable 1
- render 1
- live 1
- runtime 4
- target_interface_builder 1
- svn 1
- subversion 1
- trends 1
- uikit 1
- initializers 1
- addTarget 1
- UIControlEvents 1
- sourcetree 1
- singleton 2
- objectivec 2
- class constant 1
- nested struct 1
- dispatch_once 1
- uidevice 1
- portrait 1
- landscape 1
- orientation 1
- viewdidload 1
- iterator 2
- sequencetype 2
- generatortype 1
- generate 1
- next 1
- reference cycle 1
- javascript 1
- method chaining 1
- NSLayoutAnchor 1
- UIGestureRecognizer 1
- UIPanGestureRecognizer 1
- UISwipeGestureRecognizer 1
- UIPinchGestureRecognizer 1
- UIRotationGestureRecognizer 1
- UIScreenEdgePanGestureRecognizer 1
- UILongPressGestureRecognizer 1
- nstimer 1
- dsym 1
- archives 1
- xcarchive 1
- NSDataDetector 1
- NSRange 1
- NSTextCheckingType 1
- url 1
- date 1
- timezone 1
- duration 1
- link 1
- PhoneNumber 1
- Address 1
- enum 4
- box 2
- b-tree 1
- binary tree 1
- 이상한 모임 1
- werid 1
- meetup 1
- werid meetup 1
- korean 1
- playground 2
- XCPlayground 3
- CAGradientLayer 1
- UIBezierPath 2
- mask 1
- fillRule 1
- kCAFillRuleEvenOdd 1
- helper 1
- helper class 1
- utility 1
- static method 1
- class method 1
- java 1
- objective-c 4
- UIAlertView 2
- UIAlertController 2
- Alert 2
- ActionSheet 2
- popup 1
- window 1
- uiapplication 1
- UIWebView 1
- NSURLRequest 1
- Bool 1
- uibutton 1
- drawRect 1
- ovalInRect 1
- stroke 1
- IBDesignable 1
- IBInspectable 1
- Storyboard 5
- UIKit 5
- XCPShowView 1
- XCPCaptureValue 1
- XCPSharedDataDirectoryPath 1
- XCPSetExecutionShouldContinueIndefinitely 1
- QuickLookObject 1
- Playground 1
- UITextField 1
- tool 1
- flatMap 3
- animation 1
- scale 1
- UIScrollView 2
- direction 1
- NSJSONSerialization 1
- NSDictionary 1
- NSDate 1
- String 1
- NSNumber 1
- NSArray 2
- NSNull 1
- keychain 1
- delete 1
- SecItemDelete 1
- kSecClass 1
- hierarchy 1
- accessibility label 1
- tip 1
- cache 1
- tail recursion 1
- Array 2
- prime 1
- amicable number 1
- associatedobject 1
- objc_setAssociatedObject 1
- objc_getAssociatedObject 1
- objc_removeAssociatedObjects 1
- uialertview 1
- sorted 1
- swizzling 1
- method swizzling 1
- class_getInstanceMethod 1
- method_exchangeImplementations 1
- bind 1
- fp 1
- debugQuickLookObject 1
- dynamicType 1
- pip 1
- pillow 1
- icon 1
- image 1
- resize 1
- script 1
- mirror 1
- swift2 2
- json 1
- ErrorType 1
- reflecting 1
- do 1
- try 2
- catch 1
- throw 1
- throws 1
- error 2
- errortype 1
- CoreSpotlight 1
- MobileCoreServices 1
- CSSearchableItem 1
- NSUserActivity 1
- search 1
- Spotlight 1
- AppDelegate 3
- http 1
- https 1
- ats 1
- NSAppTransportSecurity 1
- zip 2
- index 1
- CollectionType 1
- indices 1
- startIndex 1
- endIndex 1
- print 2
- if case 1
- generics 2
- __unsafe_unretained 1
- assign 1
- wwdc 2
- protocol-oriented 1
- object-oriented 1
- trace 1
- 한글 1
- spritekit 1
- skview 1
- skscene 1
- particle 1
- future 1
- value 1
- reference semantics 1
- value semantics 1
- mutable 1
- immutable 1
- fastlane 2
- scan 1
- gym 1
- snapshot 1
- deliver 1
- itunesconnect 3
- plist 1
- PlistBuddy 1
- libexec 1
- count 1
- rev-list 1
- pem 1
- ssl-cert-check 1
- ssl 1
- certificate 1
- p12 1
- openssl 1
- nodejs 1
- redirect 1
- location 1
- 302 1
- header 2
- iTMSTransporter 2
- Transporter 2
- InAppPurcase 2
- Application loader 2
- ReactiveX 12
- RxSwift 20
- ReactiveCocoa 3
- Reactive 1
- RxJava 1
- RxJS 1
- ui 1
- NSHTTPCookieStorage 1
- Alamofire 1
- NSURLSession 1
- request 1
- cookie 1
- llvm 1
- clang 2
- warning 2
- compiler 4
- UIGraphics 1
- bitmap 1
- Observable 15
- Driver 1
- asObservable 3
- asDriver 1
- MainScheduler 1
- PublishSubject 2
- ReplaySubject 2
- BehaviorSubject 2
- Variable 2
- event 1
- Hashable 1
- Equatable 1
- CALayer 1
- CABasicAnimation 1
- CAAnimationGroup 1
- Material 1
- ImageMagick 2
- find 1
- identify 1
- convert 2
- opensource 1
- license 1
- settings 1
- bundle 1
- Acknowledgements 1
- observeOn 2
- subscribe 1
- subscribeOn 2
- Scheduler 1
- flatMapFirst 1
- flatMapLatest 1
- PIL 1
- startWith 1
- combineLatest 1
- switchLatest 1
- DelegateProxy 1
- DelegateProxyType 1
- Delegate 3
- Observer 2
- hot 2
- cold 2
- RxTests 2
- Hot Observables 2
- Cold Observables 1
- TestScheduler 2
- Subject 1
- bounces 1
- contentOffset 1
- idfa 1
- review 1
- UIViewController 5
- addChildViewController 1
- removeFromParentViewController 1
- casting 1
- cast 1
- unrelated type 1
- guard 3
- iboutlet 1
- nib 1
- forced unwrapping 1
- isViewLoaded 1
- runtime error 1
- abi 1
- UITableView 1
- NSObject 3
- Swift 89
- UITableViewDelegate 1
- UITableViewDataSource 1
- TableViewModel 1
- precedencegroup 2
- precedence group 1
- ContiguousArray 1
- ArraySlice 1
- Cocoa 1
- phantom type 1
- strongly typed language 1
- UIButton 1
- UILabel 1
- flag 1
- UITableViewCell 1
- MVVM 2
- ViewModel 1
- Closure 1
- Callback 1
- associatedType 1
- viewDidDisappear 1
- viewWillAppear 1
- viewWillDisappear 1
- isBeingPresented 1
- isBeingDismissed 1
- isMovingToParentViewController 1
- isMovingFromParentViewController 1
- Protocol 16
- Extension 6
- Protocol Extension 2
- Class 1
- Struct 3
- Dispatch 1
- Codable 3
- Encodable 3
- Decodable 3
- CodingKeys 1
- associatedtype 2
- Generic 3
- computed 1
- PHPhotoLibrary 1
- PHAuthorizationStatus 1
- DispatchSemaphore 1
- semaphore 1
- iOS 35
- ReactiveKit 3
- Event 2
- Disposable 1
- Sink 1
- Optional 3
- merge-base 1
- diff 1
- SwiftLint 2
- KeyPath 2
- KeyValue 1
- NSKeyValueObservation 1
- objcMembers 1
- dynamic 2
- DisposeBag 1
- Lazy 1
- LazySequence 1
- LazyCollection 1
- LazySequenceProtocol 1
- Stream 1
- Error 1
- VSCode 2
- LLDB 3
- lldb 3
- Chisel 3
- objectie-c 1
- OHHTTPStubs 2
- stub 1
- test 1
- API 1
- URLSession 1
- Accessibility 3
- VoiceOver 1
- URLProtocol 1
- APIRequest 1
- WWDC 1
- JSONDecoder 2
- KeyDecodingStrategy 1
- XCode 6
- Project 5
- Library 7
- Dependency 4
- Injection 2
- Dependency Injection 8
- DI 6
- CocoaPods 2
- Carthage 5
- Layer 1
- TestFlight 1
- SFUIRounded 1
- LayoutInspector 1
- Inspector 1
- default argument 1
- Python 1
- OpenData 1
- fomatter 1
- SPM 10
- Swift Package Manager 3
- SwiftPM 10
- Autolayout 1
- xcfilelist 1
- UIImage 3
- XCAssets 1
- Bundle 3
- Import 1
- NSAttributedString 2
- StringInterpolation 1
- StringInterpolationProtocol 1
- propertyWrapper 1
- Property Wrapper 1
- SE-0258 1
- Annotation 2
- python2 1
- python3 1
- Uber 8
- RIBs 18
- DIP 1
- POP 1
- Protocol Oriented Programming 1
- Single 1
- asSingle 1
- framework 1
- lipo 1
- nm 3
- file 1
- strings 1
- Static Framework 1
- Dynamic Framework 5
- Dependencies 1
- UIColor 1
- Color 1
- Image 2
- Assets 1
- Xib 2
- SwiftUI 15
- GeometryReader 1
- GeometryProxy 1
- imageLiteral 1
- _ExpressibleByImageLiteral 1
- Ruby 2
- Gem 2
- XcodeProj 1
- Graphviz 1
- View 6
- State 3
- XCFramework 4
- xcodebuild 3
- inlinable 1
- usableFromInline 1
- frozen 1
- Build Libraries for Distribution 1
- swiftmodule 1
- swiftinterface 1
- Enum 1
- Font 1
- CTFontManagerRegisterFontsForURL 1
- ObservedObject 1
- ObservableObject 1
- Published 1
- initialize 1
- Pad 1
- EdgeInsets 1
- fixedSize 1
- some 1
- Opaque Type 1
- any 1
- Text 1
- font 1
- minimumScaleFactor 1
- Binding 2
- Unit Test 1
- createUnbounded 1
- Buffer 1
- toBlocking 1
- Async 1
- expectation 1
- XCTestExpectation 1
- waitForExpectations 1
- Unit 1
- Adapter 3
- ViewControllable 1
- Wrapper 1
- Module 4
- Cocoapods 2
- Local Swift Package 1
- PropertyWrapper 3
- KeyedDecodingContainer 1
- IoC 4
- Container 4
- Circular Dependency 4
- gcc 1
- LLVM 1
- ar 1
- libtool 1
- Static Library 5
- Dynamic Library 1
- objdump 1
- otool 1
- memory segments 1
- linking 1
- object file 1
- dynamicMemberLookup 1
- RIB 1
- Builder 2
- Router 1
- Listener 1
- Interactor 1
- install_name_tool 1
- RxTest 1
- Package 6
- Resource 2
- Binary Framework 2
- archive 2
- XCConfig 2
- Configuration 1
- Workspace 1
- XcodeGen 3
- Tuist 18
- Target 2
- Scheme 1
- Static 2
- Dynamic 2
- unitTest 1
- Swift Package 2
- ProcessInfo 2
- Plugin 2
- Clean Architecture 5
- ReactorKit 5
- Linker 1
- OTHER_LDFLAGS 1
- UIView 3
- loadView 1
- Preview 6
- PreviewProvider 2
- Operator 1
- Pipe 1
- ForwardPipe 1
- canImport 1
- Preprocessor 1
- Environment 1
- _functionBuilder 1
- resultBuilder 3
- Hot Reload 2
- Inject 2
- InjectionIII 2
- legacy 1
- Demo 1
- UnitTest 1
- TestPlan 1
- TEST_HOST 1
- BUNDLE_LOADER 1
- Concurrency 8
- Task 4
- cancel 2
- AnyCancelTaskBag 1
- AnyCancellableTask 1
- Closures 1
- Capture list 1
- reference count 1
- AppCode 1
- AsyncStream 2
- AsyncThrowingStream 1
- unfolding 1
- await 4
- withCheckedContinuation 1
- withCheckedThrowingContinuation 1
- AsyncSequence 2
- AsyncIteratorProtocol 2
- Service Locator 2
- Generics 2
- mangle 1
- demangle 1
- Xcodeproj 1
- xctestplan 1
- present 1
- dismiss 1
- superview 1
- sequence 1
- Sequence 1
- @_implements 1
- FLEX 1
- Debug 2
- Tool 1
- objc_getClassList 1
- UnsafeMutablePointer 1
- AutoreleasingUnsafeMutablePointer 1
- class_getName 2
- class_getInstanceVariable 1
- class_getClassVariable 1
- class_getSuperclass 1
- intrinsicContentSize 1
- previewLayout 1
- sizeThatFits 1
- CLANG_MODULES_AUTOLINK 1
- swift-frontend 1
- dependency_info 1
- load 1
- Objective-C 1
- Objc 1
- objc4 1
- dyld 1
- PRODUCT_MODULE_NAME 1
- ADR 15
- MVC 1
- UI 1
- Feature 1
- Combine 1
- SPI 1
- spi 1
- Macros 5
- SwifyJSON 1
- Response 1
- JSON 1
- macOS 1
- Virtualization 1
- Tart 1
- Swift-Syntax 1
- access modifier 1
- package 1
- OTHER_SWIFT_FLAGS 1
- SWIFT_PACKAGE_NAME 1
- Logger 1
- Log 1
- OSLog 1
- defer 1
- Type-Safe 1
- Validation 1
- WKWebView 3
- Javascript 3
- statement 2
- Noncopyable 1
- Helper 1
- MinIO 1
- Cache 1
git
- [Git] Commit 순서를 섞기
- [Git]현재 Branch의 변경사항 파악하기 - merge-base
- [Shell][Xcode]PlistBuddy를 이용하여 Plist의 CFBundleVersion 다루기
- [Git]언제부터 Svn에서 Git으로 전환되었을까?
- [Git]일시적으로 파일 변경 무시하기
- [Git]Alias 추가 / 삭제 / 목록 보기
- [Git]유용한 Git alias
- [번역]GitHub / Managing Remotes / 원격 저장소 이름 변경하기
- [번역]GitHub / Managing Remotes / 원격 저장소 URL 변경하기
- [번역]GitHub / Managing Remotes / 원격 저장소 추가하기
- [번역]GitHub / Managing Remotes / 원격 저장소 추가하기
- [번역]GitHub / Release / 태그로 작업하기
- [번역]GitHub / Release / Releases 열거 및 수정하기
- [번역]GitHub / Release / Releases 만들기
- [번역]GitHub / Release / Release에 대하여
- [번역]GitHub / Advanced Git / 민감한 데이터 제거하기
- [번역]GitHub / Advanced Git / Subtree Merge 작업
- [번역]GitHub / Advanced Git / 하위 경로를 새로운 저장소로 분할
- [번역]GitHub / Advanced Git / 대화형 Rebase
- [번역]GitHub / Advanced Git / 저자 정보 변경하기
- [Git]Clone으로 받은 저장소에 브랜치로 이동하기
- [Git]Tag 추가, 변경 및 삭제하기
- [번역]GitHub / Gist / Gist안에 Map
- [번역]GitHub / Gist / Gist 복사, 다운로드, 내장하기
- [번역]GitHub / Gist / Gists 만들기
- [번역]GitHub / Gist / 익명의 Gist는 삭제할 수 없습니다
- [번역]GitHub / Commits / 시간으로 커밋 비교
- [번역]GitHub / Commits / 커밋 메시지로 이슈 닫기
- [번역]GitHub / Commits / 커밋 화면간의 차이
- [번역]GitHub / Commits / 왜 커밋 순서가 잘못되었나요?
- [번역]GitHub / Commits / GitHub에는 커밋이 있는데 로컬 Clone에는 없어요
- [번역]GitHub / Commits / 커밋 브랜치와 태그 라벨
- [번역]GitHub / Commits / 커밋 메시지를 삭제할 수 있나요?
- [번역]GitHub / Commits / 왜 내 커밋이 잘못된 유저로 연결되나요?
- [번역]GitHub / Collaborating / Pull 요청을 로컬에서 확인하기
- [번역]GitHub / Collaborating / 네트워크의 가시성 변경하기
- [번역]GitHub / Collaborating / 커밋 의견를 추가하기
- [번역]GitHub / Collaborating / 이슈 첨부
- [번역]GitHub / Collaborating / 어떻게 공동 제작자를 지울 수 있나요?
- [번역]GitHub / Collaborating / 비공개 저장소에서 공동 제작자를 삭제했을 때 무슨 일이 일어나나요?
- [번역]GitHub / Collaborating / Fork 동기화
- [번역]GitHub / Collaborating / 협업 저장소로부터 스스로 나오기
- [번역]GitHub / Collaborating / 어떻게 공동 제작자를 추가할 수 있나요?
- [번역]GitHub / Collaborating / Pull 요청 정리하기
- [번역]GitHub / Collaborating / Pull 요청 닫기
- [번역]GitHub / Collaborating / Pull 요청 합치기
- [번역]GitHub / Collaborating / Pull 요청 만들기
- [번역]GitHub / Collaborating / Pull 요청하는 방법
- [Git]명령어 정리
command
github
- [번역]Github의 Swift Style Guide
- [번역]GitHub / Managing Remotes / 원격 저장소 이름 변경하기
- [번역]GitHub / Managing Remotes / 원격 저장소 URL 변경하기
- [번역]GitHub / Release / 태그로 작업하기
- [번역]GitHub / Release / Releases 열거 및 수정하기
- [번역]GitHub / Release / Releases 만들기
- [번역]GitHub / Release / Release에 대하여
- [번역]GitHub / Advanced Git / 민감한 데이터 제거하기
- [번역]GitHub / Advanced Git / Subtree Merge 작업
- [번역]GitHub / Advanced Git / 하위 경로를 새로운 저장소로 분할
- [번역]GitHub / Advanced Git / 대화형 Rebase
- [번역]GitHub / Advanced Git / 저자 정보 변경하기
- [번역]GitHub / Gist / Gist안에 Map
- [번역]GitHub / Gist / Gist 복사, 다운로드, 내장하기
- [번역]GitHub / Gist / Gists 만들기
- [번역]GitHub / Gist / 익명의 Gist는 삭제할 수 없습니다
- [번역]GitHub / Commits / 시간으로 커밋 비교
- [번역]GitHub / Commits / 커밋 메시지로 이슈 닫기
- [번역]GitHub / Commits / 커밋 화면간의 차이
- [번역]GitHub / Commits / 왜 커밋 순서가 잘못되었나요?
- [번역]GitHub / Commits / GitHub에는 커밋이 있는데 로컬 Clone에는 없어요
- [번역]GitHub / Commits / 커밋 브랜치와 태그 라벨
- [번역]GitHub / Commits / 커밋 메시지를 삭제할 수 있나요?
- [번역]GitHub / Commits / 왜 내 커밋이 잘못된 유저로 연결되나요?
- [번역]GitHub / Collaborating / Pull 요청을 로컬에서 확인하기
- [번역]GitHub / Collaborating / 네트워크의 가시성 변경하기
- [번역]GitHub / Collaborating / 커밋 의견를 추가하기
- [번역]GitHub / Collaborating / 이슈 첨부
- [번역]GitHub / Collaborating / 어떻게 공동 제작자를 지울 수 있나요?
- [번역]GitHub / Collaborating / 비공개 저장소에서 공동 제작자를 삭제했을 때 무슨 일이 일어나나요?
- [번역]GitHub / Collaborating / Fork 동기화
- [번역]GitHub / Collaborating / 협업 저장소로부터 스스로 나오기
- [번역]GitHub / Collaborating / 어떻게 공동 제작자를 추가할 수 있나요?
- [번역]GitHub / Collaborating / Pull 요청 정리하기
- [번역]GitHub / Collaborating / Pull 요청 닫기
- [번역]GitHub / Collaborating / Pull 요청 합치기
- [번역]GitHub / Collaborating / Pull 요청 만들기
- [번역]GitHub / Collaborating / Pull 요청하는 방법
translate
- [번역]Swift API Design Guidelines
- [번역]Github의 Swift Style Guide
- [번역]NYTime의 iOS팀 Objective-C 스타일 가이드
- [번역]GitHub / Commits / 왜 내 커밋이 잘못된 유저로 연결되나요?
- [번역]GitHub / Collaborating / Pull 요청을 로컬에서 확인하기
- [번역]GitHub / Collaborating / 네트워크의 가시성 변경하기
- [번역]GitHub / Collaborating / 커밋 의견를 추가하기
- [번역]GitHub / Collaborating / 이슈 첨부
- [번역]GitHub / Collaborating / 어떻게 공동 제작자를 지울 수 있나요?
- [번역]GitHub / Collaborating / 비공개 저장소에서 공동 제작자를 삭제했을 때 무슨 일이 일어나나요?
- [번역]GitHub / Collaborating / Fork 동기화
- [번역]GitHub / Collaborating / 협업 저장소로부터 스스로 나오기
- [번역]GitHub / Collaborating / 어떻게 공동 제작자를 추가할 수 있나요?
- [번역]GitHub / Collaborating / Pull 요청 정리하기
- [번역]GitHub / Collaborating / Pull 요청 닫기
- [번역]GitHub / Collaborating / Pull 요청 합치기
- [번역]GitHub / Collaborating / Pull 요청 만들기
- [번역]GitHub / Collaborating / Pull 요청하는 방법
collaborating
- [번역]GitHub / Collaborating / Pull 요청을 로컬에서 확인하기
- [번역]GitHub / Collaborating / 네트워크의 가시성 변경하기
- [번역]GitHub / Collaborating / 커밋 의견를 추가하기
- [번역]GitHub / Collaborating / 이슈 첨부
- [번역]GitHub / Collaborating / 어떻게 공동 제작자를 지울 수 있나요?
- [번역]GitHub / Collaborating / 비공개 저장소에서 공동 제작자를 삭제했을 때 무슨 일이 일어나나요?
- [번역]GitHub / Collaborating / Fork 동기화
- [번역]GitHub / Collaborating / 협업 저장소로부터 스스로 나오기
- [번역]GitHub / Collaborating / 어떻게 공동 제작자를 추가할 수 있나요?
- [번역]GitHub / Collaborating / Pull 요청 정리하기
- [번역]GitHub / Collaborating / Pull 요청 닫기
- [번역]GitHub / Collaborating / Pull 요청 합치기
- [번역]GitHub / Collaborating / Pull 요청 만들기
- [번역]GitHub / Collaborating / Pull 요청하는 방법
pull
- [번역]GitHub / Collaborating / Pull 요청을 로컬에서 확인하기
- [번역]GitHub / Collaborating / Pull 요청 정리하기
- [번역]GitHub / Collaborating / Pull 요청 닫기
- [번역]GitHub / Collaborating / Pull 요청 합치기
- [번역]GitHub / Collaborating / Pull 요청 만들기
fork
commit
- [Shell][Xcode]PlistBuddy를 이용하여 Plist의 CFBundleVersion 다루기
- [번역]GitHub / Commits / 시간으로 커밋 비교
- [번역]GitHub / Commits / 시간으로 커밋 비교
- [번역]GitHub / Commits / 커밋 메시지로 이슈 닫기
- [번역]GitHub / Commits / 커밋 화면간의 차이
- [번역]GitHub / Commits / 왜 커밋 순서가 잘못되었나요?
- [번역]GitHub / Commits / 왜 내 커밋이 잘못된 유저로 연결되나요?
- [번역]GitHub / Collaborating / 커밋 의견를 추가하기
network
kids
ios
- [iOS]왜 addChildViewController를 사용해야 하는가? - Container View Controller 구현
- [iOS]Google Analytics에서 광고 없이 IDFA를 사용하여 리뷰 통과하기
- [iOS]Settings Bundle을 이용하여 라이센스를 설정 내에 표시하기
- [iOS][Swift]구글 매터리얼 디자인의 물결 효과 만들기
- [iOS][Swift]이미지로부터 픽셀 데이터 얻어 새로운 이미지 만들기
- [iOS][Swift]NSHTTPCookieStorage를 이용하여 사라진 Cookie 찾기
- [iOS][fastlane]Pem과 SSL Certificate Check를 통해 Push 인증서 관리하기
- [iOS][Xcode]fastlane을 이용하여 쉽게 테스트, 빌드, 배포하기
- [Xcode][iOS]App Transport Security
- [Swift][iOS]Search API를 사용해보자
- [Python]파이썬을 이용하여 앱 아이콘을 리사이즈 하기
- [Xcode]사용하고 있는 플러그인 리스트
- [Swift]커스텀 UIButton 클릭시 항상 특정 메소드 호출하기
- Xcode 서버와 CI만들기(0)
- [Xcode]Provisioning Profiles 삭제하기
- [Swift]쉽게 값을 교환하기
- [Swift]지연 로딩으로 테이블뷰에 데이터를 반영하기
- [Swift]GCD를 이용한 RaceCodition 만들기
- [Swift]NSUserDefaults 값 초기화하기
- [CoreAnimation]Implicit Animations
- [CoreAnimation]CALayer의 AnchorPoint, zPosition
- [CoreAnimation]Layer
- [Objective-C]GCD를 이용하여 데이터 동기화
- [Objective-C]NSOperation과 NSOperationQueue를 사용하는 방법 - 설명 및 예제
- [iOS]AFNetworking에서 afnetworking property with 'retain (or strong)' attribute must be of object type 에러 처리하기
- [iOS]OpenGL을 사용하는 라이브러리간 화면 객체 충돌을 처리하는 방법
- [Objective-C]NSDictionary를 이용한 조건문 제거하기
- [iOS]상태바 표시에 대한 설명
- [iOS]Google Analytics 세션 유지
- [iOS]Storyboard의 Segue를 이용하여 화면 전환하기
- [CoreData]Objective-C 프로젝트에서 MagicalRecord를 이용하여 Core Data 사용하기
- [iOS]Key Value Coding, Key Value Observing
- [Xcode]상세 로그 만들기
- [iOS]키즈 카테고리 가이드라인 및 적용 예제 정리
guideline
parent
gate
log
xcode
- [Swift 5.9+][Xcode 15][SE-0386] 새로운 Access Modifier인 Package를 Xcode Project에서 사용하기
- [iOS][Xcode]fastlane을 이용하여 쉽게 테스트, 빌드, 배포하기
- [Xcode][iOS]App Transport Security
- [Xcode]뷰 디버깅시 접근성 라벨로 뷰 객체를 빠르게 찾자
- [Xcode]사용하고 있는 플러그인 리스트
- [Xcode]dSYM 파일은 어디 있나요?
- [Swift]인터페이스 빌더에서 실시간 렌더링을 통한 커스텀 뷰 만들기
- Xcode 서버와 CI만들기(0)
- [Xcode]Provisioning Profiles 삭제하기
- [Xcode]Storyboard 또는 Xib 미리보기
- [iOS]NSLayoutConstraint
- [Xcode]스토리보드 안에서 원하는 뷰를 쉽게 선택하기
- [iOS]Storyboard의 Segue를 이용하여 화면 전환하기
- [Xcode]VVDocumenter-Xcode 플러그인 소개
- [Xcode]상세 로그 만들기
commits
- [번역]GitHub / Commits / GitHub에는 커밋이 있는데 로컬 Clone에는 없어요
- [번역]GitHub / Commits / 커밋 브랜치와 태그 라벨
- [번역]GitHub / Commits / 커밋 메시지를 삭제할 수 있나요?
rebase
- [Git] Commit 순서를 섞기
- [번역]GitHub / Advanced Git / 대화형 Rebase
- [번역]GitHub / Commits / 왜 커밋 순서가 잘못되었나요?
- [번역]GitHub / Commits / 커밋 메시지를 삭제할 수 있나요?
amend
push
- [iOS][fastlane]Pem과 SSL Certificate Check를 통해 Push 인증서 관리하기
- [Git]Tag 추가, 변경 및 삭제하기
- [번역]GitHub / Commits / 커밋 메시지를 삭제할 수 있나요?
viewDidLoad
viewDidAppear
- [iOS]UIViewController가 진입시 viewDidAppear에서 한번만 필요한 기능 호출하기
- [iOS]왜 landscape로 전환하면 viewDidLoad에서는 회전한 가로 및 세로의 값이 portrait 값으로 주는가?
view
- [Xcode]뷰 디버깅시 접근성 라벨로 뷰 객체를 빠르게 찾자
- [iOS]NSLayoutConstraint
- [Xcode]스토리보드 안에서 원하는 뷰를 쉽게 선택하기
- [CoreAnimation]CALayer의 AnchorPoint, zPosition
- [CoreAnimation]Layer
- [iOS]View의 Layer 속성 minificationFilter과 magnificationFilter 정리
- [iOS]왜 landscape로 전환하면 viewDidLoad에서는 회전한 가로 및 세로의 값이 portrait 값으로 주는가?
kvc
kvo
- [Objective-C]NSOperation과 NSOperationQueue를 사용하는 방법 - 설명 및 예제
- [iOS]Key Value Coding, Key Value Observing
k ey-value coding
key-value observing
branch
- [Git]Clone으로 받은 저장소에 브랜치로 이동하기
- [번역]GitHub / Commits / 시간으로 커밋 비교
- [번역]GitHub / Commits / 커밋 브랜치와 태그 라벨
tag
- [번역]GitHub / Release / 태그로 작업하기
- [번역]GitHub / Release / Releases 열거 및 수정하기
- [번역]GitHub / Release / Releases 만들기
- [번역]GitHub / Release / Release에 대하여
- [Git]Tag 추가, 변경 및 삭제하기
- [번역]GitHub / Commits / 시간으로 커밋 비교
- [번역]GitHub / Commits / 커밋 브랜치와 태그 라벨
fetch
shell
- [Shell]/dev/null로 출력 버리기
- [Shell][Python][ImageMagick]하얀색을 투명으로 바꾸기
- [Shell][ImageMagick]홀수 크기의 이미지에 패딩 추가하기
- [Shell][Xcode]PlistBuddy를 이용하여 Plist의 CFBundleVersion 다루기
- [Shell]터미널에서 SourceTree 실행하기
- [Git]Alias 추가 / 삭제 / 목록 보기
- [Git]유용한 Git alias
- [Shell]터미널에서 Sublime Text, Sublime Merge 실행하기
- [Shell]Mac에서 wget 설치하기
- [Shell]Tree Shell 명령어
tree
history
message
issue
compare
time
mac
- [Xcode]사용하고 있는 플러그인 리스트
- Xcode 서버와 CI만들기(0)
- [Xcode]Provisioning Profiles 삭제하기
- [Go]Go 시작하기(초간단)
- [Shell]Mac에서 wget 설치하기
- [CoreData]Objective-C 프로젝트에서 MagicalRecord를 이용하여 Core Data 사용하기
- [Xcode]VVDocumenter-Xcode 플러그인 소개
comment
javadoc
document
coredata
magicalrecord
gist
- [번역]GitHub / Gist / Gist안에 Map
- [번역]GitHub / Gist / Gist 복사, 다운로드, 내장하기
- [번역]GitHub / Gist / Gists 만들기
- [번역]GitHub / Gist / 익명의 Gist는 삭제할 수 없습니다
storyboard
- [Swift]@IBOutlet의 Forced Unwrapping Optional(!) vs Optional(?)
- [Xcode]Storyboard 또는 Xib 미리보기
- [iOS]NSLayoutConstraint
- [Xcode]스토리보드 안에서 원하는 뷰를 쉽게 선택하기
- [iOS]Storyboard의 Segue를 이용하여 화면 전환하기
segue
wget
markdown
npm
node
clone
filter-branch
interactive
layer
- [CoreAnimation]Implicit Animations
- [CoreAnimation]CALayer의 AnchorPoint, zPosition
- [CoreAnimation]Layer
- [iOS]View의 Layer 속성 minificationFilter과 magnificationFilter 정리
minificationFilter
magnificationFilter
nearest
linear
prune-empty
subdirectory-filter
merge
- [ReactiveX][RxSwift]Combining Operator - startWith, CombineLatest, Merge, Zip, switchLatest
- [번역]GitHub / Advanced Git / Subtree Merge 작업
read-tree
subtree
gsutil
python
- [Xcode11 Beta1] Chisel 동작하지 않는 문제 - 해결
- [Xcode][LLDB]Debugging With Xcode, LLDB and Chisel
- [Xcode][LLDB]Debugging With Xcode and LLDB
- [Shell][Python][ImageMagick]하얀색을 투명으로 바꾸기
- [Python]파이썬을 이용하여 앱 아이콘을 리사이즈 하기
- [Tool]gsutil을 사용하여 구글 판매 통계 가져오기
sale
report
sensitive data
remove
regex
정규식
정규표현식
역참조
backreference
전방탐색
후방탐색
lookaround
lookahead
lookbehind
release
- [Objective-C]Struct에 Objective-C 객체 사용하기
- [번역]GitHub / Release / 태그로 작업하기
- [번역]GitHub / Release / Releases 열거 및 수정하기
- [번역]GitHub / Release / Releases 만들기
- [번역]GitHub / Release / Release에 대하여
designPattern
- [DesignPattern]데코레이터 패턴(Decorator Pattern)
- [DesignPattern]커맨드 패턴(Command Pattern)
- [DesignPattern]팩토리 패턴(Factory Pattern)
- [DesignPattern]상태패턴
- [DesignPattern]입문 및 전략패턴
strategy
pattern
interface
- [DesignPattern]커맨드 패턴(Command Pattern)
- [Objective-C]클래스 확장 - Category, Extension
- [DesignPattern]팩토리 패턴(Factory Pattern)
- [DesignPattern]상태패턴
- [DesignPattern]입문 및 전략패턴
class
- [Swift]클래스만 사용 가능한 프로토콜 선언하기
- [번역][Swift]값 타입(Value Types)으로 더 나은 앱 만들기
- [Objective-C]카테고리로 파일 분리시 속성을 외부에 노출시키지 않기
- [Swift]Associated Objects로 Delegate에서 Closure로 바꾸기
- Helper Class란 뭘까?
- [Swift]Enumeration를 이용한 Binary Tree 만들기
- [Swift]Enumeration를 이용한 Error Handling
- [Swift]Iterator 패턴 구현하기
- [DesignPattern]데코레이터 패턴(Decorator Pattern)
- [DesignPattern]커맨드 패턴(Command Pattern)
- [Swift]Protocols 정리
- [Swift]Optional Chaining 정리
- [Swift]Nested Types 정리
- [Swift]Deinitialization 정리
- [Swift]inheritance 정리
- [Swift]Methods 정리
- [Swift]Properties 정리
- [Swift]Class와 Structure 정리
- [Objective-C]클래스 확장 - Category, Extension
- [Objective-C]클래스 호출 - @class vs import
- [DesignPattern]팩토리 패턴(Factory Pattern)
- [DesignPattern]상태패턴
- [DesignPattern]입문 및 전략패턴
inheritance
- [DesignPattern]커맨드 패턴(Command Pattern)
- [Swift]Protocols 정리
- [Swift]Initialization 정리
- [Swift]inheritance 정리
- [DesignPattern]팩토리 패턴(Factory Pattern)
- [DesignPattern]입문 및 전략패턴
constructor
- [DesignPattern]커맨드 패턴(Command Pattern)
- [DesignPattern]팩토리 패턴(Factory Pattern)
- [DesignPattern]입문 및 전략패턴
abstract
- [DesignPattern]데코레이터 패턴(Decorator Pattern)
- [DesignPattern]커맨드 패턴(Command Pattern)
- [DesignPattern]팩토리 패턴(Factory Pattern)
- [DesignPattern]입문 및 전략패턴
state
context
method
- [Swift]Associated Objects로 Delegate에서 Closure로 바꾸기
- [Swift]Method Chaining
- [Swift]Protocols 정리
- [Swift]Extensions 정리
- [Swift]Optional Chaining 정리
- [Swift]Methods 정리
- [Programming]Method와 Function의 차이
- [Objective-C]PerformSelector 대신 GCD로 호출하기
- [DesignPattern]상태패턴
if
- [iOS] WKWebView을 이용한 iOS 앱과 웹페이지 간의 통신 (3) - Plugin을 이용하여 기능 확장하기
- [iOS] WKWebView을 이용한 iOS 앱과 웹페이지 간의 통신 (2) - Control Flow
- [Swift][Trick] 값이 옵셔널이 아닌데, guard 또는 if let 문에 사용
- [Swift4]옵셔널 비교문 사용시 guard let, if let 대신 if case나 Switch를 사용하자
- [Swift]Switch문 Trick
- [Swift]Enumerations 정리
- [Swift]Control Flow 정리
- [Objective-C]NSDictionary를 이용한 조건문 제거하기
- [DesignPattern]상태패턴
remote
- [번역]GitHub / Managing Remotes / 원격 저장소 이름 변경하기
- [번역]GitHub / Managing Remotes / 원격 저장소 URL 변경하기
- [번역]GitHub / Managing Remotes / 원격 저장소 추가하기
add
master
origin
- [번역]GitHub / Managing Remotes / 원격 저장소 이름 변경하기
- [번역]GitHub / Managing Remotes / 원격 저장소 URL 변경하기
- [번역]GitHub / Managing Remotes / 원격 저장소 추가하기
track
name
- [번역]GitHub / Managing Remotes / 원격 저장소 이름 변경하기
- [번역]GitHub / Managing Remotes / 원격 저장소 URL 변경하기
- [번역]GitHub / Managing Remotes / 원격 저장소 추가하기
Xcode
- [Swift][Xcode 15] 통합 로깅 시스템(Unified Logging System)과 Macro
- [ADR][가상] 아키텍처 의사 결정 기록: Xcode 프로젝트 생성 도구 선택하기 Tuist vs XcodeGen
- [iOS][Xcode] Application에 있는 Storyboard, Xib 등을 리소스 프레임워크로 이전해서 관리하기
- [Xcode][Ruby] Xcodeproj Gem을 활용하여 Xcode Test Plans 생성 스크립트 만들기
- [iOS][Xcode 13.3.1][Tuist 3.3.0] 프로젝트 생성/관리 도구 Tuist(8) - 모듈의 데모앱의 지속가능하게 유지보수되도록 검증하기 with Tuist
- [iOS][Tuist 2.7.2] 프로젝트 생성/관리 도구 Tuist(6) - ProcessInfo Environment 기반 프로젝트 생성
- [iOS] 준 Clean Architecture With RIBs, ReactorKit 그리고 Tuist를 이용한 프로젝트 모듈화 설계(5) - Repository, Dependency Injection, Service Locator
- [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
- [Xcode] Xcode Build Configuration Files - XCConfig
- [번역][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 10][Carthage] Run Script phases의 Input File List에 xcfilelist를 추가하여 쉽게 라이브러리를 넣기
- [iOS] 도메인 별로 파일을 모으기
- [iOS][Network]Mock 데이터로 서비스 개발하기 - OHHTTPStubs
- [Xcode][LLDB]Debugging With Xcode, LLDB and Chisel
- [Xcode][LLDB]Debugging With Xcode and LLDB
- [Xcode 9.3] 새로 추가된 Compiler Option - Compilation Mode의 Single File
- [Xcode] Release로 실행시 BreakPoint가 동작하지 않는 문제 해결
- [Xcode]Library 호출 시 사용하는 all_load, force_load
Framework
- [Swift][SwiftPM] Swift Package의 라이브러리를 Dynamic Framework로 만들기
- [iOS][Xcode] Application에 있는 Storyboard, Xib 등을 리소스 프레임워크로 이전해서 관리하기
- [iOS][SwiftPM][Xcode 13.2.1+] SwiftPM로 RxSwift 사용할 때 RxBlocking, RxTest를 유닛테스트에서 사용하기 - 해결편(SwiftPM)
- [iOS][SwiftPM][Xcode 13.0] SwiftPM로 RxSwift 사용할 때 RxBlocking, RxTest를 유닛테스트에서 사용하기 - 절반해결(코드복사)
- [iOS][Swift][Modular Architecture] Troubleshooting - Static Library를 모듈로 작업 후, Extension으로 코드 확장시 멤버를 찾을 수 없는 문제와 해결방법
- [iOS][Xcode] 서드파티 라이브러리 잘 관리하기 - Static Library와 Dynamic Library의 관점 분리
- [iOS][Tuist 1.7.1] 프로젝트 생성/관리 도구 Tuist(2) - StaticFramework
- [번역][WWDC][Xcode] Binary Frameworks in Swift 살짝 정리 - XCFramework
- [iOS] XcodeProj Gem과 Graphviz를 이용하여 프로젝트의 Framework Dependency Diagram 그리기
- [iOS][Swift] Framework에 있는 이미지를 Imageliteral 사용하여 불러오기
- [iOS][Xcode] Framework Part 3 : Storyboard, Xib, Color, Image를 리소스 프레임워크에서 관리
- [iOS][Xcode] Framework Part 2 : 프로젝트, 서브 프로젝트, Dependencies, 그리고 Static, Dynamic Framework
- [Xcode][iOS] 프레임워크를 이용하여 한 프레임워크가 리소스를 관리하고, 여러 프레임워크가 리소스 사용하기
- [iOS]No such module - Modulemap
- [iOS] Enterprise 규모 앱 환경 구성 - 2
- [Xcode]Library 호출 시 사용하는 all_load, force_load
linker
all_load
- [iOS][Swift][Modular Architecture] Troubleshooting - Static Library를 모듈로 작업 후, Extension으로 코드 확장시 멤버를 찾을 수 없는 문제와 해결방법
- [Xcode]Library 호출 시 사용하는 all_load, force_load
force_load
- [iOS][Swift][Modular Architecture] Troubleshooting - Static Library를 모듈로 작업 후, Extension으로 코드 확장시 멤버를 찾을 수 없는 문제와 해결방법
- [Xcode]Library 호출 시 사용하는 all_load, force_load
kakaotalk
objc
- [Swift 5.7+][Objective-C] Dependency Injection (4) - class_getName, class_getInstanceVariable, class_getSuperclass를 사용하여 특정 타입 찾기
- [Swift 5.7+][Objective-C] Dependency Injection (3) - objc_getClassList를 사용하여 모든 클래스 목록 얻기
- [Swift] Protocol를 준수하는 Extension 코드를 주의하여 작성하기
- [Xcode][LLDB]Debugging With Xcode, LLDB and Chisel
- [Objective-C][Swift]한글 풀어쓰기
- [Objective-C]카테고리로 파일 분리시 속성을 외부에 노출시키지 않기
- [Objective-C]Struct에 Objective-C 객체 사용하기
- [Objective-C]Generics를 사용하세요.
- [Swift]각각의 클래스로부터 동적 디스크립션 만들기
- [Objective-C]모든 KeyChain 제거하기
- [Swift]NSDate ↔ String
- [Swift]Method Chaining
- [Swift]Singleton 패턴 사용 방법 3가지
- [Objective-C]Nullability
- [iOS]NSLayoutConstraint
- [Objective-C]GCD의 dispatch group과 notify를 사용하여 작업을 위임하기
- [Objective-C]GCD를 이용하여 데이터 동기화
- [Objective-C]NSOperation과 NSOperationQueue를 사용하는 방법 - 설명 및 예제
- [Objective-C]PerformSelector 대신 GCD로 호출하기
- [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를 이용한 조건문 제거하기
- [Xcode]Library 호출 시 사용하는 all_load, force_load
library
algorithm
- [Swift]Insertion Sort
- [Swift]BubbleSort
- [Swift]MergeSort
- [Swift]Quick Sort
- [Algorithm]Binary Tree
- [Algorithm]Base64 알고리즘
base64
encode
decode
shift
padding
rename
ga
google analytics
analytics
heartheat
keepalive
statusbar
viewwillappear
viewwilldisappear
nsdictionary
switch
- [iOS] WKWebView을 이용한 iOS 앱과 웹페이지 간의 통신 (3) - Plugin을 이용하여 기능 확장하기
- [iOS] WKWebView을 이용한 iOS 앱과 웹페이지 간의 통신 (2) - Control Flow
- [Swift4]옵셔널 비교문 사용시 guard let, if let 대신 if case나 Switch를 사용하자
- [Swift][일일 코드 #28]코딩도장 - Spiral Array
- [Swift][일일 코드 #1]이동하는 방향 확인하기
- [Swift]Enumeration를 이용한 Binary Tree 만들기
- [Swift]Enumeration를 이용한 Error Handling
- [Swift]Enumerations 정리
- [Swift]Control Flow 정리
- [Objective-C]NSDictionary를 이용한 조건문 제거하기
block
factory
description
import
- [Xcode] Link Framework Automatically - CLANG_MODULES_AUTOLINK
- [Objective-C]클래스 호출 - @class vs import
annotation
programming
protocol
- [Swift] Protocol를 준수하는 Extension 코드를 주의하여 작성하기
- [Swift3]Protocol, Extension, AssociatedType 다루기
- [RxSwift][Swift3]POP를 이용하여 더 나은 MVVM 구조 만들기
- [Swift3]Phantom Type
- [Swift]Hashable 프로토콜
- [Swift]클래스만 사용 가능한 프로토콜 선언하기
- [번역][Swift]값 타입(Value Types)으로 더 나은 앱 만들기
- [번역][Swift]프로토콜지향 프로그래밍
- [Swift]런타임시 Mirror를 사용하여 JSON 데이터 만들기
- [Swift]Iterator 패턴 구현하기
- [DesignPattern]데코레이터 패턴(Decorator Pattern)
- [DesignPattern]커맨드 패턴(Command Pattern)
- [DesignPattern]커맨드 패턴(Command Pattern)
- [Swift]Access Control 정리
- [Swift]Generics 정리
- [Swift]Protocols 정리
- [Objective-C]메소드 선언 - Protocol
delegate
category
- [Swift] Protocol를 준수하는 Extension 코드를 주의하여 작성하기
- [Objective-C]카테고리로 파일 분리시 속성을 외부에 노출시키지 않기
- [Swift]Associated Objects로 Delegate에서 Closure로 바꾸기
- [Swift]Extensions 정리
- [Objective-C]클래스 확장 - Category, Extension
extension
- [Swift] Protocol를 준수하는 Extension 코드를 주의하여 작성하기
- [Swift4]Protocol Extension, associatedtype, Generic을 이용하여 기능(변수, 함수)을 그룹화하기
- [Swift3]Protocol, Extension, AssociatedType 다루기
- [Swift]Hashable 프로토콜
- [Swift]런타임시 Mirror를 사용하여 JSON 데이터 만들기
- [Swift] Method Swizzling이란?
- [Swift]Associated Objects로 Delegate에서 Closure로 바꾸기
- [Swift]Method Chaining
- [Swift]Access Control 정리
- [Swift]Protocols 정리
- [Swift]Extensions 정리
- [Objective-C]클래스 확장 - Category, Extension
private
- [Objective-C]카테고리로 파일 분리시 속성을 외부에 노출시키지 않기
- [Swift]Access Control 정리
- [Objective-C]클래스 확장 - Category, Extension
public
implementation
instance
- [번역][Swift]값 타입(Value Types)으로 더 나은 앱 만들기
- Helper Class란 뭘까?
- [Swift]Protocols 정리
- [Swift]Automatic Reference Counting 정리
- [Swift]Optional Chaining 정리
- [Swift]Initialization 정리
- [Swift]inheritance 정리
- [Swift]Methods 정리
- [Swift]Class와 Structure 정리
- [Objective-C]클래스 확장 - Category, Extension
카테고리
익스텐션
nil
- [Swift]weak와 unowned 사용 방법
- [Objective-C]Nullability
- [Swift]Optional Chaining 정리
- [Swift]Deinitialization 정리
- [Objective-C]nil vs null
coding
style guide
decimal
dot
string
- [Swift][일일 코드 #25]코딩도장 - Duplicate Numbers
- [Swift]Control Flow 정리
- [Swift]String and Characters 정리
- [Objective-C]숫자에서 3자리마다 ,를 추가시키기 - NSNumberFormatter
style
number
opengl
eaglcontext
performSelector
gcd
- [Swift]지연 로딩으로 테이블뷰에 데이터를 반영하기
- [Swift]GCD를 이용한 RaceCodition 만들기
- [Objective-C]GCD를 이용하여 데이터 동기화
- [Objective-C]NSOperation과 NSOperationQueue를 사용하는 방법 - 설명 및 예제
- [Objective-C]PerformSelector 대신 GCD로 호출하기
timer
arc
- [Objective-C]Struct에 Objective-C 객체 사용하기
- [Swift]weak와 unowned 사용 방법
- [Swift]Deinitialization 정리
- [Objective-C]PerformSelector 대신 GCD로 호출하기
selector
dispatch_after
dispatch_async
afnetworking
- [Objective-C]NSOperation과 NSOperationQueue를 사용하는 방법 - 설명 및 예제
- [iOS]AFNetworking에서 afnetworking property with 'retain (or strong)' attribute must be of object type 에러 처리하기
retain
strong
- [Swift]Automatic Reference Counting 정리
- [Objective-C]Block 객체 사용하기
- [iOS]AFNetworking에서 afnetworking property with 'retain (or strong)' attribute must be of object type 에러 처리하기
property
- [Objective-C]카테고리로 파일 분리시 속성을 외부에 노출시키지 않기
- [Swift]각각의 클래스로부터 동적 디스크립션 만들기
- [Swift]Associated Objects로 Delegate에서 Closure로 바꾸기
- [Swift]Protocols 정리
- [Swift]Extensions 정리
- [Swift]Optional Chaining 정리
- [Swift]inheritance 정리
- [Swift]Methods 정리
- [Swift]Class와 Structure 정리
- [iOS]AFNetworking에서 afnetworking property with 'retain (or strong)' attribute must be of object type 에러 처리하기
nsoperation
nsoperationqueue
afhttprequestoperation
tableview
cell
lock
queue
async
- [Swift 5.7+][Concurrency] UIViewController의 present, dismiss 함수의 completion을 async 코드로 감싸 사용하기
- [Swift 5.9][Concurrency] Delegate 패턴을 async/await로 변환하기
- [Swift 5.7+][Concurrency] AsyncSequence, AsyncIteratorProtocol
- [Swift 5.7+][Concurrency] Continuations - Closure를 async 코드로 감싸 사용하기
- [Swift4][iOS]권한 획득시 비동기를 동기로 처리하기(DispatchSemaphore)
- [Xcode]XCPlayground Framework
- [Objective-C]GCD의 dispatch group과 notify를 사용하여 작업을 위임하기
- [Objective-C]GCD를 이용하여 데이터 동기화
sync
barrier
synchronized
binary
preorder
inorder
postorder
levelorder
dispatch
dispatch_group
dispatch_queue
dispatch_group_wait
dispatch_group_notify
dispatch_group_async
notify
wait
- [iOS][RxSwift 5.1] Unit Test 작성시 ReplaySubject의 createUnbounded를 이용하여 모든 이벤트를 저장하고 비교 테스트하기
- [Objective-C]GCD의 dispatch group과 notify를 사용하여 작업을 위임하기
concurrent
nsnotification
uiview
calayer
- [CoreAnimation]Implicit Animations
- [CoreAnimation]CALayer의 AnchorPoint, zPosition
- [CoreAnimation]Layer
anchorpoint
zposition
transform
transaction
terminal
softlink
profile
alias
gitconfig
closure
- [Swift] Defer를 이용하여 Closure 실행 보장하기
- [Swift 5.7+][Concurrency] UIViewController의 present, dismiss 함수의 completion을 async 코드로 감싸 사용하기
- [Swift][일일 코드 #28]코딩도장 - Spiral Array
- [Swift]각각의 클래스로부터 동적 디스크립션 만들기
- [Swift]함수 묶기(Binding)
- [Swift]Associated Objects로 Delegate에서 Closure로 바꾸기
- [Swift][일일 코드 #7]오일러 프로젝트 006
- [Swift][일일 코드 #6]오일러 프로젝트 005
- [Swift][일일 코드 #5]오일러 프로젝트 004
- [Swift][일일 코드 #4]오일러 프로젝트 003
- [Swift][일일 코드 #3]오일러 프로젝트 002
- [Swift][일일 코드 #1]이동하는 방향 확인하기
- [Swift]NSDataDetector
- [Swift]UIGestureRecognizer
- [Swift]커링(Currying)
- [Swift]지연 로딩으로 테이블뷰에 데이터를 반영하기
- [Swift]Map, Filter, Reduce 그리고 추론
- [Swift]Initialization 정리
- [Swift]Closure 정리
- [Objective-C]Block 객체 사용하기
first-class
reference
- [번역][Swift]값 타입(Value Types)으로 더 나은 앱 만들기
- [Swift]weak와 unowned 사용 방법
- [Swift]Automatic Reference Counting 정리
- [Swift]Deinitialization 정리
- [Swift]Class와 Structure 정리
- [Swift]Closure 정리
- [Objective-C]Block 객체 사용하기
weak
- [Swift 5.7+][Concurrency] Class에서 Task 사용시 weak self를 사용하자
- [Objective-C]Struct에 Objective-C 객체 사용하기
- [Swift]weak와 unowned 사용 방법
- [Swift]Automatic Reference Counting 정리
- [Objective-C]Block 객체 사용하기
extention
typedef
function
- [Swift4]Protocol Extension, associatedtype, Generic을 이용하여 기능(변수, 함수)을 그룹화하기
- [Swift]Swift 로그 매크로(?) 만들기
- [Swift]Switch문 Trick
- [Swift]함수 묶기(Binding)
- [Swift]Associated Objects로 Delegate에서 Closure로 바꾸기
- [Swift]Autoclosure란?
- [Swift]예제로 살펴본 함수형 프로그래밍
- [Swift]Quick Sort
- [Swift]Initialization 정리
- [Swift]Methods 정리
- [Swift]Class와 Structure 정리
- [Swift]Function 정리
- [Programming]Method와 Function의 차이
object
- [번역][Swift]값 타입(Value Types)으로 더 나은 앱 만들기
- [번역][Swift]프로토콜지향 프로그래밍
- Helper Class란 뭘까?
- [Programming]Method와 Function의 차이
autolayout
interface builder
constraint
NSLayoutConstraint
constraintWithItem
constraintsWithVisualFormat
config
swift
- [Swift 5.9+][Xcode 15][SE-0386] 새로운 Access Modifier인 Package를 Xcode Project에서 사용하기
- [Swift] Protocol를 준수하는 Extension 코드를 주의하여 작성하기
- [번역][WWDC][Xcode] Binary Frameworks in Swift 살짝 정리 - XCFramework
- [ReactiveX][RxSwift]Single Trait - 장단점
- [iOS][Network]Mock 데이터로 서비스 개발하기 - OHHTTPStubs
- [Xcode][LLDB]Debugging With Xcode, LLDB and Chisel
- [Swift]Name Mangling
- [iOS]UIViewController가 진입시 viewDidAppear에서 한번만 필요한 기능 호출하기
- [Swift3]Protocol, Extension, AssociatedType 다루기
- [RxSwift][Swift3]POP를 이용하여 더 나은 MVVM 구조 만들기
- [Swift]컴파일 시간을 아주 많이 줄이기
- [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
- [ReactiveX][RxSwift]flatMap, flatMapFirst, flatMapLatest
- [ReactiveX][RxSwift]Scheduler, observeOn, subscribeOn
- [Swift]Hashable 프로토콜
- [ReactiveX][RxSwift]Subjects - PublishSubject, ReplaySubject, BehaviorSubject, Variable
- [ReactiveX][RxSwift]Observable과 Driver
- [iOS][Swift]이미지로부터 픽셀 데이터 얻어 새로운 이미지 만들기
- [iOS][Swift]NSHTTPCookieStorage를 이용하여 사라진 Cookie 찾기
- [ReactiveX][RxSwift]들어가기 전
- [Swift]클래스만 사용 가능한 프로토콜 선언하기
- [Swift]SpriteKit을 이용하여 UIView에 눈 내리는 효과 만들기
- [Objective-C][Swift]한글 풀어쓰기
- [Swift]Swift 로그 매크로(?) 만들기
- [번역][Swift]프로토콜지향 프로그래밍
- [Objective-C]Struct에 Objective-C 객체 사용하기
- [Objective-C]Generics를 사용하세요.
- [Swift]Switch문 Trick
- [Swift][일일 코드 #28]코딩도장 - Spiral Array
- [Swift]안전하게 배열 조회하기
- [Swift][일일 코드 #27]코딩도장 - Special Sort
- [Swift][일일 코드 #26]코딩도장 - 가장 짧은 지점 구하기
- [Swift][일일 코드 #25]코딩도장 - Duplicate Numbers
- [Swift][iOS]Search API를 사용해보자
- [Swift]Error handling in Swift2 - Try/Throw/Catch/ErrorType
- [Swift]런타임시 Mirror를 사용하여 JSON 데이터 만들기
- [Swift]각각의 클래스로부터 동적 디스크립션 만들기
- [Swift][일일 코드 #24]오일러 프로젝트 023
- [Swift]함수 묶기(Binding)
- [Swift] Method Swizzling이란?
- [Swift][일일 코드 #23]오일러 프로젝트 022
- [Swift]Associated Objects로 Delegate에서 Closure로 바꾸기
- [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]NSDate ↔ String
- [Swift][일일 코드 #3]오일러 프로젝트 002
- [Swift][일일 코드 #2]오일러 프로젝트 001
- [Swift][일일 코드 #1]이동하는 방향 확인하기
- [Swift]트위터 커버 효과 만들기
- [Swift]flatMap을 이용하여 유효한 이미지 리스트를 가져오기
- [Swift]UIAlertController에서 UITextField 만들기
- [Xcode]XCPlayground Framework
- [Swift]IBDesignable을 이용하여 UIBezierPath로 +와 - 버튼 만들기
- [Swift]UIWebView에서 Request 제어
- [Swift]로딩 이미지 애니메이션 팝업 쉽게 만들기
- [iOS]iOS8에서 UIAlertView 대신에 UIAlertController를 사용하자!
- Helper Class란 뭘까?
- [Swift]Playground에서 Dimmed를 어떻게 만들까?
- [Swift]Playground에서 CAGradientLayer를 어떻게 적용할까?
- [번역]Github의 Swift Style Guide
- [Swift]Enumeration를 이용한 Binary Tree 만들기
- [Swift]Enumeration를 이용한 Error Handling
- [Swift]NSDataDetector
- [Swift]UIGestureRecognizer
- [Swift]오토레이아웃을 위한 새로운 클래스 NSLayoutAnchor
- [Swift]Method Chaining
- [Swift]weak와 unowned 사용 방법
- [Swift]Iterator 패턴 구현하기
- [iOS]UIDevice의 Orientation을 믿으시나요?
- [Swift]Singleton 패턴 사용 방법 3가지
- [Swift]커스텀 UIButton 클릭시 항상 특정 메소드 호출하기
- [Objective-C]Nullability
- 순수 함수(Pure Function)
- [Swift]Autoclosure란?
- [Swift]Map 안에서 조건문 써야하나?
- [Swift]커링(Currying)
- [Swift]Set 정리
- [Swift]Insertion Sort
- [Swift]예제로 살펴본 함수형 프로그래밍
- [DesignPattern]데코레이터 패턴(Decorator Pattern)
- [Swift]BubbleSort
- [Swift]MergeSort
- [Swift]Quick Sort
- [Swift]쉽게 값을 교환하기
- [Swift]지연 로딩으로 테이블뷰에 데이터를 반영하기
- [Swift]GCD를 이용한 RaceCodition 만들기
- [Swift]NSUserDefaults 값 초기화하기
- [Swift]Map, Filter, Reduce 그리고 추론
- [swift]?? 중위 연산자
- [Swift]Advanced Operators 정리
- [Swift]Access Control 정리
- [Swift]Generics 정리
- [Swift]Protocols 정리
- [Swift]Extensions 정리
- [Swift]Automatic Reference Counting 정리
- [Swift]Optional Chaining 정리
- [Swift]Nested Types 정리
- [Swift]Type Casting 정리
- [Swift]Deinitialization 정리
- [Swift]Initialization 정리
- [Swift]inheritance 정리
- [Swift]Subscripts 정리
- [Swift]Methods 정리
- [Swift]Properties 정리
- [Swift]Class와 Structure 정리
- [Swift]Enumerations 정리
- [Swift]Closure 정리
- [Swift]Function 정리
- [Swift]Control Flow 정리
- [Swift]Collection Types 정리
- [Swift]String and Characters 정리
- [Swift]Basic Operators 정리
- [Swift]The Basic 정리
optional
- [Swift]@IBOutlet의 Forced Unwrapping Optional(!) vs Optional(?)
- [Objective-C]Nullability
- [Swift]Protocols 정리
- [Swift]Automatic Reference Counting 정리
- [Swift]Type Casting 정리
- [Swift]Initialization 정리
- [Swift]Function 정리
- [Swift]The Basic 정리
let
var
constants
optional binding
safe
operator
- [swift]?? 중위 연산자
- [Swift]Advanced Operators 정리
- [Swift]Protocols 정리
- [Swift]Closure 정리
- [Swift]Basic Operators 정리
update-index
ignore
gitignore
character
literal
type
- [번역][Swift]값 타입(Value Types)으로 더 나은 앱 만들기
- [Swift]커링(Currying)
- [Swift]Set 정리
- [Swift]예제로 살펴본 함수형 프로그래밍
- [Swift]Access Control 정리
- [Swift]Protocols 정리
- [Swift]Properties 정리
- [Swift]Function 정리
- [Swift]Collection Types 정리
- [Swift]String and Characters 정리
scalar
unicode
utf
collection
array
dictionary
nsarray
nsmutablearray
nsmutabledictionary
for-in
control
flow
for
while
break
continue
fallthrough
label
where
- [Swift]Error handling in Swift2 - Try/Throw/Catch/ErrorType
- [Swift]Generics 정리
- [Swift]Control Flow 정리
case
- [Swift][Trick] 값이 옵셔널이 아닌데, guard 또는 if let 문에 사용
- [Swift4]옵셔널 비교문 사용시 guard let, if let 대신 if case나 Switch를 사용하자
- [Swift]Switch문 Trick
- [Swift]Error handling in Swift2 - Try/Throw/Catch/ErrorType
- [Swift]Enumeration를 이용한 Binary Tree 만들기
- [Swift]Enumeration를 이용한 Error Handling
- [Swift]Control Flow 정리
tuple
- [Objective-C]Struct에 Objective-C 객체 사용하기
- [Swift][일일 코드 #26]코딩도장 - 가장 짧은 지점 구하기
- [Swift]Function 정리
- [Swift]Control Flow 정리
range
nested function
inout
func
return
external parameter name
parameter
defalut
hash simbol
variadic parameter
function type
trailing
infer
reference type
strong reference cycle
shorthand argument name
closure expression
map
- [Swift] 간결한 if let 문은 Optional의 map 그리고 Nil-Coalescing(??)으로 대체하기
- [Swift][일일 코드 #26]코딩도장 - 가장 짧은 지점 구하기
- [Swift][일일 코드 #25]코딩도장 - Duplicate Numbers
- [Swift][일일 코드 #23]오일러 프로젝트 022
- [Swift][일일 코드 #12]오일러 프로젝트 011
- [Swift][일일 코드 #5]오일러 프로젝트 004
- [Swift]Map 안에서 조건문 써야하나?
- [Swift]Map, Filter, Reduce 그리고 추론
- [Swift]Closure 정리
enumeration
- [Swift]Enumeration를 이용한 Binary Tree 만들기
- [Swift]Enumeration를 이용한 Error Handling
- [Swift]Protocols 정리
- [Swift]Nested Types 정리
- [Swift]Methods 정리
- [Swift]Enumerations 정리
raw value
toRaw
fromRaw
associated value
member
variable
- [Swift4]Protocol Extension, associatedtype, Generic을 이용하여 기능(변수, 함수)을 그룹화하기
- [Swift]Associated Objects로 Delegate에서 Closure로 바꾸기
- [Swift]Properties 정리
- [Swift]Class와 Structure 정리
enumerations
structure
Identity Operator
encapsulate
value type
Assignment
copy
static
- [iOS][Xcode] Framework Part 1 : Static Framework와 Dynamic Framework
- [Swift]Methods 정리
- [Swift]Properties 정리
struct
- [Swift3]Phantom Type
- [Swift]클래스만 사용 가능한 프로토콜 선언하기
- [번역][Swift]값 타입(Value Types)으로 더 나은 앱 만들기
- [Objective-C]Struct에 Objective-C 객체 사용하기
- [Swift]Iterator 패턴 구현하기
- [Swift]Protocols 정리
- [Swift]Properties 정리
newValue
oldValue
observer
setter
getter
set
get
willSet
didSet
computed property
type property
lazy
- [Swift4] LazySequence
- [Swift]weak와 unowned 사용 방법
- [Swift]커링(Currying)
- [Swift]지연 로딩으로 테이블뷰에 데이터를 반영하기
- [Swift]Properties 정리
stored property
constant
type method
instance method
mutating
self
- [Swift 5.7+][Concurrency] Class에서 Task 사용시 weak self를 사용하자
- [Swift]Method Chaining
- [Swift]weak와 unowned 사용 방법
- [Swift]Initialization 정리
- [Swift]Methods 정리
subscript
- [Swift]안전하게 배열 조회하기
- [Swift]Protocols 정리
- [Swift]Extensions 정리
- [Swift]Optional Chaining 정리
- [Swift]inheritance 정리
- [Swift]Subscripts 정리
overloading
superclass
subclass
base class
override
super
final
initialization
initializer
- [SwiftUI] Binding 변수 주입하기 - Initialization
- [Swift]Extensions 정리
- [Swift]Deinitialization 정리
- [Swift]Initialization 정리
default
init
convenience
designated initializer
convenience initializer
parameter name
local parameter name
required
delegation
chaining
deinitializer
deallocation
deinitialization
deinit
type cast
downcast
is
as
Any
AnyObject
- [Swift][Objective-C]컴파일러 경고 해결 - Cast from objectivec type to unrelated type swift type always fails
- [Swift]Type Casting 정리
nested type
optional chaining
question mark
exclamation mark
unwrapping
debug
- [iOS][Network]Mock 데이터로 서비스 개발하기 - OHHTTPStubs
- [Xcode][LLDB]Debugging With Xcode, LLDB and Chisel
- [Xcode][LLDB]Debugging With Xcode and LLDB
- [Xcode]뷰 디버깅시 접근성 라벨로 뷰 객체를 빠르게 찾자
- [Node.js]debugging
sublimetext
plugin
ARC
unowned
in
requirement
conformance
adoption
generic
- [Swift]Switch문 Trick
- [Swift]Enumeration를 이용한 Binary Tree 만들기
- [Swift]Enumeration를 이용한 Error Handling
- [Swift]Generics 정리
type parameter
extend
type constraint
associated type
access control
internal
access level
bit
infix
prefix
postfix
overflow
underflow
equivalence
associativity
precedence
left
right
none
filter
- [Swift][일일 코드 #27]코딩도장 - Special Sort
- [Swift][일일 코드 #6]오일러 프로젝트 005
- [Swift][일일 코드 #5]오일러 프로젝트 004
- [Swift][일일 코드 #2]오일러 프로젝트 001
- [Swift]Map 안에서 조건문 써야하나?
- [Swift]Map, Filter, Reduce 그리고 추론
reduce
- [Swift][일일 코드 #28]코딩도장 - Spiral Array
- [Swift][일일 코드 #25]코딩도장 - Duplicate Numbers
- [Swift][일일 코드 #24]오일러 프로젝트 023
- [Swift][일일 코드 #23]오일러 프로젝트 022
- [Swift][일일 코드 #22]오일러 프로젝트 021
- [Swift][일일 코드 #21]오일러 프로젝트 020
- [Swift][일일 코드 #20]오일러 프로젝트 019
- [Swift][일일 코드 #17]오일러 프로젝트 016
- [Swift][일일 코드 #16]오일러 프로젝트 015
- [Swift][일일 코드 #12]오일러 프로젝트 011
- [Swift][일일 코드 #10]오일러 프로젝트 009
- [Swift][일일 코드 #7]오일러 프로젝트 006
- [Swift][일일 코드 #2]오일러 프로젝트 001
- [Swift]Map, Filter, Reduce 그리고 추론
inference
2014
tumblr
post
blog
euro
travel
nsuserdefaults
racecondition
didset
go
swap
quicksort
lamda
sort
mergesort
2015
dependency
bubblesort
decorator
wrapper
component
concrete
generator
functional programming
FP
battle ship
refactoring
pure function
first-class function
module
- [Xcode] Link Framework Automatically - CLANG_MODULES_AUTOLINK
- [iOS][Swift] Pure Dependency Injection - 레거시와 신규 모듈
- [Swift]예제로 살펴본 함수형 프로그래밍
insertionsort
currying
uncurrying
haskell
xib
adaptive layout
preview
condition
loop
autoclosure
scala
cpu
Two's complement
nullability
- [Swift][Objective-C]컴파일러 경고 해결 - Cast from objectivec type to unrelated type swift type always fails
- [Objective-C]Nullability
nullable
nonnull
provisioning profiles
ci
server
system
apple
- [Apple][iTMSTransporter]iTMSTransporter로 인앱 만들기
- [Apple][iTMSTransporter]iTMSTransporter로 인앱 다루기
- [번역][Swift]값 타입(Value Types)으로 더 나은 앱 만들기
- [번역][Swift]프로토콜지향 프로그래밍
- Xcode 서버와 CI만들기(0)
ibdesignable
ibinspectable
render
live
runtime
- [Swift]런타임시 Mirror를 사용하여 JSON 데이터 만들기
- [Swift] Method Swizzling이란?
- [Swift]Associated Objects로 Delegate에서 Closure로 바꾸기
- [Swift]인터페이스 빌더에서 실시간 렌더링을 통한 커스텀 뷰 만들기
target_interface_builder
svn
subversion
trends
uikit
initializers
addTarget
UIControlEvents
sourcetree
singleton
objectivec
- [Swift][Objective-C]컴파일러 경고 해결 - Cast from objectivec type to unrelated type swift type always fails
- [Swift]Singleton 패턴 사용 방법 3가지
class constant
nested struct
dispatch_once
uidevice
portrait
landscape
orientation
viewdidload
iterator
sequencetype
generatortype
generate
next
reference cycle
javascript
method chaining
NSLayoutAnchor
UIGestureRecognizer
UIPanGestureRecognizer
UISwipeGestureRecognizer
UIPinchGestureRecognizer
UIRotationGestureRecognizer
UIScreenEdgePanGestureRecognizer
UILongPressGestureRecognizer
nstimer
dsym
archives
xcarchive
NSDataDetector
NSRange
NSTextCheckingType
url
date
timezone
duration
link
PhoneNumber
Address
enum
- [Swift3]Phantom Type
- [Swift]Error handling in Swift2 - Try/Throw/Catch/ErrorType
- [Swift]Enumeration를 이용한 Binary Tree 만들기
- [Swift]Enumeration를 이용한 Error Handling
box
b-tree
binary tree
이상한 모임
werid
meetup
werid meetup
korean
playground
XCPlayground
- [Xcode]XCPlayground Framework
- [Swift]Playground에서 Dimmed를 어떻게 만들까?
- [Swift]Playground에서 CAGradientLayer를 어떻게 적용할까?
CAGradientLayer
UIBezierPath
mask
fillRule
kCAFillRuleEvenOdd
helper
helper class
utility
static method
class method
java
objective-c
- [Objective-C][LLVM]Clang diagnostic 경고 무시하기
- [Objective-C]카테고리로 파일 분리시 속성을 외부에 노출시키지 않기
- [Swift] Method Swizzling이란?
- Helper Class란 뭘까?
UIAlertView
UIAlertController
Alert
ActionSheet
popup
window
uiapplication
UIWebView
NSURLRequest
Bool
uibutton
drawRect
ovalInRect
stroke
IBDesignable
IBInspectable
Storyboard
- [iOS][Xcode] Application에 있는 Storyboard, Xib 등을 리소스 프레임워크로 이전해서 관리하기
- [Swift][SwiftPM] Swift Package로 리소스 번들링하기
- [iOS][Xcode] Framework Part 3 : Storyboard, Xib, Color, Image를 리소스 프레임워크에서 관리
- [iOS] 스토리보드에서 특정 화면에서만 사용하는 복잡한 뷰를 분리하여 동적으로 붙이기
- [Swift]IBDesignable을 이용하여 UIBezierPath로 +와 - 버튼 만들기
UIKit
- [SwiftUI] SwiftUI 도입시 주의해야할 사항 SwiftUI 1.0~ (수정중)
- [iOS][Xcode 14.3+][UIKit][Accessibility] Preview를 이용해 UIKit 화면의 접근성 요소 확인하기
- [iOS][UIKit][SwiftUI] UIKit 기반 CustomView를 Preview에서 확인할 때 sizeThatFits로 설정하여 정확한 크기로 확인하기
- [iOS][UIKit] UIViewController의 view를 CustomView로 대체하기
- [Swift]IBDesignable을 이용하여 UIBezierPath로 +와 - 버튼 만들기
XCPShowView
XCPCaptureValue
XCPSharedDataDirectoryPath
XCPSetExecutionShouldContinueIndefinitely
QuickLookObject
Playground
UITextField
tool
flatMap
- [Swift] 간결한 if let 문은 Optional의 map 그리고 Nil-Coalescing(??)으로 대체하기
- [ReactiveX][RxSwift]flatMap, flatMapFirst, flatMapLatest
- [Swift]flatMap을 이용하여 유효한 이미지 리스트를 가져오기
animation
scale
UIScrollView
direction
NSJSONSerialization
NSDictionary
NSDate
String
NSNumber
NSArray
NSNull
keychain
delete
SecItemDelete
kSecClass
hierarchy
accessibility label
tip
cache
tail recursion
Array
prime
amicable number
associatedobject
objc_setAssociatedObject
objc_getAssociatedObject
objc_removeAssociatedObjects
uialertview
sorted
swizzling
method swizzling
class_getInstanceMethod
method_exchangeImplementations
bind
fp
debugQuickLookObject
dynamicType
pip
pillow
icon
image
resize
script
mirror
swift2
json
ErrorType
reflecting
do
try
- [Swift4]Codable, 현실의 Codable 그리고 Extension
- [Swift]Error handling in Swift2 - Try/Throw/Catch/ErrorType
catch
throw
throws
error
- [iOS][Swift] 배포시 사용하지 않는/전달되면 안되는 라이브러리를 컴파일 타임에 검증하기 - canImport, 전처리기, 컴파일러 지시자 활용
- [Swift]Error handling in Swift2 - Try/Throw/Catch/ErrorType
errortype
CoreSpotlight
MobileCoreServices
CSSearchableItem
NSUserActivity
search
Spotlight
AppDelegate
- [Swift][Objective-C] 클래스 메서드 load()를 활용하여 반복하는 초기화 작업을 줄이기
- [SwiftUI][iOS] Framework에 있는 Custom Font을 등록하여 사용하기
- [Swift][iOS]Search API를 사용해보자
http
https
ats
NSAppTransportSecurity
zip
- [ReactiveX][RxSwift]Combining Operator - startWith, CombineLatest, Merge, Zip, switchLatest
- [Swift][일일 코드 #26]코딩도장 - 가장 짧은 지점 구하기
index
CollectionType
indices
startIndex
endIndex
if case
generics
__unsafe_unretained
assign
wwdc
protocol-oriented
object-oriented
trace
한글
spritekit
skview
skscene
particle
future
value
reference semantics
value semantics
mutable
immutable
fastlane
- [iOS][fastlane]Pem과 SSL Certificate Check를 통해 Push 인증서 관리하기
- [iOS][Xcode]fastlane을 이용하여 쉽게 테스트, 빌드, 배포하기
scan
gym
snapshot
deliver
itunesconnect
- [Apple][iTMSTransporter]iTMSTransporter로 인앱 만들기
- [Apple][iTMSTransporter]iTMSTransporter로 인앱 다루기
- [iOS][Xcode]fastlane을 이용하여 쉽게 테스트, 빌드, 배포하기
plist
PlistBuddy
libexec
count
rev-list
pem
ssl-cert-check
ssl
certificate
p12
openssl
nodejs
redirect
location
302
header
iTMSTransporter
Transporter
InAppPurcase
Application loader
ReactiveX
- [ReactiveX][RxSwift]Single Trait - 장단점
- [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
- [ReactiveX][RxSwift]flatMap, flatMapFirst, flatMapLatest
- [ReactiveX][RxSwift]Scheduler, observeOn, subscribeOn
- [ReactiveX][RxSwift]Subjects - PublishSubject, ReplaySubject, BehaviorSubject, Variable
- [ReactiveX][RxSwift]Observable과 Driver
- [ReactiveX][RxSwift]들어가기 전
RxSwift
- [SwiftPM][Carthage] 라이브러리 Link 경로를 install_name_tool 을 이용하여 변경하기
- [iOS][RxSwift 5.1] Unit Test 작성시 ReplaySubject의 createUnbounded를 이용하여 모든 이벤트를 저장하고 비교 테스트하기
- [ReactiveX][RxSwift]Single Trait - 장단점
- [Swift4][ReactiveX] 에러 쉽게 다루기
- [Swift4][ReactiveX]RxSwift를 직접 구현해보기 - Sink
- [Swift4][ReactiveX]RxSwift를 직접 구현해보기 - Event, Disposable, Observer, Observable
- [RxSwift][Swift3] Closure, Delegate 대신 Observable을 사용해서 응답값을 쉽게 처리하기
- [RxSwift][Swift3]POP를 이용하여 더 나은 MVVM 구조 만들기
- [Swift3][RxSwift]UITableViewCell에서 Rx 사용하기
- [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
- [ReactiveX][RxSwift]flatMap, flatMapFirst, flatMapLatest
- [ReactiveX][RxSwift]Scheduler, observeOn, subscribeOn
- [ReactiveX][RxSwift]Subjects - PublishSubject, ReplaySubject, BehaviorSubject, Variable
- [ReactiveX][RxSwift]Observable과 Driver
- [ReactiveX][RxSwift]들어가기 전
ReactiveCocoa
- [Swift4][ReactiveX]RxSwift를 직접 구현해보기 - Sink
- [Swift4][ReactiveX]RxSwift를 직접 구현해보기 - Event, Disposable, Observer, Observable
- [ReactiveX][RxSwift]들어가기 전
Reactive
RxJava
RxJS
ui
NSHTTPCookieStorage
Alamofire
NSURLSession
request
cookie
llvm
clang
- [Xcode] Link Framework Automatically - CLANG_MODULES_AUTOLINK
- [Objective-C][LLVM]Clang diagnostic 경고 무시하기
warning
- [iOS][Swift] 배포시 사용하지 않는/전달되면 안되는 라이브러리를 컴파일 타임에 검증하기 - canImport, 전처리기, 컴파일러 지시자 활용
- [Objective-C][LLVM]Clang diagnostic 경고 무시하기
compiler
- [Xcode 9.3] 새로 추가된 Compiler Option - Compilation Mode의 Single File
- [Swift]컴파일 시간을 아주 많이 줄이기
- [Swift3]Phantom Type
- [Objective-C][LLVM]Clang diagnostic 경고 무시하기
UIGraphics
bitmap
Observable
- [ReactiveX][RxSwift]Single Trait - 장단점
- [Swift4][ReactiveX] 에러 쉽게 다루기
- [Swift4][ReactiveX]RxSwift를 직접 구현해보기 - Sink
- [Swift4][ReactiveX]RxSwift를 직접 구현해보기 - Event, Disposable, Observer, Observable
- [RxSwift][Swift3] Closure, Delegate 대신 Observable을 사용해서 응답값을 쉽게 처리하기
- [RxSwift][Swift3]POP를 이용하여 더 나은 MVVM 구조 만들기
- [ReactiveX][RxSwift]Unit Test 2 - Subject
- [ReactiveX][RxSwift]Unit Test 1 - 핫 옵저버블과 콜드 옵저버블
- [ReactiveX][RxSwift]핫 옵저버블과 콜드 옵저버블
- [ReactiveX][RxSwift]비동기 작업을 스트림으로 만들기 - 네트워크 예제
- [ReactiveX][RxSwift]Combining Operator - startWith, CombineLatest, Merge, Zip, switchLatest
- [ReactiveX][RxSwift]flatMap, flatMapFirst, flatMapLatest
- [ReactiveX][RxSwift]Scheduler, observeOn, subscribeOn
- [ReactiveX][RxSwift]Subjects - PublishSubject, ReplaySubject, BehaviorSubject, Variable
- [ReactiveX][RxSwift]Observable과 Driver
Driver
asObservable
- [ReactiveX][RxSwift]Single Trait - 장단점
- [ReactiveX][RxSwift]Subjects - PublishSubject, ReplaySubject, BehaviorSubject, Variable
- [ReactiveX][RxSwift]Observable과 Driver
asDriver
MainScheduler
PublishSubject
- [RxSwift][Swift3] Closure, Delegate 대신 Observable을 사용해서 응답값을 쉽게 처리하기
- [ReactiveX][RxSwift]Subjects - PublishSubject, ReplaySubject, BehaviorSubject, Variable
ReplaySubject
- [iOS][RxSwift 5.1] Unit Test 작성시 ReplaySubject의 createUnbounded를 이용하여 모든 이벤트를 저장하고 비교 테스트하기
- [ReactiveX][RxSwift]Subjects - PublishSubject, ReplaySubject, BehaviorSubject, Variable
BehaviorSubject
- [ReactiveX][RxSwift]Unit Test 2 - Subject
- [ReactiveX][RxSwift]Subjects - PublishSubject, ReplaySubject, BehaviorSubject, Variable
Variable
- [ReactiveX][RxSwift]Combining Operator - startWith, CombineLatest, Merge, Zip, switchLatest
- [ReactiveX][RxSwift]Subjects - PublishSubject, ReplaySubject, BehaviorSubject, Variable
event
Hashable
Equatable
CALayer
CABasicAnimation
CAAnimationGroup
Material
ImageMagick
find
identify
convert
opensource
license
settings
bundle
Acknowledgements
observeOn
- [ReactiveX][RxSwift]비동기 작업을 스트림으로 만들기 - 네트워크 예제
- [ReactiveX][RxSwift]Scheduler, observeOn, subscribeOn
subscribe
subscribeOn
- [ReactiveX][RxSwift]비동기 작업을 스트림으로 만들기 - 네트워크 예제
- [ReactiveX][RxSwift]Scheduler, observeOn, subscribeOn
Scheduler
flatMapFirst
flatMapLatest
PIL
startWith
combineLatest
switchLatest
DelegateProxy
DelegateProxyType
Delegate
- [SwiftUI] View와 Interactor 간의 통신을 ObservableObject으로 우회하여 통신하기 - Delegate 패턴
- [RxSwift][Swift3] Closure, Delegate 대신 Observable을 사용해서 응답값을 쉽게 처리하기
- [ReactiveX][RxSwift]Delegate 패턴을 Rx로 바꾸기
Observer
- [Swift4][ReactiveX]RxSwift를 직접 구현해보기 - Event, Disposable, Observer, Observable
- [ReactiveX][RxSwift]핫 옵저버블과 콜드 옵저버블
hot
cold
RxTests
Hot Observables
Cold Observables
TestScheduler
Subject
bounces
contentOffset
idfa
review
UIViewController
- [Swift 5.7+][Concurrency] UIViewController의 present, dismiss 함수의 completion을 async 코드로 감싸 사용하기
- [iOS][UIKit] UIViewController의 view를 CustomView로 대체하기
- [Swift5][RIBs] Uber의 RIBs 프로젝트에서 얻은 경험 (6) - ViewControllable 확장 및 Wrapper
- [iOS][Swift 2.2]UIViewController에서 UITableView를 분리하여 가볍게 만들기
- [iOS]왜 addChildViewController를 사용해야 하는가? - Container View Controller 구현
addChildViewController
removeFromParentViewController
casting
- [Swift][Objective-C]컴파일러 경고 해결 - Cast from objectivec type to unrelated type swift type always fails
cast
- [Swift][Objective-C]컴파일러 경고 해결 - Cast from objectivec type to unrelated type swift type always fails
unrelated type
- [Swift][Objective-C]컴파일러 경고 해결 - Cast from objectivec type to unrelated type swift type always fails
guard
- [Swift][Trick] 값이 옵셔널이 아닌데, guard 또는 if let 문에 사용
- [Swift4]옵셔널 비교문 사용시 guard let, if let 대신 if case나 Switch를 사용하자
- [Swift][Objective-C]컴파일러 경고 해결 - Cast from objectivec type to unrelated type swift type always fails
iboutlet
nib
forced unwrapping
isViewLoaded
runtime error
abi
UITableView
NSObject
- [Swift][Objective-C] 클래스 메서드 load()를 활용하여 반복하는 초기화 작업을 줄이기
- [Swift4]KeyPath의 Get Set 그리고 Observe 사용하기
- [iOS][Swift 2.2]UIViewController에서 UITableView를 분리하여 가볍게 만들기
Swift
- [Swift][Tuist] 파일 경로 간의 상대 경로 계산하기
- [Swift] Private Extension과 Helper 타입
- [Swift 5.9+] Generic과 Noncopyable을 활용하여 보다 안전한 상태머신을 만들기
- [Swift 5.10] Nested Protocol With RIBs
- [Swift] 타입 시스템을 활용하여 보다 안전하게 데이터 유효성 검증하기
- [Swift] Defer를 이용하여 Closure 실행 보장하기
- [Swift][Xcode 15] 통합 로깅 시스템(Unified Logging System)과 Macro
- [Swift 5.9][Xcode 15] Swift Package를 사용하지 않고 Swift의 Macros를 사용할 수 있을까? (3) - Prebuild Swift-Syntax
- [Swift 5.9][Xcode 15] Swift Package를 사용하지 않고 Swift의 Macros를 사용할 수 있을까? (2) - Prebuild Macro
- [Swift 5.9][Xcode 15] Swift Package를 사용하지 않고 Swift의 Macros를 사용할 수 있을까? (1) - Why
- [Swift][SwiftPM] Swift Package의 라이브러리를 Dynamic Framework로 만들기
- [Swift 5.9+][Macros][리팩토링] Codable 이전 시대의 Response 코드를 Macros를 이용하여 정리하기
- [Swift 5.9+][Macros] Macros 개발시 디버깅 방법
- [Swift][Objective-C] 클래스 메서드 load()를 활용하여 반복하는 초기화 작업을 줄이기
- [Swift 5.7+][Objective-C] Dependency Injection (4) - class_getName, class_getInstanceVariable, class_getSuperclass를 사용하여 특정 타입 찾기
- [Swift 5.7+][Objective-C] Dependency Injection (3) - objc_getClassList를 사용하여 모든 클래스 목록 얻기
- [Swift] 다른 이름의 프로토콜에서 같은 이름의 속성과 함수를 가질때 '@_implements' 속성을 이용하여 해결하기
- [iOS][Swift] Sequence를 활용하여 UIView의 특정 superview를 찾기
- [Swift 5.7+][Concurrency] UIViewController의 present, dismiss 함수의 completion을 async 코드로 감싸 사용하기
- [Swift] Network API 명세서
- [Swift 5.7+] Dependency Injection (2) - 컨테이너 무결성 보장해 보기
- [Swift 5.7+] Dependency Injection (1) - PropertyWrapper를 이용한 Service Locator 구현하기
- [Swift 5.9][Concurrency] Delegate 패턴을 async/await로 변환하기
- [Swift 5.7+][Concurrency] AsyncSequence, AsyncIteratorProtocol
- [Swift 5.7+][Concurrency] Continuations - Closure를 async 코드로 감싸 사용하기
- [Swift 5.7+][Concurrency] AsyncStream, AsyncThrowingStream 알아보기 - Continuation vs unfolding
- [Swift] Concurrency 링크 모음
- [Swift 5.7+][Concurrency] Class에서 Task 사용시 weak self를 사용하자
- [Swift 5.7+][Concurrency] Task의 CancelTaskBag 구현하기
- [iOS][Xcode 13.3.1][Tuist 3.3.0] 프로젝트 생성/관리 도구 Tuist(8) - 모듈의 데모앱의 지속가능하게 유지보수되도록 검증하기 with Tuist
- [Swift 5.4+] SE-0289 ResultBuilder
- [iOS][Tuist 2.7.2] 프로젝트 생성/관리 도구 Tuist(6) - ProcessInfo Environment 기반 프로젝트 생성
- [iOS][Swift] 배포시 사용하지 않는/전달되면 안되는 라이브러리를 컴파일 타임에 검증하기 - canImport, 전처리기, 컴파일러 지시자 활용
- [iOS] 준 Clean Architecture With RIBs, ReactorKit 그리고 Tuist를 이용한 프로젝트 모듈화 설계(5) - Repository, Dependency Injection, Service Locator
- [Swift] 순방향 파이프 연산자 - |>
- [iOS][SwiftPM][Xcode 13.2.1+] SwiftPM로 RxSwift 사용할 때 RxBlocking, RxTest를 유닛테스트에서 사용하기 - 해결편(SwiftPM)
- [iOS][SwiftPM][Xcode 13.0] SwiftPM로 RxSwift 사용할 때 RxBlocking, RxTest를 유닛테스트에서 사용하기 - 절반해결(코드복사)
- [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
- [Swift] 간결한 if let 문은 Optional의 map 그리고 Nil-Coalescing(??)으로 대체하기
- [Swift][SwiftPM] Swift Package - ProcessInfo Environment 기반 빌드 환경설정
- [Swift 5.3] @_exported 속성 정리
- [iOS][Tuist 1.7.1] 프로젝트 생성/관리 도구 Tuist(3) - Extension
- [iOS][Tuist 1.7.1] 프로젝트 생성/관리 도구 Tuist(2) - StaticFramework
- [iOS][Tuist 1.7.1] 프로젝트 생성/관리 도구 Tuist(1) - Start
- [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로 리소스 번들링하기
- [Swift][RIBs] Child Router 변수 할당 및 attachChild 순서
- [Swift][RIBs] RIBs에 Dependency Injection Container를 적용하여 의존성 관계 해결하기
- [Swift5.1+][RIBs] dynamicMemberLookup의 KeyPath를 이용하여 Component의 Dependency 속성을 접근하기
- [iOS][Swift] 모듈간의 관계를 Dependency Injection Container으로 풀어보자
- [Swift 5.2][SwiftPM] Swift Package Manager를 이용하여 패키지를 통합 관리하기 - Proxy Module
- [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][Swift] Framework에 있는 이미지를 Imageliteral 사용하여 불러오기
- [Swift5][RIBs] Uber의 RIBs 프로젝트에서 얻은 경험 (3) - Dependency와 Component 그리고 Builder
- [Swift5][RIBs] Uber의 RIBs 프로젝트에서 얻은 경험 (2) - 강제성
- [Swift5][RIBs] Uber의 RIBs 프로젝트에서 얻은 경험 (1) - 프로토콜 지향 프로그래밍
- [Swift5.1] Property Wrapper 사용 - 맛보기
- [Swift5] StringInterpolation, StringInterpolationProtocol, 그리고 NSAttributedString
- [Swift5] Import 사용 방법
- [Swift][Trick] Protocol에 정의된 함수에 기본값 사용하기
- 2019년 1월 5주 개발 자료 모음집 - iOS
- 2019년 1월 4주 개발 자료 모음집 - iOS, Swift
- 2019년 1월 3주 개발 자료 모음집 - iOS, Swift, UI, UnitTest
- [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]Protocol Extension, associatedtype, Generic을 이용하여 기능(변수, 함수)을 그룹화하기
- [Swift4]Codable, 현실의 Codable 그리고 Extension
- [Swift3]Protocol Extension(2) - Dynamic Dispatch과 Static Dispatch
- [Swift3]Protocol Extension(1) - 클래스 또는 구조체가 Protocol Extension에 같은 이름을 갖는 메소드나 계산 속성을 가질 때 어떻게 될까?
- [RxSwift][Swift3] Closure, Delegate 대신 Observable을 사용해서 응답값을 쉽게 처리하기
- [Swift3][RxSwift]UITableViewCell에서 Rx 사용하기
- [iOS][Swift 2.2]UIViewController에서 UITableView를 분리하여 가볍게 만들기
UITableViewDelegate
UITableViewDataSource
TableViewModel
precedencegroup
precedence group
ContiguousArray
ArraySlice
Cocoa
phantom type
strongly typed language
UIButton
UILabel
flag
UITableViewCell
MVVM
ViewModel
Closure
Callback
associatedType
viewDidDisappear
viewWillAppear
viewWillDisappear
isBeingPresented
isBeingDismissed
isMovingToParentViewController
isMovingFromParentViewController
Protocol
- [Swift 5.10] Nested Protocol With RIBs
- [Swift] 다른 이름의 프로토콜에서 같은 이름의 속성과 함수를 가질때 '@_implements' 속성을 이용하여 해결하기
- [Swift] Network API 명세서
- [Swift 5.7+] Dependency Injection (2) - 컨테이너 무결성 보장해 보기
- [Swift 5.7+] Dependency Injection (1) - PropertyWrapper를 이용한 Service Locator 구현하기
- [iOS][Xcode] 서드파티 라이브러리 잘 관리하기 - Static Library와 Dynamic Library의 관점 분리
- [Swift][RIBs] RIBs에 Dependency Injection Container를 적용하여 의존성 관계 해결하기
- [iOS][Swift] 모듈간의 관계를 Dependency Injection Container으로 풀어보자
- [Swift 5.1] Opaque Type과 Type Erasure
- [SwiftUI] View와 Interactor 간의 통신을 ObservableObject으로 우회하여 통신하기 - Delegate 패턴
- [SwiftUI] 가독성 측면에서 View를 어떻게 만들어야 할까? - Extension 활용
- [Swift5][RIBs] Uber의 RIBs 프로젝트에서 얻은 경험 (1) - 프로토콜 지향 프로그래밍
- [Swift][Trick] Protocol에 정의된 함수에 기본값 사용하기
- [Swift4]Protocol Extension, associatedtype, Generic을 이용하여 기능(변수, 함수)을 그룹화하기
- [Swift3]Protocol Extension(2) - Dynamic Dispatch과 Static Dispatch
- [Swift3]Protocol Extension(1) - 클래스 또는 구조체가 Protocol Extension에 같은 이름을 갖는 메소드나 계산 속성을 가질 때 어떻게 될까?
Extension
- [Swift] Private Extension과 Helper 타입
- [iOS][Swift][Modular Architecture] Troubleshooting - Static Library를 모듈로 작업 후, Extension으로 코드 확장시 멤버를 찾을 수 없는 문제와 해결방법
- [Swift5][RIBs] Uber의 RIBs 프로젝트에서 얻은 경험 (6) - ViewControllable 확장 및 Wrapper
- [SwiftUI] 가독성 측면에서 View를 어떻게 만들어야 할까? - Extension 활용
- [Swift3]Protocol Extension(2) - Dynamic Dispatch과 Static Dispatch
- [Swift3]Protocol Extension(1) - 클래스 또는 구조체가 Protocol Extension에 같은 이름을 갖는 메소드나 계산 속성을 가질 때 어떻게 될까?
Protocol Extension
- [Swift3]Protocol Extension(2) - Dynamic Dispatch과 Static Dispatch
- [Swift3]Protocol Extension(1) - 클래스 또는 구조체가 Protocol Extension에 같은 이름을 갖는 메소드나 계산 속성을 가질 때 어떻게 될까?
Class
Struct
- [번역][WWDC][Xcode] Binary Frameworks in Swift 살짝 정리 - XCFramework
- [Swift4] Struct를 체이닝 메소드로 값을 계속 변경하기
- [Swift3]Protocol Extension(1) - 클래스 또는 구조체가 Protocol Extension에 같은 이름을 갖는 메소드나 계산 속성을 가질 때 어떻게 될까?
Dispatch
Codable
- [Swift] Network API 명세서
- [Swift 5.2][BetterCodable] JSON 데이터를 Decode할 때, 키가 없는 경우 PropertyWrapper를 이용하여 빈 값을 채우기
- [Swift4]Codable, 현실의 Codable 그리고 Extension
Encodable
- [Swift] Network API 명세서
- [Swift 5.2][BetterCodable] JSON 데이터를 Decode할 때, 키가 없는 경우 PropertyWrapper를 이용하여 빈 값을 채우기
- [Swift4]Codable, 현실의 Codable 그리고 Extension
Decodable
- [Swift] Network API 명세서
- [Swift 5.2][BetterCodable] JSON 데이터를 Decode할 때, 키가 없는 경우 PropertyWrapper를 이용하여 빈 값을 채우기
- [Swift4]Codable, 현실의 Codable 그리고 Extension
CodingKeys
associatedtype
Generic
- [Swift 5.9+] Generic과 Noncopyable을 활용하여 보다 안전한 상태머신을 만들기
- [Swift 5.1] Opaque Type과 Type Erasure
- [Swift4]Protocol Extension, associatedtype, Generic을 이용하여 기능(변수, 함수)을 그룹화하기
computed
PHPhotoLibrary
PHAuthorizationStatus
DispatchSemaphore
semaphore
iOS
- [iOS] WKWebView을 이용한 iOS 앱과 웹페이지 간의 통신 (3) - Plugin을 이용하여 기능 확장하기
- [iOS] WKWebView을 이용한 iOS 앱과 웹페이지 간의 통신 (2) - Control Flow
- [iOS] WKWebView을 이용한 iOS 앱과 웹페이지 간의 통신 (1) - WKWebView과 Javasciprt Bridge
- [iOS][Xcode 14.3+][UIKit][Accessibility] Preview를 이용해 UIKit 화면의 접근성 요소 확인하기
- [ADR][가상] 아키텍처 의사 결정 기록: 리소스 관리 모듈 생성 및 사용 결정
- [iOS][Xcode] Application에 있는 Storyboard, Xib 등을 리소스 프레임워크로 이전해서 관리하기
- [iOS][UIKit][SwiftUI] UIKit 기반 CustomView를 Preview에서 확인할 때 sizeThatFits로 설정하여 정확한 크기로 확인하기
- [iOS] FLEX, InjectionIII를 활용하여 View에 동적으로 데이터를 전달하기
- [iOS][Swift] Sequence를 활용하여 UIView의 특정 superview를 찾기
- [iOS][Xcode 13.3.1][Tuist 3.3.0[InjectionIII] 프로젝트 생성/관리 도구 Tuist(7) - DemoApp과 Inject의 Hot Reload를 이용해서 빠른 개발하기
- [iOS][Swift] 배포시 사용하지 않는/전달되면 안되는 라이브러리를 컴파일 타임에 검증하기 - canImport, 전처리기, 컴파일러 지시자 활용
- [iOS][UIKit] UIViewController의 view를 CustomView로 대체하기
- [Swift][RIBs] Child Router 변수 할당 및 attachChild 순서
- [Swift5.1+][RIBs] dynamicMemberLookup의 KeyPath를 이용하여 Component의 Dependency 속성을 접근하기
- [Swift5][RIBs] Uber의 RIBs 프로젝트에서 얻은 경험 (6) - ViewControllable 확장 및 Wrapper
- [Swift5][RIBs] Uber의 RIBs 프로젝트에서 얻은 경험 (5) - Adapter
- [Swift5][RIBs] Uber의 RIBs 프로젝트에서 얻은 경험 (4) - Unit Test 작성하기
- [iOS][RxSwift 5.1] Unit Test 작성시 ReplaySubject의 createUnbounded를 이용하여 모든 이벤트를 저장하고 비교 테스트하기
- [SwiftUI][iOS] Framework에 있는 Custom Font을 등록하여 사용하기
- [iOS][Swift] Framework에 있는 이미지를 Imageliteral 사용하여 불러오기
- [iOS][Xcode] Framework Part 3 : Storyboard, Xib, Color, Image를 리소스 프레임워크에서 관리
- [Swift5][RIBs] Uber의 RIBs 프로젝트에서 얻은 경험 (3) - Dependency와 Component 그리고 Builder
- [Swift5][RIBs] Uber의 RIBs 프로젝트에서 얻은 경험 (2) - 강제성
- [Swift5][RIBs] Uber의 RIBs 프로젝트에서 얻은 경험 (1) - 프로토콜 지향 프로그래밍
- [iOS] 도메인 별로 파일을 모으기
- [iOS] 스토리보드에서 특정 화면에서만 사용하는 복잡한 뷰를 분리하여 동적으로 붙이기
- [iOS]No such module - Modulemap
- 2019년 1월 5주 개발 자료 모음집 - iOS
- 2019년 1월 4주 개발 자료 모음집 - iOS, Swift
- 2019년 1월 3주 개발 자료 모음집 - iOS, Swift, UI, UnitTest
- [iOS] Enterprise 규모 앱 환경 구성 - 2
- [iOS] Enterprise 규모 앱 환경 구성 - 1
- [iOS] 의존성 주입하기 - 외부 라이브러리, iOS 프레임워크
- [iOS] 접근성 정리
- [Swift4][iOS]권한 획득시 비동기를 동기로 처리하기(DispatchSemaphore)
ReactiveKit
- [Swift4][ReactiveX] 에러 쉽게 다루기
- [Swift4][ReactiveX]RxSwift를 직접 구현해보기 - Sink
- [Swift4][ReactiveX]RxSwift를 직접 구현해보기 - Event, Disposable, Observer, Observable
Event
- [Swift4][ReactiveX] 에러 쉽게 다루기
- [Swift4][ReactiveX]RxSwift를 직접 구현해보기 - Event, Disposable, Observer, Observable
Disposable
Sink
Optional
- [Swift] 간결한 if let 문은 Optional의 map 그리고 Nil-Coalescing(??)으로 대체하기
- [Swift][Trick] 값이 옵셔널이 아닌데, guard 또는 if let 문에 사용
- [Swift4]옵셔널 비교문 사용시 guard let, if let 대신 if case나 Switch를 사용하자
merge-base
diff
SwiftLint
KeyPath
- [Swift5.1+][RIBs] dynamicMemberLookup의 KeyPath를 이용하여 Component의 Dependency 속성을 접근하기
- [Swift4]KeyPath의 Get Set 그리고 Observe 사용하기
KeyValue
NSKeyValueObservation
objcMembers
dynamic
- [iOS][Xcode] Framework Part 1 : Static Framework와 Dynamic Framework
- [Swift4]KeyPath의 Get Set 그리고 Observe 사용하기
DisposeBag
Lazy
LazySequence
LazyCollection
LazySequenceProtocol
Stream
Error
VSCode
LLDB
- [iOS][Network]Mock 데이터로 서비스 개발하기 - OHHTTPStubs
- [Xcode][LLDB]Debugging With Xcode, LLDB and Chisel
- [Xcode][LLDB]Debugging With Xcode and LLDB
lldb
- [iOS][Network]Mock 데이터로 서비스 개발하기 - OHHTTPStubs
- [Xcode][LLDB]Debugging With Xcode, LLDB and Chisel
- [Xcode][LLDB]Debugging With Xcode and LLDB
Chisel
- [Xcode11 Beta1] Chisel 동작하지 않는 문제 - 해결
- [Xcode11 Beta1] Chisel 동작하지 않는 문제 - 해결
- [Xcode][LLDB]Debugging With Xcode, LLDB and Chisel
objectie-c
OHHTTPStubs
stub
test
API
URLSession
Accessibility
- [iOS][Xcode 14.3+][UIKit][Accessibility] Preview를 이용해 UIKit 화면의 접근성 요소 확인하기
- [iOS] 접근성 정리
- [iOS] 접근성 정리
VoiceOver
URLProtocol
APIRequest
WWDC
JSONDecoder
- [Swift 5.2][BetterCodable] JSON 데이터를 Decode할 때, 키가 없는 경우 PropertyWrapper를 이용하여 빈 값을 채우기
- [Swift4.1] JSONDecoder의 KeyDecodingStrategy
KeyDecodingStrategy
XCode
- [SwiftPM][Carthage] 라이브러리 Link 경로를 install_name_tool 을 이용하여 변경하기
- [iOS] 스토리보드에서 특정 화면에서만 사용하는 복잡한 뷰를 분리하여 동적으로 붙이기
- [iOS]No such module - Modulemap
- [iOS] Enterprise 규모 앱 환경 구성 - 2
- [iOS] Enterprise 규모 앱 환경 구성 - 1
- [iOS] 의존성 주입하기 - 외부 라이브러리, iOS 프레임워크
Project
- [iOS][Xcode] Framework Part 2 : 프로젝트, 서브 프로젝트, Dependencies, 그리고 Static, Dynamic Framework
- [iOS]No such module - Modulemap
- [iOS] Enterprise 규모 앱 환경 구성 - 2
- [iOS] Enterprise 규모 앱 환경 구성 - 1
- [iOS] 의존성 주입하기 - 외부 라이브러리, iOS 프레임워크
Library
- [Swift][SwiftPM] Swift Package의 라이브러리를 Dynamic Framework로 만들기
- [iOS][SwiftPM][Xcode 13.2.1+] SwiftPM로 RxSwift 사용할 때 RxBlocking, RxTest를 유닛테스트에서 사용하기 - 해결편(SwiftPM)
- [iOS][SwiftPM][Xcode 13.0] SwiftPM로 RxSwift 사용할 때 RxBlocking, RxTest를 유닛테스트에서 사용하기 - 절반해결(코드복사)
- [iOS][Swift][Modular Architecture] Troubleshooting - Static Library를 모듈로 작업 후, Extension으로 코드 확장시 멤버를 찾을 수 없는 문제와 해결방법
- [iOS][Xcode] 서드파티 라이브러리 잘 관리하기 - Static Library와 Dynamic Library의 관점 분리
- [iOS] Enterprise 규모 앱 환경 구성 - 2
- [iOS] 의존성 주입하기 - 외부 라이브러리, iOS 프레임워크
Dependency
- [iOS][Swift] Pure Dependency Injection - 레거시와 신규 모듈
- [iOS][Xcode] 서드파티 라이브러리 잘 관리하기 - Static Library와 Dynamic Library의 관점 분리
- [Swift5][RIBs] Uber의 RIBs 프로젝트에서 얻은 경험 (5) - Adapter
- [iOS] 의존성 주입하기 - 외부 라이브러리, iOS 프레임워크
Injection
- [iOS][Xcode] 서드파티 라이브러리 잘 관리하기 - Static Library와 Dynamic Library의 관점 분리
- [iOS] 의존성 주입하기 - 외부 라이브러리, iOS 프레임워크
Dependency Injection
- [Swift 5.7+][Objective-C] Dependency Injection (4) - class_getName, class_getInstanceVariable, class_getSuperclass를 사용하여 특정 타입 찾기
- [Swift 5.7+][Objective-C] Dependency Injection (3) - objc_getClassList를 사용하여 모든 클래스 목록 얻기
- [Swift 5.7+] Dependency Injection (2) - 컨테이너 무결성 보장해 보기
- [Swift 5.7+] Dependency Injection (1) - PropertyWrapper를 이용한 Service Locator 구현하기
- [iOS][Xcode] 서드파티 라이브러리 잘 관리하기 - Static Library와 Dynamic Library의 관점 분리
- [Swift][RIBs] RIBs에 Dependency Injection Container를 적용하여 의존성 관계 해결하기
- [iOS][Swift] 모듈간의 관계를 Dependency Injection Container으로 풀어보자
- [iOS] 의존성 주입하기 - 외부 라이브러리, iOS 프레임워크
DI
- [Swift 5.7+] Dependency Injection (2) - 컨테이너 무결성 보장해 보기
- [Swift 5.7+] Dependency Injection (1) - PropertyWrapper를 이용한 Service Locator 구현하기
- [iOS][Xcode] 서드파티 라이브러리 잘 관리하기 - Static Library와 Dynamic Library의 관점 분리
- [Swift][RIBs] RIBs에 Dependency Injection Container를 적용하여 의존성 관계 해결하기
- [iOS][Swift] 모듈간의 관계를 Dependency Injection Container으로 풀어보자
- [iOS] 의존성 주입하기 - 외부 라이브러리, iOS 프레임워크
CocoaPods
Carthage
- [SwiftPM][Carthage] 라이브러리 Link 경로를 install_name_tool 을 이용하여 변경하기
- [Swift 5.2][SwiftPM] Swift Package Manager를 이용하여 패키지를 통합 관리하기 - Proxy Module
- [Xcode 10][Carthage] Run Script phases의 Input File List에 xcfilelist를 추가하여 쉽게 라이브러리를 넣기
- [iOS]No such module - Modulemap
- [iOS] Enterprise 규모 앱 환경 구성 - 2
Layer
TestFlight
SFUIRounded
LayoutInspector
Inspector
default argument
Python
OpenData
fomatter
SPM
- [Swift][SwiftPM] Swift Package의 라이브러리를 Dynamic Framework로 만들기
- [iOS][SwiftPM][Xcode 13.2.1+] SwiftPM로 RxSwift 사용할 때 RxBlocking, RxTest를 유닛테스트에서 사용하기 - 해결편(SwiftPM)
- [iOS][SwiftPM][Xcode 13.0] SwiftPM로 RxSwift 사용할 때 RxBlocking, RxTest를 유닛테스트에서 사용하기 - 절반해결(코드복사)
- [Swift][SwiftPM] Swift Package - ProcessInfo Environment 기반 빌드 환경설정
- [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 5.2][SwiftPM] Swift Package Manager를 이용하여 패키지를 통합 관리하기 - Proxy Module
- 2019년 2월 4주 개발 자료 모음집 - Python, iOS, Swift
Swift Package Manager
- [Swift][SwiftPM] Swift Package - ProcessInfo Environment 기반 빌드 환경설정
- [Swift 5.2][SwiftPM] Swift Package Manager를 이용하여 패키지를 통합 관리하기 - Proxy Module
- 2019년 2월 4주 개발 자료 모음집 - Python, iOS, Swift
SwiftPM
- [Swift][SwiftPM] Swift Package의 라이브러리를 Dynamic Framework로 만들기
- [iOS][SwiftPM][Xcode 13.2.1+] SwiftPM로 RxSwift 사용할 때 RxBlocking, RxTest를 유닛테스트에서 사용하기 - 해결편(SwiftPM)
- [iOS][SwiftPM][Xcode 13.0] SwiftPM로 RxSwift 사용할 때 RxBlocking, RxTest를 유닛테스트에서 사용하기 - 절반해결(코드복사)
- [iOS][Tuist 1.7.1] 프로젝트 생성/관리 도구 Tuist(5) - Local Swift Package와 Proxy Swift Package
- [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 5.2][SwiftPM] Swift Package Manager를 이용하여 패키지를 통합 관리하기 - Proxy Module
- 2019년 2월 4주 개발 자료 모음집 - Python, iOS, Swift
Autolayout
xcfilelist
UIImage
- [iOS][Swift] Framework에 있는 이미지를 Imageliteral 사용하여 불러오기
- [iOS][Xcode] Framework Part 3 : Storyboard, Xib, Color, Image를 리소스 프레임워크에서 관리
- [Xcode][iOS] 프레임워크를 이용하여 한 프레임워크가 리소스를 관리하고, 여러 프레임워크가 리소스 사용하기
XCAssets
Bundle
- [Swift][SwiftPM] Swift Package로 리소스 번들링하기
- [iOS][Swift] Framework에 있는 이미지를 Imageliteral 사용하여 불러오기
- [Xcode][iOS] 프레임워크를 이용하여 한 프레임워크가 리소스를 관리하고, 여러 프레임워크가 리소스 사용하기
Import
NSAttributedString
- [Swift 5.4+] SE-0289 ResultBuilder
- [Swift5] StringInterpolation, StringInterpolationProtocol, 그리고 NSAttributedString
StringInterpolation
StringInterpolationProtocol
propertyWrapper
Property Wrapper
SE-0258
Annotation
- [번역][WWDC][Xcode] Binary Frameworks in Swift 살짝 정리 - XCFramework
- [Swift5.1] Property Wrapper 사용 - 맛보기
python2
python3
Uber
- [Swift][RIBs] Child Router 변수 할당 및 attachChild 순서
- [Swift5.1+][RIBs] dynamicMemberLookup의 KeyPath를 이용하여 Component의 Dependency 속성을 접근하기
- [Swift5][RIBs] Uber의 RIBs 프로젝트에서 얻은 경험 (6) - ViewControllable 확장 및 Wrapper
- [Swift5][RIBs] Uber의 RIBs 프로젝트에서 얻은 경험 (5) - Adapter
- [Swift5][RIBs] Uber의 RIBs 프로젝트에서 얻은 경험 (4) - Unit Test 작성하기
- [Swift5][RIBs] Uber의 RIBs 프로젝트에서 얻은 경험 (3) - Dependency와 Component 그리고 Builder
- [Swift5][RIBs] Uber의 RIBs 프로젝트에서 얻은 경험 (2) - 강제성
- [Swift5][RIBs] Uber의 RIBs 프로젝트에서 얻은 경험 (1) - 프로토콜 지향 프로그래밍
RIBs
- [Swift 5.10] Nested Protocol With RIBs
- [Swift][SwiftUI] RIBs + SwiftUI
- [ADR][가상] 아키텍처 의사 결정 기록: iOS 애플리케이션 아키텍처 채택하기
- [iOS][Swift] Pure Dependency Injection - 레거시와 신규 모듈
- [iOS] 준 Clean Architecture With RIBs, ReactorKit 그리고 Tuist를 이용한 프로젝트 모듈화 설계(5) - Repository, Dependency Injection, Service Locator
- [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) - 설계편
- [Swift][RIBs] Child Router 변수 할당 및 attachChild 순서
- [Swift][RIBs] RIBs에 Dependency Injection Container를 적용하여 의존성 관계 해결하기
- [Swift5.1+][RIBs] dynamicMemberLookup의 KeyPath를 이용하여 Component의 Dependency 속성을 접근하기
- [Swift5][RIBs] Uber의 RIBs 프로젝트에서 얻은 경험 (6) - ViewControllable 확장 및 Wrapper
- [Swift5][RIBs] Uber의 RIBs 프로젝트에서 얻은 경험 (5) - Adapter
- [Swift5][RIBs] Uber의 RIBs 프로젝트에서 얻은 경험 (4) - Unit Test 작성하기
- [Swift5][RIBs] Uber의 RIBs 프로젝트에서 얻은 경험 (3) - Dependency와 Component 그리고 Builder
- [Swift5][RIBs] Uber의 RIBs 프로젝트에서 얻은 경험 (2) - 강제성
- [Swift5][RIBs] Uber의 RIBs 프로젝트에서 얻은 경험 (1) - 프로토콜 지향 프로그래밍
DIP
POP
Protocol Oriented Programming
Single
asSingle
framework
lipo
nm
- [Swift 5.7+] Dependency Injection (2) - 컨테이너 무결성 보장해 보기
- [LLVM] 정적 라이브러리(Static Library), 동적 라이브러리(Shared Library) 만들기
- [iOS][Xcode] Framework Part 1 : Static Framework와 Dynamic Framework
file
strings
Static Framework
Dynamic Framework
- [Swift][SwiftPM] Swift Package의 라이브러리를 Dynamic Framework로 만들기
- [iOS][SwiftPM][Xcode 13.2.1+] SwiftPM로 RxSwift 사용할 때 RxBlocking, RxTest를 유닛테스트에서 사용하기 - 해결편(SwiftPM)
- [iOS][SwiftPM][Xcode 13.0] SwiftPM로 RxSwift 사용할 때 RxBlocking, RxTest를 유닛테스트에서 사용하기 - 절반해결(코드복사)
- [iOS][Swift][Modular Architecture] Troubleshooting - Static Library를 모듈로 작업 후, Extension으로 코드 확장시 멤버를 찾을 수 없는 문제와 해결방법
- [iOS][Xcode] Framework Part 2 : 프로젝트, 서브 프로젝트, Dependencies, 그리고 Static, Dynamic Framework
Dependencies
UIColor
Color
Image
- [Swift][SwiftPM] Swift Package로 리소스 번들링하기
- [iOS][Xcode] Framework Part 3 : Storyboard, Xib, Color, Image를 리소스 프레임워크에서 관리
Assets
Xib
- [iOS][Xcode] Application에 있는 Storyboard, Xib 등을 리소스 프레임워크로 이전해서 관리하기
- [iOS][Xcode] Framework Part 3 : Storyboard, Xib, Color, Image를 리소스 프레임워크에서 관리
SwiftUI
- [SwiftUI] SwiftUI 도입시 주의해야할 사항 SwiftUI 1.0~ (수정중)
- [Swift][SwiftUI] RIBs + SwiftUI
- [iOS][Xcode 14.3+][UIKit][Accessibility] Preview를 이용해 UIKit 화면의 접근성 요소 확인하기
- [iOS][UIKit][SwiftUI] UIKit 기반 CustomView를 Preview에서 확인할 때 sizeThatFits로 설정하여 정확한 크기로 확인하기
- [iOS][UIKit] UIViewController의 view를 CustomView로 대체하기
- [SwiftUI] Binding Proxy
- [SwiftUI] Binding 변수 주입하기 - Initialization
- [SwiftUI] Text의 Font Size를 Frame에 Fit하게 맞추기 - minimumScaleFactor
- [SwiftUI] View - padding()
- [SwiftUI] 유용한 Extension 및 예제 코드 모음집
- [SwiftUI] View 생성시 @State 속성 값 주입하기
- [SwiftUI] View와 Interactor 간의 통신을 ObservableObject으로 우회하여 통신하기 - Delegate 패턴
- [SwiftUI][iOS] Framework에 있는 Custom Font을 등록하여 사용하기
- [SwiftUI] 가독성 측면에서 View를 어떻게 만들어야 할까? - Extension 활용
- [SwiftUI] GeometryReader 내부에 변수 선언하기
GeometryReader
GeometryProxy
imageLiteral
_ExpressibleByImageLiteral
Ruby
- [Xcode][Ruby] Xcodeproj Gem을 활용하여 Xcode Test Plans 생성 스크립트 만들기
- [iOS] XcodeProj Gem과 Graphviz를 이용하여 프로젝트의 Framework Dependency Diagram 그리기
Gem
- [Xcode][Ruby] Xcodeproj Gem을 활용하여 Xcode Test Plans 생성 스크립트 만들기
- [iOS] XcodeProj Gem과 Graphviz를 이용하여 프로젝트의 Framework Dependency Diagram 그리기
XcodeProj
Graphviz
View
- [SwiftUI] View - padding()
- [SwiftUI] 유용한 Extension 및 예제 코드 모음집
- [SwiftUI] View 생성시 @State 속성 값 주입하기
- [SwiftUI] View와 Interactor 간의 통신을 ObservableObject으로 우회하여 통신하기 - Delegate 패턴
- [SwiftUI][iOS] Framework에 있는 Custom Font을 등록하여 사용하기
- [SwiftUI] 가독성 측면에서 View를 어떻게 만들어야 할까? - Extension 활용
State
- [SwiftUI] Binding Proxy
- [SwiftUI] View 생성시 @State 속성 값 주입하기
- [SwiftUI] 가독성 측면에서 View를 어떻게 만들어야 할까? - Extension 활용
XCFramework
- [Swift 5.9][Xcode 15] Swift Package를 사용하지 않고 Swift의 Macros를 사용할 수 있을까? (3) - Prebuild Swift-Syntax
- [Swift 5.3+] Binary Framework(XCFramework)를 Swift Package로 배포하기(2) - iOS 프로젝트에 사용하기
- [Swift 5.3+] Binary Framework(XCFramework)를 Swift Package로 배포하기(1) - Swift Package 만들기
- [번역][WWDC][Xcode] Binary Frameworks in Swift 살짝 정리 - XCFramework
xcodebuild
- [Swift 5.3+] Binary Framework(XCFramework)를 Swift Package로 배포하기(2) - iOS 프로젝트에 사용하기
- [Swift 5.3+] Binary Framework(XCFramework)를 Swift Package로 배포하기(1) - Swift Package 만들기
- [번역][WWDC][Xcode] Binary Frameworks in Swift 살짝 정리 - XCFramework
inlinable
usableFromInline
frozen
Build Libraries for Distribution
swiftmodule
swiftinterface
Enum
Font
CTFontManagerRegisterFontsForURL
ObservedObject
ObservableObject
Published
initialize
Pad
EdgeInsets
fixedSize
some
Opaque Type
any
Text
font
minimumScaleFactor
Binding
Unit Test
createUnbounded
Buffer
toBlocking
Async
expectation
XCTestExpectation
waitForExpectations
Unit
Adapter
- [iOS][Xcode] 서드파티 라이브러리 잘 관리하기 - Static Library와 Dynamic Library의 관점 분리
- [Swift][RIBs] RIBs에 Dependency Injection Container를 적용하여 의존성 관계 해결하기
- [Swift5][RIBs] Uber의 RIBs 프로젝트에서 얻은 경험 (5) - Adapter
ViewControllable
Wrapper
Module
- [ADR][가상] 아키텍처 의사 결정 기록: Feature 모듈에서 UI 모듈 분리 결정
- [Swift][SwiftPM] Swift Package - ProcessInfo Environment 기반 빌드 환경설정
- [Swift 5.3] @_exported 속성 정리
- [Swift 5.2][SwiftPM] Swift Package Manager를 이용하여 패키지를 통합 관리하기 - Proxy Module
Cocoapods
- [Xcode][Ruby] Xcodeproj Gem을 활용하여 Xcode Test Plans 생성 스크립트 만들기
- [Swift 5.2][SwiftPM] Swift Package Manager를 이용하여 패키지를 통합 관리하기 - Proxy Module
Local Swift Package
PropertyWrapper
- [Swift 5.7+] Dependency Injection (2) - 컨테이너 무결성 보장해 보기
- [Swift 5.7+] Dependency Injection (1) - PropertyWrapper를 이용한 Service Locator 구현하기
- [Swift 5.2][BetterCodable] JSON 데이터를 Decode할 때, 키가 없는 경우 PropertyWrapper를 이용하여 빈 값을 채우기
KeyedDecodingContainer
IoC
- [Swift 5.7+] Dependency Injection (2) - 컨테이너 무결성 보장해 보기
- [Swift 5.7+] Dependency Injection (1) - PropertyWrapper를 이용한 Service Locator 구현하기
- [Swift][RIBs] RIBs에 Dependency Injection Container를 적용하여 의존성 관계 해결하기
- [iOS][Swift] 모듈간의 관계를 Dependency Injection Container으로 풀어보자
Container
- [Swift 5.7+] Dependency Injection (2) - 컨테이너 무결성 보장해 보기
- [Swift 5.7+] Dependency Injection (1) - PropertyWrapper를 이용한 Service Locator 구현하기
- [Swift][RIBs] RIBs에 Dependency Injection Container를 적용하여 의존성 관계 해결하기
- [iOS][Swift] 모듈간의 관계를 Dependency Injection Container으로 풀어보자
Circular Dependency
- [Swift 5.7+] Dependency Injection (2) - 컨테이너 무결성 보장해 보기
- [Swift 5.7+] Dependency Injection (1) - PropertyWrapper를 이용한 Service Locator 구현하기
- [Swift][RIBs] RIBs에 Dependency Injection Container를 적용하여 의존성 관계 해결하기
- [iOS][Swift] 모듈간의 관계를 Dependency Injection Container으로 풀어보자
gcc
LLVM
ar
libtool
Static Library
- [Swift][SwiftPM] Swift Package의 라이브러리를 Dynamic Framework로 만들기
- [iOS][SwiftPM][Xcode 13.2.1+] SwiftPM로 RxSwift 사용할 때 RxBlocking, RxTest를 유닛테스트에서 사용하기 - 해결편(SwiftPM)
- [iOS][SwiftPM][Xcode 13.0] SwiftPM로 RxSwift 사용할 때 RxBlocking, RxTest를 유닛테스트에서 사용하기 - 절반해결(코드복사)
- [iOS][Swift][Modular Architecture] Troubleshooting - Static Library를 모듈로 작업 후, Extension으로 코드 확장시 멤버를 찾을 수 없는 문제와 해결방법
- [LLVM] 정적 라이브러리(Static Library), 동적 라이브러리(Shared Library) 만들기
Dynamic Library
objdump
otool
memory segments
linking
object file
dynamicMemberLookup
RIB
Builder
- [iOS][Swift] Pure Dependency Injection - 레거시와 신규 모듈
- [Swift][RIBs] RIBs에 Dependency Injection Container를 적용하여 의존성 관계 해결하기
Router
Listener
Interactor
install_name_tool
RxTest
Package
- [Swift][SwiftPM] Swift Package의 라이브러리를 Dynamic Framework로 만들기
- [iOS][SwiftPM][Xcode 13.2.1+] SwiftPM로 RxSwift 사용할 때 RxBlocking, RxTest를 유닛테스트에서 사용하기 - 해결편(SwiftPM)
- [iOS][SwiftPM][Xcode 13.0] SwiftPM로 RxSwift 사용할 때 RxBlocking, RxTest를 유닛테스트에서 사용하기 - 절반해결(코드복사)
- [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로 리소스 번들링하기
Resource
Binary Framework
- [Swift 5.3+] Binary Framework(XCFramework)를 Swift Package로 배포하기(2) - iOS 프로젝트에 사용하기
- [Swift 5.3+] Binary Framework(XCFramework)를 Swift Package로 배포하기(1) - Swift Package 만들기
archive
- [Swift 5.3+] Binary Framework(XCFramework)를 Swift Package로 배포하기(2) - iOS 프로젝트에 사용하기
- [Swift 5.3+] Binary Framework(XCFramework)를 Swift Package로 배포하기(1) - Swift Package 만들기
XCConfig
- [iOS][Tuist 1.7.1] 프로젝트 생성/관리 도구 Tuist(2) - StaticFramework
- [Xcode] Xcode Build Configuration Files - XCConfig
Configuration
Workspace
XcodeGen
- [ADR][가상] 아키텍처 의사 결정 기록: Xcode 프로젝트 생성 도구 선택하기 Tuist vs XcodeGen
- [iOS][Tuist 1.7.1] 프로젝트 생성/관리 도구 Tuist(3) - Extension
- [iOS][Tuist 1.7.1] 프로젝트 생성/관리 도구 Tuist(1) - Start
Tuist
- [Tuist 4.x] Cache
- [Swift][Tuist] 파일 경로 간의 상대 경로 계산하기
- [iOS][Tuist] 프로젝트 생성/관리 도구 Tuist(10) - System Programming Interfaces (SPI)를 이용하여 모듈 의존성 접근을 제어하기
- [ADR][가상] 아키텍처 의사 결정 기록: Xcode 프로젝트 생성 도구 선택하기 Tuist vs XcodeGen
- [iOS][Tuist] 프로젝트 생성/관리 도구 Tuist(9) - Tuist 버전 고정하고 사용하기 .tuist-version
- [iOS][Xcode 13.3.1][Tuist 3.3.0] 프로젝트 생성/관리 도구 Tuist(8) - 모듈의 데모앱의 지속가능하게 유지보수되도록 검증하기 with Tuist
- [iOS][Xcode 13.3.1][Tuist 3.3.0[InjectionIII] 프로젝트 생성/관리 도구 Tuist(7) - DemoApp과 Inject의 Hot Reload를 이용해서 빠른 개발하기
- [iOS][Tuist 2.7.2] 프로젝트 생성/관리 도구 Tuist(6) - ProcessInfo Environment 기반 프로젝트 생성
- [iOS] 준 Clean Architecture With RIBs, ReactorKit 그리고 Tuist를 이용한 프로젝트 모듈화 설계(5) - Repository, Dependency Injection, Service Locator
- [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][Tuist 1.7.1] 프로젝트 생성/관리 도구 Tuist(3) - Extension
- [iOS][Tuist 1.7.1] 프로젝트 생성/관리 도구 Tuist(2) - StaticFramework
- [iOS][Tuist 1.7.1] 프로젝트 생성/관리 도구 Tuist(1) - Start
Target
- [iOS][Xcode 13.3.1][Tuist 3.3.0] 프로젝트 생성/관리 도구 Tuist(8) - 모듈의 데모앱의 지속가능하게 유지보수되도록 검증하기 with Tuist
- [iOS][Tuist 1.7.1] 프로젝트 생성/관리 도구 Tuist(2) - StaticFramework
Scheme
Static
- [iOS][Xcode] 서드파티 라이브러리 잘 관리하기 - Static Library와 Dynamic Library의 관점 분리
- [iOS][Tuist 1.7.1] 프로젝트 생성/관리 도구 Tuist(2) - StaticFramework
Dynamic
- [iOS][Xcode] 서드파티 라이브러리 잘 관리하기 - Static Library와 Dynamic Library의 관점 분리
- [iOS][Tuist 1.7.1] 프로젝트 생성/관리 도구 Tuist(2) - StaticFramework
unitTest
Swift Package
- [iOS][Tuist 1.7.1] 프로젝트 생성/관리 도구 Tuist(5) - Local Swift Package와 Proxy Swift Package
- [Swift][SwiftPM] Swift Package - ProcessInfo Environment 기반 빌드 환경설정
ProcessInfo
- [iOS][Tuist 2.7.2] 프로젝트 생성/관리 도구 Tuist(6) - ProcessInfo Environment 기반 프로젝트 생성
- [Swift][SwiftPM] Swift Package - ProcessInfo Environment 기반 빌드 환경설정
Plugin
- [iOS] WKWebView을 이용한 iOS 앱과 웹페이지 간의 통신 (3) - Plugin을 이용하여 기능 확장하기
- [iOS][Tuist 1.7.1] 프로젝트 생성/관리 도구 Tuist(4) - Plugin
Clean Architecture
- [iOS] 준 Clean Architecture With RIBs, ReactorKit 그리고 Tuist를 이용한 프로젝트 모듈화 설계(5) - Repository, Dependency Injection, Service Locator
- [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) - 설계편
ReactorKit
- [iOS] 준 Clean Architecture With RIBs, ReactorKit 그리고 Tuist를 이용한 프로젝트 모듈화 설계(5) - Repository, Dependency Injection, Service Locator
- [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) - 설계편
Linker
OTHER_LDFLAGS
UIView
- [iOS][UIKit][SwiftUI] UIKit 기반 CustomView를 Preview에서 확인할 때 sizeThatFits로 설정하여 정확한 크기로 확인하기
- [iOS][Swift] Sequence를 활용하여 UIView의 특정 superview를 찾기
- [iOS][UIKit] UIViewController의 view를 CustomView로 대체하기
loadView
Preview
- [iOS][Xcode 14.3+][UIKit][Accessibility] Preview를 이용해 UIKit 화면의 접근성 요소 확인하기
- [ADR][가상] 아키텍처 의사 결정 기록: Feature 모듈에서 UI 모듈 분리 결정
- [iOS][UIKit][SwiftUI] UIKit 기반 CustomView를 Preview에서 확인할 때 sizeThatFits로 설정하여 정확한 크기로 확인하기
- [iOS] FLEX, InjectionIII를 활용하여 View에 동적으로 데이터를 전달하기
- [iOS][Xcode 13.3.1][Tuist 3.3.0[InjectionIII] 프로젝트 생성/관리 도구 Tuist(7) - DemoApp과 Inject의 Hot Reload를 이용해서 빠른 개발하기
- [iOS][UIKit] UIViewController의 view를 CustomView로 대체하기
PreviewProvider
- [iOS][UIKit][SwiftUI] UIKit 기반 CustomView를 Preview에서 확인할 때 sizeThatFits로 설정하여 정확한 크기로 확인하기
- [iOS][UIKit] UIViewController의 view를 CustomView로 대체하기
Operator
Pipe
ForwardPipe
canImport
Preprocessor
Environment
_functionBuilder
resultBuilder
- [Swift 5.7+] Dependency Injection (2) - 컨테이너 무결성 보장해 보기
- [Swift 5.7+] Dependency Injection (1) - PropertyWrapper를 이용한 Service Locator 구현하기
- [Swift 5.4+] SE-0289 ResultBuilder
Hot Reload
- [iOS] FLEX, InjectionIII를 활용하여 View에 동적으로 데이터를 전달하기
- [iOS][Xcode 13.3.1][Tuist 3.3.0[InjectionIII] 프로젝트 생성/관리 도구 Tuist(7) - DemoApp과 Inject의 Hot Reload를 이용해서 빠른 개발하기
Inject
- [iOS] FLEX, InjectionIII를 활용하여 View에 동적으로 데이터를 전달하기
- [iOS][Xcode 13.3.1][Tuist 3.3.0[InjectionIII] 프로젝트 생성/관리 도구 Tuist(7) - DemoApp과 Inject의 Hot Reload를 이용해서 빠른 개발하기
InjectionIII
- [iOS] FLEX, InjectionIII를 활용하여 View에 동적으로 데이터를 전달하기
- [iOS][Xcode 13.3.1][Tuist 3.3.0[InjectionIII] 프로젝트 생성/관리 도구 Tuist(7) - DemoApp과 Inject의 Hot Reload를 이용해서 빠른 개발하기
legacy
Demo
UnitTest
TestPlan
TEST_HOST
BUNDLE_LOADER
Concurrency
- [Swift 5.7+][Concurrency] UIViewController의 present, dismiss 함수의 completion을 async 코드로 감싸 사용하기
- [Swift 5.9][Concurrency] Delegate 패턴을 async/await로 변환하기
- [Swift 5.7+][Concurrency] AsyncSequence, AsyncIteratorProtocol
- [Swift 5.7+][Concurrency] Continuations - Closure를 async 코드로 감싸 사용하기
- [Swift 5.7+][Concurrency] AsyncStream, AsyncThrowingStream 알아보기 - Continuation vs unfolding
- [Swift] Concurrency 링크 모음
- [Swift 5.7+][Concurrency] Class에서 Task 사용시 weak self를 사용하자
- [Swift 5.7+][Concurrency] Task의 CancelTaskBag 구현하기
Task
- [Swift 5.7+][Concurrency] UIViewController의 present, dismiss 함수의 completion을 async 코드로 감싸 사용하기
- [Swift 5.7+][Concurrency] AsyncStream, AsyncThrowingStream 알아보기 - Continuation vs unfolding
- [Swift 5.7+][Concurrency] Class에서 Task 사용시 weak self를 사용하자
- [Swift 5.7+][Concurrency] Task의 CancelTaskBag 구현하기
cancel
- [Swift 5.7+][Concurrency] AsyncStream, AsyncThrowingStream 알아보기 - Continuation vs unfolding
- [Swift 5.7+][Concurrency] Task의 CancelTaskBag 구현하기
AnyCancelTaskBag
AnyCancellableTask
Closures
Capture list
reference count
AppCode
AsyncStream
- [Swift 5.9][Concurrency] Delegate 패턴을 async/await로 변환하기
- [Swift 5.7+][Concurrency] AsyncStream, AsyncThrowingStream 알아보기 - Continuation vs unfolding
AsyncThrowingStream
unfolding
await
- [Swift 5.7+][Concurrency] UIViewController의 present, dismiss 함수의 completion을 async 코드로 감싸 사용하기
- [Swift 5.9][Concurrency] Delegate 패턴을 async/await로 변환하기
- [Swift 5.7+][Concurrency] AsyncSequence, AsyncIteratorProtocol
- [Swift 5.7+][Concurrency] Continuations - Closure를 async 코드로 감싸 사용하기
withCheckedContinuation
withCheckedThrowingContinuation
AsyncSequence
- [Swift 5.9][Concurrency] Delegate 패턴을 async/await로 변환하기
- [Swift 5.7+][Concurrency] AsyncSequence, AsyncIteratorProtocol
AsyncIteratorProtocol
- [Swift 5.9][Concurrency] Delegate 패턴을 async/await로 변환하기
- [Swift 5.7+][Concurrency] AsyncSequence, AsyncIteratorProtocol
Service Locator
- [Swift 5.7+] Dependency Injection (2) - 컨테이너 무결성 보장해 보기
- [Swift 5.7+] Dependency Injection (1) - PropertyWrapper를 이용한 Service Locator 구현하기
Generics
- [Swift 5.7+] Dependency Injection (2) - 컨테이너 무결성 보장해 보기
- [Swift 5.7+] Dependency Injection (1) - PropertyWrapper를 이용한 Service Locator 구현하기
mangle
demangle
Xcodeproj
xctestplan
present
dismiss
superview
sequence
Sequence
@_implements
FLEX
Debug
- [Swift][Xcode 15] 통합 로깅 시스템(Unified Logging System)과 Macro
- [iOS] FLEX, InjectionIII를 활용하여 View에 동적으로 데이터를 전달하기
Tool
objc_getClassList
UnsafeMutablePointer
AutoreleasingUnsafeMutablePointer
class_getName
- [Swift 5.7+][Objective-C] Dependency Injection (4) - class_getName, class_getInstanceVariable, class_getSuperclass를 사용하여 특정 타입 찾기
- [Swift 5.7+][Objective-C] Dependency Injection (3) - objc_getClassList를 사용하여 모든 클래스 목록 얻기
class_getInstanceVariable
class_getClassVariable
class_getSuperclass
intrinsicContentSize
previewLayout
sizeThatFits
CLANG_MODULES_AUTOLINK
swift-frontend
dependency_info
load
Objective-C
Objc
objc4
dyld
PRODUCT_MODULE_NAME
ADR
- [ADR][가상] 아키텍처 의사 결정 기록: Package 접근제어자 사용
- [ADR][가상] 아키텍처 의사 결정 기록: Package 접근제어자 사용
- [ADR][가상] 아키텍처 의사 결정 기록: Swift Macro 사용시 Prebuild된 SwiftSyntax.xcframework 사용 결정
- [ADR][가상] 아키텍처 의사 결정 기록: 수많은 모듈의 Unit Test의 Host Application을 None으로 설정 결정
- [ADR][가상] 아키텍처 의사 결정 기록: 수많은 데모앱의 Bundle Identifier 관리 결정
- [ADR][가상] 아키텍처 의사 결정 기록: 인터페이스 모듈 생성 및 IoC 컨테이너를 통한 의존성 순환 문제 해결
- [ADR][가상] 아키텍처 의사 결정 기록: 서드파티 라이브러리 관리 모듈 생성 결정
- [ADR][가상] 아키텍처 의사 결정 기록: UI 모듈에서 Combine 사용
- [ADR][가상] 아키텍처 의사 결정 기록: 리소스 관리 모듈 생성 및 사용 결정
- [ADR][가상] 아키텍처 의사 결정 기록: FlexLayout 기반 UI 작성 결정
- [ADR][가상] 아키텍처 의사 결정 기록: Feature 모듈에서 UI 모듈 분리 결정
- [ADR][가상] 아키텍처 의사 결정 기록: R.swift를 이용한 리소스 관리 결정
- [ADR][가상] 아키텍처 의사 결정 기록: 코드 품질과 일관성을 위한 SwiftLint 채택
- [ADR][가상] 아키텍처 의사 결정 기록: iOS 애플리케이션 아키텍처 채택하기
- [ADR][가상] 아키텍처 의사 결정 기록: Xcode 프로젝트 생성 도구 선택하기 Tuist vs XcodeGen
MVC
UI
Feature
Combine
SPI
spi
Macros
- [Swift 5.9][Xcode 15] Swift Package를 사용하지 않고 Swift의 Macros를 사용할 수 있을까? (3) - Prebuild Swift-Syntax
- [Swift 5.9][Xcode 15] Swift Package를 사용하지 않고 Swift의 Macros를 사용할 수 있을까? (2) - Prebuild Macro
- [Swift 5.9][Xcode 15] Swift Package를 사용하지 않고 Swift의 Macros를 사용할 수 있을까? (1) - Why
- [Swift 5.9+][Macros][리팩토링] Codable 이전 시대의 Response 코드를 Macros를 이용하여 정리하기
- [Swift 5.9+][Macros] Macros 개발시 디버깅 방법
SwifyJSON
Response
JSON
macOS
Virtualization
Tart
Swift-Syntax
access modifier
package
OTHER_SWIFT_FLAGS
SWIFT_PACKAGE_NAME
Logger
Log
OSLog
defer
Type-Safe
Validation
WKWebView
- [iOS] WKWebView을 이용한 iOS 앱과 웹페이지 간의 통신 (3) - Plugin을 이용하여 기능 확장하기
- [iOS] WKWebView을 이용한 iOS 앱과 웹페이지 간의 통신 (2) - Control Flow
- [iOS] WKWebView을 이용한 iOS 앱과 웹페이지 간의 통신 (1) - WKWebView과 Javasciprt Bridge
Javascript
- [iOS] WKWebView을 이용한 iOS 앱과 웹페이지 간의 통신 (3) - Plugin을 이용하여 기능 확장하기
- [iOS] WKWebView을 이용한 iOS 앱과 웹페이지 간의 통신 (2) - Control Flow
- [iOS] WKWebView을 이용한 iOS 앱과 웹페이지 간의 통신 (1) - WKWebView과 Javasciprt Bridge
statement
- [iOS] WKWebView을 이용한 iOS 앱과 웹페이지 간의 통신 (3) - Plugin을 이용하여 기능 확장하기
- [iOS] WKWebView을 이용한 iOS 앱과 웹페이지 간의 통신 (2) - Control Flow