일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- MVVM
- Protocol
- RxCocoa
- tableView
- clean architecture
- HIG
- collectionview
- 리펙터링
- 리펙토링
- 스위프트
- swift documentation
- ios
- ribs
- SWIFT
- 리팩토링
- Clean Code
- combine
- Xcode
- map
- uiscrollview
- UITextView
- 클린 코드
- Observable
- uitableview
- swiftUI
- UICollectionView
- Refactoring
- rxswift
- Human interface guide
- 애니메이션
- Today
- Total
목록분류 전체보기 (1644)
김종권의 iOS 앱 개발 알아가기
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cLSbQa/btqTrSt832E/G1cskOhufIDXbZnvUTFKOK/img.png)
CATransaction이란? Core Animation의 한 종류 implicit transaction과 explicit transaction (run loop개념과 동일)에서 explicit transaction을 할 때 CATransaction을 run loop에 CATransaction.commit()코드 이후에 보내게 됨 CATransaction.commit()코드 전에 CATransaction 속성을 지정해주면 전환 관련 애니메이션이 지정해준대로 명시적(explicit)으로 실행 사용 방법 UINavigationController를 extension하여 사용 extension UINavigationController { func popToRoot(completion: @escaping () -..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ON7ZE/btqTfBUydiq/bfNaz9ZePunLSPhntkpEkk/img.png)
현재 지역 확인 - Locale 아래와 같이 작성하여 regionCode를 획득 Locale.current // en_KR (current) Locale.current.regionCode // Optional("KR") code 리스트 Locale.isoRegionCodes 로컬 = ["AC", "AD", ... 중략 ..., "ZM", "ZW"] 앱 점유율 상 높은 Japnan ~ China까지 코드를 알아보면, public enum CountryType: String { case korea = "KO" case japan = "JP" case USA = "USA" case UnitedKingdom = "GB" case Germany = "DE" case Chnia = "CN" } // 문자열 -> e..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/btvdur/btqS6WY3pUf/9IbPqGkncs0ZIjAGVfEXYk/img.png)
* floating 의미: "떠다니는" floating button: 떠있는 듯한 버튼 음영효과로 FloatingStyle 주는 방법 UIView에 extension으로 아래 함수 추가 extension UIView { func setFloatingStyle() { setShadow(color: .black, alpha: 0.2, xPoint: 0, yPoint: 6, blur: 10, spread: 0) } func setShadow(color: UIColor = .black, alpha: Float, xPoint: CGFloat, yPoint: CGFloat, blur: CGFloat, spread: CGFloat) { layer.shadowColor = color.cgColor layer.shado..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/M6KIp/btqS3J6vnSL/KXEJnk5c6CgrqYQK4NAvWk/img.png)
앱 아이콘에 들어갈 이미지를 assets파일에 저장 아이콘 사진을 만들어주는 사이트 위에 해당하는 모든 사이즈를 생성: makeappicon.com 이미지 아이콘을 모두 삽입: Phase별로 다른 아이콘 사용 시, app_icon_alpha, app_icon_appstore와 같이 여러개 만든다음 이미지 삽입 target -> Build Settings -> All -> "assets"검색하여 "Asset Catalog Comiler - Options" 확인 Phase 별로 아이콘 등록: "Asset Catalog App Icon Set Name"하위에 추가 Phase 별 앱 이름 변경 Build Setting의 User-defined에서 key값을 만들면, phase별로 지정이 가능하고 이것은 info..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/WkDje/btqS6Xpu026/Pg6r0W1dzOKz7LIN9QRYK0/img.gif)
화면을 탭 할 경우 초점 애니메이션 UIImageView라는 임의의 뷰를 생성하여 애니메이션이 시작 시 addSubviews 후 끝날 때 removeFromSuperview() extension UIView { func focusAnimationAt(_ point: CGPoint) { let focusView = UIImageView(image: UIImage(systemName: “포커스 사진 이름“)) focusView.center = point focusView.alpha = 0.0 view.addSubview(focusView) UIView.animate(withDuration: 0.25, delay: 0.0, options: .curveEaseInOut, animations: { focusVie..
enum처럼 .type으로 접근하여 사용할 수 있도록 구현 UIImage를 extension하여 내부에 computed property, static var로 구현 extension UIImage { static var floatingButton: UIImage { return UIImage(named: "plus")! } static var photo: UIImage { return UIImage(systemName: "photo")! } static var cameraRotate: UIImage { return UIImage(systemName: "camera.rotate")! } static var boltFill: UIImage { return UIImage(systemName: "bolt.fil..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/PEx6r/btqS1U740NF/v5EDrvnlqKjIhKauRMvVk0/img.png)
디폴트로 저장되어 있는 방향 전환 info.plist에 명시된 내용 간단하게 설정 방법: AppDelegate에서 설정 AppDelegate 우선순위가 가장 높기 때문에 info.plist의 값에 영향을 받지 않고 정해짐 func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask { return [.portrait] } 배열에 넣어주면 해당되는 옵션 추가
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/mFpEg/btqS3IMD5so/p3K50ZtqZ2RcgklfsDukek/img.gif)
버튼의 탭 효과 애니메이션 탭할때 줄어들었다가 다시 되돌아오는 애니메이셔 버튼이 눌린경우, 아래 함수 호출 extension UIView { func animateButtonTap() { UIView.animate(withDuration: 0.2) { [weak self] in self?.transform = CGAffineTransform(scaleX: 0.8, y: 0.8) } completion: { [weak self] (isFinish) in UIView.animate(withDuration: 0.2) { self?.transform = CGAffineTransform.identity } } } } 왼쪽으로 alpha=0이 되면서 사라지는 애니메이션 extension UIView { func a..