Recent posts
Ios Viewisappearing대해 알아보자 적잘한 시점에서 키보드 활성화하기
title: “iOS) viewIsAppearing 대해 알아보자 - (적잘한 시점에서 키보드 활성화하기)” categories: iOS
iOS) containerBackgroundRemovable(_:) 알아보기(feat. iPad lock screen)
아래 글에서 iOS 17부터 containerBackground(for:) modifier 를 통해서 container background 을 설정해주어야 한다고 했어요.
Ios Ios 17 Widget Error Please Adopt Containerbackground Api 해결하기
title: “iOS) iOS 17 Widget error- Please adopt containerBackground API 해결하기” categories: iOS
iOS) UIScreen.main deprecated 대체하기
UIScreen.main 이 iOS 16 에서 Deprecated 되었습니다.
iOS) DiffableDataSource 사용해서 collection view 를 업데이트해보자(개발자 문서)
개발자 문서를 참고하여 단계별로 알아보고 진행하여 보겠습니다.
iOS) UISheetPresentationController 에서 키보드를 사용해보자
text field 를 통해 키보드를 사용하게 되면 어떻게 되는지 알아보겠습니다. 우선, 결과는 WWDC21 Customize and resize sheets in UIKit 에서 등장합니다.
iOS) YPImagePicker error : Stored properties cannot be marked unavailable with @available
collection view 에서 선택된 셀에 대해서 알아보고자 할 때 indexPathsForSelectedItems 를 사용하였습니다.
iOS) YPImagePicker error : Stored properties cannot be marked unavailable with @available
Xcode 15(15A240d) 업데이트 이후 YPImagePicker 오픈소스 라이브러리에서 저장 프로퍼티가 @available 를 가지며 생기는 에러가 있었습니다.
iOS) DT_TOOLCHAIN_DIR cannot be used to evaluate LIBRARY_SEARCH_PATHS, use TOOLCHAIN_DIR instead
DT_TOOLCHAIN_DIR cannot be used to evaluate LIBRARY_SEARCH_PATHS, use TOOLCHAIN_DIR instead
iOS) MVVM + RxSwift, RxCocoa 적용
✅ RxSwift 는 mvvm 과 함께 쓰기로 유명한데 그 이유를 알아보자
iOS) 강한 순환 참조(Strong Reference Cycle)는 어떤 경우에 발생하나요?
인스턴스가 계속 사용되야 하기 때문에 메모리에 남아있어야 한다. 라는 명분을 주는 것이 Strong Reference(강한 참조)입니다. 레퍼런스 카운트가 증가될 때는 강한 참조인 경우에 해당합니다. 이 강한 참조는 별도의 식별자를 명시하지 않으면 강한 참조로 여겨집니다.
iOS) Dispatch(5) - Extension 에서의 dispatch
Reference / Value / Protocol Type 의 Extension 할 경우 dispatch 방법이 달라지기도 합니다. 알아봅시다!
Ios Widget의 기본값 설정하기 Intenthandler Getsnapshot
title: “iOS) Widget 의 기본값 설정하기(IntentHandler, getSnapshot)” categories: iOS
iOS) WidgetKit 에게 timeline 변경 알리기
아래 개발자 문서를 참고해서 timeline 이 변경되었을 때 WidgetKit 에 알리는 방법에 대해 알아보겠습니다.
BDD(Behavior-driven development)
```swift // AppDelegate.swift
BDD(Behavior-driven development)
kotest가 있다면 TDD 묻고 BDD로 가!
iOS) SnapKit 활용(Y축 중심을 기준 / 너비 대비 높이)
아래의 뷰를 만들기 위한 과정 중에서 알게된 SnapKit 사용법을 적어보자.
RxSwift) Trait(2) ControlProperty, ControlEvent
RxCocoa traits
RxSwift) Traits(1) - Driver, Signal
RxCocoa 에 있는 Traits 에 대해서 알아보자
RxSwift) error handling - catch, catchAndReturn, retry, retryWhen, materialize, dematerialize
✅ error handling - catch, catchAndReturn, retry, retryWhen, materialize, dematerialize
iOS) 잠금화면 위젯 이미지 에셋 적용기
iOS) Lock Screen Widget 만들기
iOS) 앱 내에서 Firebase 의 Dynamic Link(동적 링크) 생성하기
❓왜 앱 내에서 동적 링크를 생성할까요?
iOS) CoreData 를 사용하여 Configurable Widget 만들기 (2/3) - Widget + CoreData
1. 프로젝트 세팅 ✅ 2. Widget 만들기 공유한 데이터를 보여줄 widget 을 구현. 다크모드를 적용. CoreData 데이터 공유. 3. Configurable Widget 만들기
iOS) CoreData 를 사용하여 Configurable Widget 만들기 (3/3) - Configurable Widget
1. 프로젝트 세팅 2. Widget 만들기 ✅ 3. Configurable Widget 만들기
iOS) iPhone 14 스크린 사이즈 알아보기
How iOS Apps Adapt to the various iPhone 14 Screen Sizes
iOS) 위젯으로 앱의 특정 뷰로 이동(widgetURL)
👉 위젯을 통해 앱의 특정 뷰로 이동
SwiftUI) Marterial 이란? (Widget transparent/blur background..?)
위젯의 배경에 투명도를 부여해서 단순 불투명한 배경을 만드는 것이 아니라 아래와 같은 블러처리 같은 느낌을 구현해보고자 했습니다.
ARC(Automatic Reference Counting)란?
✅ ARC(Automatic Reference Counting)란?
WWDC22) Build a workout app for Apple Watch
WWDC22) Build a workout app for Apple Watch 세션에서 알아보는 HealthKit 에 대해서 기록해보았습니다. HealthKit 의 heart rate 를 사용하기 위한 목표를 가지고 시청한 세션입니다.
WatchOS) 애플 워치 기기로 Xcode 에서 빌드 할 때
Apple Developer Documentation
WWDC22) Build a Watch productivity app
Build a productivity app for Apple Watch - WWDC22 - Videos - Apple Developer
detent?
detent 라는 용어를 개발자 문서에서 사용하는데 멈춤쇠라고 해석하기에 조금 부족함이 있었다. 그러던 중 WWDC22 세션 “Build a productivity app for Apple Watch” 에서 듣게 되어서 발췌했다.
WWDC22) Go further with Complications in WidgetKit
Go further with Complications in WidgetKit - WWDC22 - Videos - Apple Developer
WWDC22) Go further with Complications in WidgetKit
Go further with Complications in WidgetKit - WWDC22 - Videos - Apple Developer
WWDC22) Hello Swift Charts
👉 Overview
iOS) thread-safe 와 atomic 에 대해서 설명하시오.
thread-safe : 멀티스레드 프로그래밍에서 자원에 스레드가 동시에 접근해도 문제가 생기지 않는 것을 말한다. 즉, 여러 곳에서 접근하더라도 올바른 결과를 얻게된다. atomic : 멀티스레드 프로그래밍에서 데이터의 변경 전과 후에만 자원에 접근할 수 있음을 보장하는 것이다....
iOS) Swift 에서 GCD 로 atomic 을 어떻게 구현할 수 있나요?
1️⃣ 하나의 serial queue 가 테스크를 담당하도록 함 concurrent queue 를 사용하거나 여러 개의 serial queue 를 사용하면 여러 스레드가 동시에 접근하는 경우 발생. 이를 막기 위해 근본적으로 하나의 serial queue 가 테스크를 담당. ...
WWDC22) Discover PhotoKit change history
Discover PhotoKit change history - WWDC22 - Videos - Apple Developer
iOS) mutating 키워드는 무엇일까?
클래스의 인스턴스 메소드는타입의 구조 자신의 프로퍼티 값을 수정할 때 신경 쓸 필요가 없지만, 값 타입의 구조체나 열거형 등에서는 인스턴스 메소드가 내부 프로퍼티 값을 변경할 수 없습니다.
iOS) CaseIterable 을 채택한 enum
Xcode 14 업데이트 후 KakaoSDKAuth에서 저장 프로퍼티에 @available 이 붙는 곳에 다음과 같은 에러 메시지가 등장하였습니다.
iOS) CaseIterable 을 채택한 enum
열거형에 포함된 모든 케이스에 대해서 순회하고 싶을 때가 있습니다.
WWDC22) Go further with Complications in WidgetKit
Go further with Complications in WidgetKit - WWDC22 - Videos - Apple Developer
iOS) 함수는 1급시민(First Class Citizen)
함수는 1급시민이기 때문에 상수나 변수에 참조를 할당할 수 있습니다.
iOS) @available obsoleted 와 deprecated
obsoleted
CS) OOP(Object-Oriented Programming) 4가지 특징
각 언어들이 지원하는 클래스를 통해서 OOP 를 구현할 수 있는 것이지 OOP 의 객체가 곧 클래스는 아니다.
[프로그래머스] 2021 KAKAO BLIND RECRUITMENT - 광고 삽입
https://school.programmers.co.kr/learn/courses/30/lessons/72414
Algorithm) Floyd-Warshall(플로이드-워셜) 알고리즘
플로이드 워셜(Floyd-Warshall)은 모든 지점에서 다른 모든 지점까지의 최단 경로를 모두 구해야 하는 경우 에 사용할 수 있는 알고리즘이다.
WWDC22) Complications and widgets: Reloaded
Complications and widgets: Reloaded - WWDC22 - Videos - Apple Developer
오늘도 개발자가 안 된다고 말했다(3)
✅ iOS + 안드로이드 하이브리드 앱 개발자
Objective-C) 전처리기
** 본 포스팅은 ‘프로그래밍 오브젝티브-C 2.0’ 을 읽으며 실습한 코드와 내용, 추가적으로 궁금한 내용을 정리한 글입니다.*
iOS) COW(Copy-on-Write)
OptimizationTips 문서에서 Value Type(값 타입)은 COW(Copy-on-Write) 최적화를 사용한다고 합니다.
iOS) COW(Copy-on-Write)
OptimizationTips 문서에서 Value Type(값 타입)은 COW(Copy-on-Write) 최적화를 사용한다고 합니다.
iOS) DispatchQueue에서 [weak self] 를 사용해야만 하나요?
좀 더 근본적인 질문을 던져보자.
iOS)UIView.animate(withDuration:animations:completion:) 왜 메모리릭이 발생하지 않나요?
Is it necessary to use [unowned self] in closures of UIView.animateWithDuration(…)?
Algorithm) 2022 KAKAO TECH INTERNSHIP - 두 큐 합 같게 만들기
2022 KAKAO TECH INTERNSHIP 의 두 번째 문제 “두 큐 합 같게 만들기”
Objective-C) 서브클래싱을 고려할 때
예를 들어 많은 객체들이 해당 클래스를 상속받아서 같은 뷰를 가져야 한다면 서브클래싱을 하는 것이 유용하다. 이를 통해 재사용성이 좋아진다.
Objective-C) 서브클래싱을 고려할 때
예를 들어 많은 객체들이 해당 클래스를 상속받아서 같은 뷰를 가져야 한다면 서브클래싱을 하는 것이 유용하다. 이를 통해 재사용성이 좋아진다.
iOS) Dispatch(4) - Message Dispatch
# Message Dispatch
Objective-C) 카테고리와 프로토콜
본 포스팅은 ‘프로그래밍 오브젝티브-C 2.0’ 을 읽으며 실습한 코드와 내용, 추가적으로 궁금한 내용을 정리한 글입니다.
Objective-C) nullability
카테고리를 생성했는데 다음과 같이 인터페이스 위아래로 매크로가 있었다. 무엇일까?
iOS) Dispatch(1) - Dynamic / Static Dispatch
Method Dispatch
Objective-C) 변수와 데이터 형에 대하여
** 본 포스팅은 ‘프로그래밍 오브젝티브-C 2.0’ 을 읽으며 실습한 코드와 내용, 추가적으로 궁금한 내용을 정리한 글입니다.*
WWDC22) What’s new in App Store Connect
What’s new in App Store Connect - WWDC22 - Videos - Apple Developer
iOS) dimming view 에 대해서
largestUndimmendDetentIdentifier 프로퍼티에 대해서 공부하면서 개발자 문서에 이야기하는 dimming view 의 개념에 대해서 이해해보았다.
WWDC22) What’s new in UIKit
What’s new in UIKit - WWDC22 - Videos - Apple Developer 본 글은 WWDC 를 보고, 번역 및 요약 그리고 실행해보는 스터디 프로젝트의 일환입니다.
WWDC22) What’s new in the Photos picker
What’s new in the Photos picker - WWDC22 - Videos - Apple Developer
iOS) Hello Swift Charts
WWDC22 - Hello Swift Charts
RxSwift) why
RxSwift/Why.md at main · ReactiveX/RxSwift
iOS) asnyc/await 사용하여 이미지의 thumbnail 비동기적으로 만들기
iOS 15 부터 적용이 가능한 prepareThumbnail(of:completionHandler:) 메서드를 사용해서 동기적 코드에서 background 스레드에서 비동기적으로 thumbnail image 를 만드는 것을 해보자! asnyc 로 선언된 비동기적 메서드...
WWDC22) Design protocol interfaces in Swift
**본 글은 WWDC 를 보고, 번역 및 요약 그리고 실행해보는 스터디 프로젝트의 일환입니다.*
SwiftUI) ViewBuilder
ViewBuilder
iOS) RIBs Tutorial 2
https://github.com/uber/RIBs
WWDC21) Build a research and care app, part 2: Schedule tasks
WWDC21) **Build a research and care app, part 2: Schedule tasks**
WWDC21) Build a research and care app, part 1: Setup onboarding
WWDC21) **Build a research and care app, part 1: Setup onboarding**
iOS) Instagram 스토리, 피드 공유기능 구현해보자
내용 instagram story,feed 공유기능 구현을 목표
iOS) iOS 12 Notifications Permission - Provisional 의 도입 시도와 느낀점
알림 권한 설정을 받는 방식이 iOS 12 에서 새롭게 추가되었습니다. 그 중 provisional 요청 옵션에 대해서 알아보고, 실제로 프로젝트에 도입하려했던 고민에 대해서 적어보려합니다.
swiftui) 이미지에 border 추가하기
var body: some View { Image("featuredImage1") .resizable() .scaledToFill() .cornerRadius(5) // overlay 를 통해서 border 를 추가할 수 있다. ...
iOS) Extension 이란?
익스텐션이란?
iOS) Notification Service Extension - 푸시알림에 이미지 넣기
Notification Service Extension 을 활용해서 payload 의 값을 가공하는 과정이고 개발자문서는 아래를 참고 하면 됩니다.
iOS) 인앱에서 mail 보내기 - MFMailComposeViewController
```swift if MFMailComposeViewController.canSendMail() { let mailComposeVC = MFMailComposeViewController() mailComposeVC.mailComposeDelegate = self m...
Swift) Swift API Design Guidelines
[Swift.org](https://www.swift.org/documentation/api-design-guidelines//#fundamentals)
iOS) Diffable Data Source 알아보기
👷Diffable Data Source 란?
iOS) iOS 언어설정
애플 소셜로그인의 경우에 버튼을 코드로 만들 수 있다. 이때 문구가 언어에 따라 설정된다. 앱 출시할 때 앱의 언어가 Korea 로 설정된다.
iOS) 옵셔널 타입 Any 로 업캐스팅
Xcode 에서 다음과 같은 워닝을 만났어요!
iOS) APNs(Apple Push Notification Service) - FCM Token 으로 앱에서 메시지 수신하기
아래의 게시물은 제가 이전에 작성해둔 푸시알림 APNs 설정 및 파이어베이스에 앱 추가하는 과정입니다.
git forking workflow 적용
git forking workflow 적용
iOS) NVActivityIndicatorView 라이브러리 사용해보기
서버통신하는 동안 유저가 로딩되고 있음을 보여줄 수 있도록 activity indicator 를 제공하는 라이브러리를 사용해보자.
iOS) 무한스크롤 구현하기 핸들링하기
전문용어는 아니지만 나는 다음의 효과에 대해서 무한 스크롤이라고 명명하고 글을 작성하기로 했다.
iOS) iOS 15 + UIButton.ConfigurationUpdateHandler 으로 버튼 상태 핸들링하기
iOS 15 에서 사용하는 UIButton.ConfigurationUpdateHandler 를 가지고 버튼의 상태에 따라서 대응해보도록 했다.
iOS) UITextField 글자 수 제한 구현하기
UITextField 에서 입력받을 글자 수를 제한해보자.
iOS) UIPickerView 에 고정 라벨 추가하기
```swift extension UIPickerView { func setPickerLabelsWith(labels: [String]) { let columCount = labels.count let fontSize: CGFloat = UIFo...
iOS) Share and Action Extension 사용해보기(2) - Action Extension
Creating an iOS 10 Action Extension
iOS) Share and Action Extension 사용해보기(1) - HIG 문서 읽어보기
HIG 문서 읽어보기 Action Extension 사용해보기 Share Extension 사용해보기
iOS) 탭바 테두리, 그림자 설정 및 iOS 15.0 대응
```swift let appearance = UITabBarAppearance() // set tabbar opacity appearance.configureWithOpaqueBackground()
Swift) 삼항연산자
👍 삼항연산자
iOS) PHPickerViewController iOS 14+
기존에 지원하는 UIPickerViewController 가 있었는데요! iOS 14 에서 새로운 Photo Picker 가 나왔슴다!
iOS) Protocol 생성 시 AnyObject 상속받기
Delegate 패턴을 사용하면서 Protocol 을 만들었다. 그런데 SwiftLint 에서 다음과 같이 경고가 발생했다!
iOS) Alert 창 만드는 커스텀 메서드 분석하기
다음은 제가 코드리뷰를 작성하던 도중 기록하고 싶은 내용이라서 그대로 가져왔습니다.
iOS) Xib 로 만든 커스텀뷰에서 액션 연결
Xib 로 커스텀뷰를 만들어 봤는데 액션도 연결해봅시다! 다음의 글을 읽고 보시는걸 추천해요!
iOS) Dynamic Type
Dynamic Type 이란! 쉽게 말해서 우리가 기기에서 아래와 같이 텍스트 크기 를 설정할 수 있는데요. 이 때 사용자가 지정한 텍스트 크기에 따라 동적으로 크기가 변하는 것을 말해요!
iOS) UIButton.Configuration in iOS 15
iOS 15 에서 UIButton 에 새로생긴 UIButton.Configuration 에 대해서 알아보자!
iOS) 커스텀 뷰 Xib 연결하기
두가지 방법을 통해서 커스텀 뷰 클래스를 Xib 와 연결해서 만들어보자!
iOS) UICollectionViewCell 내용에 대해 동적인 사이즈 적용시키기
동적으로 셀의 너비와 높이를 설정하는 방법에 대해서 알아보자구요!
iOS) 여러개의 view controller pop 하기
navigation view controller 에서 pop 하는 방법은 총 세가지다.
iOS) Closure 표현방법
오늘은 정렬 함수인 sorted(by:) 를 공부해보다가 생긴 궁금증을 소개해볼게여
iOS) available 알아보기
💃 available 알아보기
iOS) 다크모드 대응
내용
iOS) UIModalTransitionStyle.partialCurl 알아보기
transition style 을 골라서 해보다가 .partialCurl 를 해보았다. 그런데 다음과 같이 오류가 발생했다.
iOS) HTTP 메시지 구조를 통해 GET, POST 이해하기
🍕 HTTP 통신
iOS) Moya 에서 DELETE, PATCH 통신 사용해보기
지금까지 GET, POST 통신만 사용해보았다. DELETE 와 PATCH 도 구현해보자.
iOS) 클립보드(UIPasteboard)에 복사하기
내용 버튼을 통해서 특정 문자열을 손쉽게 클립보드에 복사하기.
iOS) Alamofire 해체쇼
따란, URLSession 을 공부하면서 Alamofire 에서는 어떻게 구현했을까? 라는 궁금증에서 시작된 라이브러리 해체쇼
iOS) URLSession 에 대해서 알아보자(2/2) - 실전
서버통신에서 가장 많이 사용하는 GET, POST 통신의 다양한 경우에 대한 코드를 작성해보겠다.
iOS) URLSession 에 대해서 알아보자(1/2) - 원리
많이들 알고있는 네트워크 오픈 라이브러리인 Alamofire 는 URLSession 으로 만들었다. URLSession 에 대해서도 알아보고 URLSession 사용법도 알아보자.
iOS) KakaoQRcode-클론코딩-FaceID-적용
애플의 Face ID 를 활용한 샘플 프로젝트와 개발자 문서를 정리해봤다.
iOS) Face ID & Touch ID - Biometrics Authentication(생체인식 인증)
😨 Face ID 를 활용한 오싹한 생체인식 인증 실험
iOS) UIImage 를 Data 로 변환해서 UserDefaults 에 저장하는 것은 부적합하다?
📌 UIImage 를 Data 로 변환하는 것은 부적합하다?
iOS) KakaoQRcode 클론코딩 - Widget(2/2)
😇 본격적으로 클론코딩을 해보자
iOS) 원하는 부분만 cornerRadius 사용하기
아래와 같이 상단만 둥근 모서리를 가진 뷰를(파란뷰) 만들고 싶었다. (하얀배경의 뷰와 파란배경의 뷰 두개로 구성)
iOS) UILabel 부분 글자 크기/폰트/색상/밑줄 설정하기
UILabel 부분 글자 크기/폰트/색상/밑줄 설정하기
iOS) 클론코딩 스터디 - 미라클론 내용 및 계획
클론코딩 스터디 - 미라클론
iOS) Swift Package Manager 를 사용해보자
💨 Swift Package Manager 를 사용해보자
iOS) Info.plist 경로 변경 시 에러 해결
프로젝트 초기 설정 때 Info.plist 를 이동하고자했는데 이때 에러가 발생했다.
iOS) Design pattern MVVM(2/2) - MVVM 실습해보기
이전 글을 읽고 오면 이해가 더 잘 될 것이다.
iOS) Design pattern MVVM(1/2) - MVC, MVVM 알아보기
🌂 Design Pattern
iOS) Notification.Name extesion 해서 사용하기
notification 이 프로젝트 내에서 퍼져있기 때문에 이름이 가끔 겹치기도 하고 내가 무슨 이름을 사용했는지 기억이 안나기도 했다.
iOS) Coordinator pattern 적용해보기 - Advanced
간단한 예제로 살펴보는 iOS Design/Architecture Pattern: Coordinator - Advanced
iOS) Coordinator pattern 적용해보기 - Basic
참고 간단한 예제로 살펴보는 iOS Design/Architecture Pattern: Coordinator - Basic [Swift] Coordinator Pattern (1/2) - 기본원리
iOS) UIView 에 transition animation 적용해보기
UIView transition animation options
iOS) 애플리케이션의 Life Cycle
App’s Life Cycle
iOS) Kakao Login 구현
👷♀️ login tutorial using Kakao iOS SDK
iOS) Modal 의 Life Cycle
📌 Modal presentation style
iOS) 원하는 영역에서만 QR코드 읽기
우리가 접하는 QR코드 리더기는 특정 영역안에서 QR코드가 읽힌다. 그 이유로 나는 많은 QR코드가 카메라에 잡히지 않도록 사용자를 유도함과 동시에 사용자가 본인의 QR코드를 입력하는 인식을 주기 위함이라고 생각이 든다. 핸드폰을 제대로 가져다 대지도 않았는데 조금이라도 카메라에 ...
iOS) QR코드와 QR코드 리더기를 만들어보자
QR코드와 리더기를 만드는 오픈 라이브러리가 있지만 자체 라이브러리를 활용해서 만들어보기로 했다.
iOS) Custom UIPresentationController 와 UIViewControllerAnimatedTransitioning 를 사용해서 화면전환 해보자
iOS) VerticalCardSwiper 오픈라이브러리를 알아보자
iOS) 프로젝트에 SwiftLint 를 적용해보자
SwiftLint 오픈라이브러리를 프로젝트에 적용해보려고 합니다.
iOS) iOS 프로젝트 폴더링
iOS 프로젝트 폴더링
iOS) UIPresentationController 를 알아보고 App Store clone app 를 살펴보자
App Store clone 프로젝트를 뜯어보다가 다음과 같은 뷰의 presenting animation 에 대해서 알고 싶어졌다. 이것말고도 다른 애니메이션 효과들도 한번 알아보자.
iOS) VerticalCardSwiper 오픈라이브러리를 알아보자
📇 VerticalcardswiperTutorial
iOS) prepareForReuse() 사용해서 셀을 초기화해보자
우리는 셀을 재사용하면서 특정 문제점을 경험해봤을 것이다. 바로 셀이 재사용될 때 발생하는 문제점이다.
iOS) 동시성 프로그래밍과 Dispatch Queue
iOS 환경에서의 동시성 프로그래밍 지원 종류
iOS) UISearchController 의 검색 로직을 알아보자
먼저, UISearchController 에 대해서 읽어보자.
iOS) UICollectionView 로 Pinterest Layout 구현하기
이미지 크기에 따라서 동적으로 셀의 레이아웃을 설정하는 핀터레스트 레이아웃 구현해 보았다.
iOS) Moya 로 GET, POST 통신하기
Moya 의 기본을 다루는 글은 많은데 막상 다양한 경우의 get 과 post 요청에 대해서는 정보가 많지 않아서 이번 프로젝트에서 사용한 방법을 공유하고 한다. 그리고 내가 가진 궁금증에 대해서 알아가면서 진행될 포스팅이다.
iOS) Alamofire 와 Moya 에서 Image 받기
Almofire
iOS) 오픈소스 라이브러리 SkeletonView 활용
오픈소스 라이브러리 SkeletonView 을 활용한 튜토리얼
iOS) 로컬 푸시를 활용해서 custom notification 적용시키기
local push 를 통해서 custom notification interface 를 적용해보자.
iOS) 다크모드 제한시키기
다크모드를 설정해둔 경우 대응하지 못하는 경우가 많다. 다음은 다크모드를 대응하기보다 간단하게 제한시키는 방법이다.
iOS) Main.storyboard 없이 프로젝트 시작하기
협업 시 info.plist 에서 시작 스토리보드를 설정하다보니 info.plist 파일에서 충돌이 나는 것이 위험이 있다고 생각해서 코드로 시작 스토리보드를 변경하도록 해보았다.
iOS) UICollectionView 의 vertical,horizontal 유무 programmatically 구현
스토리보드에서 설정가능하지만 programmatically 하게 구현도 가능하다.
iOS) UIStatusBarManager 를 통해서 상태바에 접근하기
UIStatusBarManager
iOS) 노치에 따른 커스텀 상태바 만들기
커스텀 네비게이션바의 색과 상태바의 색 맞추기
iOS) Splash 화면에서 로그인 분기처리하기
Splash 화면 만들기
iOS) 서버통신 시 데이터모델에서 데이터부분 옵셔널 처리
서버 통신 시 success 일 경우 data 가 넘어오지만 fail 일 경우 넘어오지 않기도 하기 때문에 data 부분을 옵셔널로 선언해주어야 한다.
iOS) PanModal 오픈 라이브러리를 사용해서 모달창 만들기
오픈 라이브러리 PanModal 사용하기
iOS) Apple Login 구현
Login tutorial using Apple REST API
iOS) viewDidAppear() 에서 화면전환 코드 작성하기
UIDevice 를 extension 으로 아이폰의 기종유무를 저장하는 변수를 만든다.
iOS) 서버와 HTTP 통신을 위한 Xcode 설정
서버와 HTTP 통신을 하기 위해서 다음과 같이 info.plist 파일을 세팅해주어야한다.
iOS) 제플린에서 쉐도우 설정 및 동적으로 셀크기 설정
제플린에서 쉐도우 설정 및 동적으로 셀크기 설정
iOS) viewDidAppear() 에서 화면전환 코드 작성하기
viewDidLoad() 에서 화면전환 하면 원하는 뷰 전환이 이루어지지 않았다.
iOS) UIImageView UITapGestureRecognizer 로 액션설정하기
UIImageView UITapGestureRecognizer 로 액션설정하기
Ios Customizing The Appearance Of Notifications
z— title: “iOS) AppleDeveloper - Customizing the Appearance of Notifications” categories: iOS
iOS) AppleDeveloper - Declaring Your Actionable Notification Types
Declaring Your Actionable Notification Types - notification 을 차별화하고 notification interface 에 action buttons 더하기
iOS) AppleDeveloper - Pushing Background Updates
Pushing Background Updates to Your App - notifications 으로 background 의 앱을 깨우너가 업데이트.
iOS) masksToBounds 와 clipsToBounds 차이
masksToBounds 와 clipsToBounds 차이
iOS) APNs(Apple Push Notification Service)
서버 push 알림을 구현해보자
iOS) Core Data custom class
Core Data custom class 를 설정해보고 relationship 을 활용해서 관계형 데이터베이스화 해보자.
iOS) User Defaults vs Core Data
User Defaults vs Core Data
iOS) Date 로 날짜다루기
Date 로 날짜 다루기
iOS) Moya 사용
Moya BandAPI
iOS) Kingfisher 사용
Kingfisher
iOS) Core Data CRUD
Core Data CRUD
iOS) 스와이프해서 pop 하기
interactivePopGestureRecognizer
iOS) 스크롤에 따라서 동적으로 뷰의 높이조절
scrollViewDidScroll(_:)
iOS) UITableView cell selectedBackground
selectedBackgroundView 와 selectionStyle 을 활용해서 cell 이 선택되었을때 불필요하게 변하는 회색 배경을 없앨 수 있다.
iOS) 기본폰트 커스텀폰트로 설정
기본폰트 커스텀폰트로 설정
iOS) UIPageViewController 사용해보기
UIPageViewController
iOS) SubView 제거
SubView 제거
iOS) UITableView 당겨서 새로고침
UITableView 당겨서 새로고침
iOS) Core Data
Core Data 에 대해서
iOS) delegate 에 여러개의 컬렉션뷰를 연결하기
delegate 에 여러개의 컬렉션뷰를 연결하기
iOS) UICollectionView cell 왼쪽정렬
UICollectionView cell 왼쪽정렬
iOS) UIButton programmatically
UIButton 코드로 짜기
iOS) Cell 꾹 눌러서 미리보기 만들기
Cell 꾹 눌러서 미리보기 만들기 - context menu 만들기
iOS) convert UIColor to String
convert UIColor to String
iOS) UINavigationBar 의 large title 색 설정
navigationBar 에서 large title 의 color 를 바꾸려 하였다.
iOS) push 와 pop 시 ViewLifeCycle
push 와 pop 시 ViewLifeCycle
iOS) Realm 을 이용해서 데이터베이스 구축
Realm 을 이용해서 데이터베이스 구축
iOS) UITextField 에 입력시 키보드 위 toolbar 구현
UITextField 에 입력시 키보드 위 toolbar 구현
iOS) UITalbeViewCell SwipeAction
UITalbeViewCell SwipeAction
iOS) UITalbeView editing mode 에서 multiple selection 구현
UITalbeView editingStyle allowsMultipleSelectionDuringEditing
iOS) UITalbeView Separator 없애기
UITalbeView Separator 없애기
iOS) UITextView placeholder 효과 구현하기
UITextView placeholder 효과 구현하기
iOS) section 에 따라서 커스텀 셀 설정
section 에 따라서 커스텀 셀 설정
iOS) UIButton 눌러도 반응하지 않도록 하기
UIButton 눌러도 반응하지 않도록 하기
iOS) UITextField 가 비어있다면 UIButton 비활성화 시키기
UITextField 가 비어있다면 UIButton 비활성화 시키기
iOS) 저장하지 않고 dismiss 할 때 ActionSheet 띄우기
저장하지 않고 dismiss 할 때 ActionSheet 띄우기 UIAdaptivePresentationControllerDelegate
iOS) modal 창 뒤에 View 없애지 않기
modal 창 뒤에 View 띄우기
iOS) UIAction 을 활용한 UIButton 에 핸들러 등록
UIAction closure based UIControl
iOS) Gesture Recognizer 를 활용한 화면전환
modal 창으로 뷰컨트롤러를 present 한 경우 아래로 쓸어내리면 창이 닫힌다 하지만 .fullScreen 속성을 주게되면 dismiss 로 쓸어내려도 창이 닫히지 않는다.
iOS) 다른 스토리보드로 화면전환
다른 스토리보드로 화면전환
Swift) 탐색(1)
완전 탐색 / 이진 탐색
Swift) Sort 구현(2)
Quick / Merge Sort
Swift) inout 매개변수
inout 매개변수
Swift) Sort 구현
Bubble / Selection / Insertion Sort
Swift alogorithm(2)
배열(Array) 다루기
Swift algorithm(1)
기본 셋팅과 시작
Code Convention
Code Convention
Commit,Issue,PR
Commit,Issue,PR Commit Type
Issue 다루기
Issue 다루기
Branch
Branch
Branch rules
Branch rules
Automated kanban
Automated kanban 을 사용하여 project 생성
make github blog
🦕 make github blog github blog