일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- xcode
- Tuist
- 정규표현식
- concurrency
- uikit
- IOS
- Navigation
- iOS 개발자
- swiftdata
- tuist #xcodecloud #ios #ci/cd #swiftlint #firebase
- Git
- test
- ios18
- Alamofire
- Firebase
- 모바일
- 개발
- SWIFT
- UI
- iOS 13.0+
- network
- combine
- navigationsplitview
- SWIFTUI
- github
- ObjC
- xcodecloud
- regex
- TCA
- composablearchitecture
- Today
- Total
목록iOS (20)
iOS 개발 기록
DeviceModel 체크 📄 목차 코드 func deviceModelName() -> String { // 실제 디바이스 체크 let device = UIDevice.current let selName = "_\("deviceInfo")ForKey:" let selector = NSSelectorFromString(selName) if device.responds(to: selector) { let modelName = String(describing: device.perform(selector, with: "marketing-name").takeRetainedValue()) return modelName } // 시뮬레이터 체크 if let modelName = ProcessInfo.processIn..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dSTw69/btrLvKFiKX5/YGweU4rA8HBX3k4KW5K4jK/img.png)
[개요] Notification은 현재 네이티브 앱이 구현할 수 있는 매우 강력한 기능이다. 웹 앱의 큰 단점이 Notification을 상용할 수 없는 것이라 들었고, WWDC 2022에서 애플은 웹 앱에서도 Notification을 상용할 수 있도록 개선하겠다 발표했다. 그만큼 핵심적인 기능이라는 소리가 아닐까? Notification은 크게 두 종류가 있다. - 로컬 푸쉬 : 앱으로부터 push를 앱에 띄우는 것. - 서버 푸쉬 : 서버로부터 push를 앱에 띄우는 것. 이 글은 Local Push에 관한 글이다. [권한 요청] Notification이 강력한 이유는 앱이 실행되지 않거나 백그라운드 상태에 있을 때에도 관련 정보를 전달할 수 있기 때문이다. 애플은 이 기능이 사용자와의 작용에 있어 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/NrIwN/btrHUgGrYzl/oWEC6bckig3svuSqUnkxl1/img.png)
iOS 앱의 라이프사이클 앱이 실행/종료 및 Foreground/Background 상태에 있을 때, 시스템이 발생시키는 Event에 의해 앱 상태가 전환되는 일련의 과정. iOS13 이후로는 Scene 기반의 UISceneDelegate를 지원하고 12이전에는 UIApplicationDelegate를 사용. Respond to Scene-Based Life-Cycle Events scene마다 별도의 Life-cycle event를 전달한다. scene는 실행중인 앱 UI 인스턴스를 의미한다. 각각의 Scene은 고유의 life-cycle을 가지므로 서로 다른 실행 상태일 수 있다. scene의 상태 변화는 다음과 같다. 1. 사용자나 시스템이 새로운 scene을 요청하면, UIKit이 새로운 scen..
배경 작년부터 5년 정도면 신구약 66권을 한번씩 다 쓰는 것을 목표로 교회에서 성경필사 챌린지를 진행하고 있다. 새벽예배 때 진행하는 강독 본문을 가지고 진행하며 지금까지 레위기, 바울서신, 요한복음, 욥기를 진행했고 이제 이사야를 쓰게 된다. 다 쓰게 되면 확인을 받고 새 책을 받게 되는데, 문제는 이 책을 다른 곳에 두고 와서 못쓰게 되는 경우들이 생기는 경우들이 종종 있었다. 차라리 자주 들고다니는 아이패드로 작성하는게 낫겠다 싶어 필사 앱을 검색해봤는데 마땅히 나오는게 없었다. 그래서 이번에는 아이패드용 앱 출시를 목적으로 필사 앱을 만들어보려고 한다. 필요 기능 성경 뷰 - 개역개정 애플펜슬 필사 뷰 필사한 내용 저장 기능 메모 뷰 메모한 내용 리스트 뷰 개역개정 저작권 사람들이 가장 많이 사..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/KkpjB/btrCHDmqbQ5/VaYf21edMJnuyrk7eKufw1/img.png)
[ D-day 앱 ] SwiftUI, MVVM, Realm [ Recruit 리스트 뷰 : 이름, 날짜, 요일, apply 체크 버튼 -> 날짜 순서대로 정렬 ] 이전까지 구현한 내용 : 리스트 뷰, 날짜 순서대로 정렬 터치시 웹뷰 띄우기 : WebKit 으로 Link URL 띄우는 걸로 구현 네비게이션 링크로 서브 뷰로 들어갔을 때에 탭바 안뜨게 하기 Apply 값에 따라 리스트 정렬하여 보여주기. 채용 일정 수정 및 삭제와 복구 구현 날짜 지나면 자동으로 정리 [ 오늘 구현한 내용 ] 수정한 내역 - 1. 탭에 따라 네비게이션 아이템이 변경되지 않던 것 수정 Recruit 탭을 다 구현하고 TodoList 항목을 구현하려는데 문제가 생겼다. 다른 뷰의 탭으로 바꿨는데 네비게이션 아이템이 여전히 유지되..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/vzmFi/btrBYDnEm5z/YEvzAUriZ5slLEU5QuOQJ1/img.png)
[ D-day 앱 ] SwiftUI, MVVM, Realm [ Recruit 리스트 뷰 : 이름, 날짜, 요일, apply 체크 버튼 -> 날짜 순서대로 정렬 ] 어제까지 구현한 내용 : 리스트 뷰, 날짜 순서대로 정렬 터치시 웹뷰 띄우기 : WebKit 으로 Link URL 띄우는 걸로 구현 [ 오늘 구현한 내용 ] 수정한 내역 - 1. 네비게이션 링크로 세부 뷰로 들어갔을 때에 탭바가 뜨던거 안뜨게 수정함 -> 네비게이션과 탭 뷰의 관계에 대해 다시 배움 ... 구현한 내용 - 1. Apply 체크, Apply 지원 목록 리스트 보기 Apply 텍스트를 누르면 @ObservedRealmObject로 ViewModel의 Apply 의 Bool값을 토글한다. ViewModel의 바뀐 값을 @Observe..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/HY7aT/btrBVA4zmh7/ucYPflwwnhOEZwryuBTTK1/img.png)
[ D-day List ] [ Recruit 리스트 뷰 : 이름, 날짜, 요일, apply 체크 버튼 -> 날짜 순서대로 정렬 ] 구현 완료 리스트 뷰, 날짜 순서대로 정렬 : Realm의 @ObservedResults 을 통해 DB가 변화하면 D-dayt순으로 정렬된 채용일정 View를 그린다. D-day가 3일 이하인 경우, 날에 따라 View의 색을 바꾼다. 터치시 웹뷰 띄우기 : WebKit 으로 Link URL 띄우는 걸로 구현 수정 예정 - 탭바 색깔 ... 왜 안바뀌지? 구현 예정 - Apply 체크 버튼, 날짜 지나면 자동으로 정리, 채용 일정 수정 및 삭제 , 지원한 기업과 못한 기업 리스트 보기. [ 일정 추가 : 날짜, 이름, 링크 ] 구현 완료 일정 추가 기능 : 기업 이름, 채용 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ckjhOK/btrBMFTZ4SV/baSbF1gQ8k0k1A1sisjs30/img.png)
바탕화면에 기업 채용 일정들을 메모장에 올려두고 확인하고 있는데 지저분해보인다는 느낌을 많이 받았다. 그래서 간단하게 앱으로 만들어서 채용 일정들을 등록해서 확인하는 앱을 만들어 보려고 한다. +) 덤으로 하루에 진행한 내용들을 정리할 수 있는 기능도 추가해보려고 한다. 필요 기능 채용일정 일정 추가 : 날짜, 이름, 링크 메모 리스트 뷰 : 이름, 날짜, 요일, D-day, 링크 웹뷰, 체크 -> 날짜 순서대로 정렬, 날짜 지나면 따로 정리 이미 지난 일정 뷰 삭제 Todo list 일정 추가 : 분류, 이름 일정 뷰 : 날짜 자동 기록, 분류별, 이름, 체크 -> 꾹 눌러서 다음날로 미루기 날짜별 이룬 항목 확인 삭제 확인 오후 10시, 총 평 기록하도록 알림 사용 라이브러리 combine, real..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/7yQH3/btrxB3Y4iTq/qCfkqkb99yzkFTQdS5ldAK/img.png)
API 호출을 했는데 이런 에러가 떳다. finished with error [-1200] Error Domain=NSURLErrorDomain Code=-1200 "An SSL error has occurred and a secure connection to the server cannot be made." 검색해보니 IOS10부터는 ATS(App Transport Security)가 강화되어 보안이 안전하지 않은 Https 트래픽을 비활성화 시킨다고 한다. 이거는 Info.plist에서 ATS setting을 수정함으로 해결할 수 있다. 프로젝트 파일의 Info.plist에서 Information Property List 옆의 +버튼을 눌러 App Transport Security Settings 항..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/lBPuj/btrxIMItS25/MZhgKiEW70P00EtNt55aBK/img.png)
터미널에서 CocoaPods으로 외부 라이브러리(나의 경우는 Alamofile)를 설치하려고 하니 이와 같은 에러가 떴다. [NOTE] You may have encountered a bug in the Ruby interpreter or extension libraries. Bug reports are welcome. For details: https://www.ruby-lang.org/bugreport.html [IMPORTANT] Don't forget to include the Crash Report log file under DiagnosticReports directory in bug reports. 해결방법 구글링으로 찾아보니 맥북이 ARM 기반의 애플실리콘 M1칩으로 이전하면서 아키텍쳐 차..