안녕하세요. 오늘은 VoiceOverVoiceOver: App Testing Beyond The Visuals라는 wwdc영상을 간단히 한 번 알아보겠습니다. VoiceOver라는 것은 무엇일까요? 1) Screen Reader 2) 시각 장애인을 위한 것 1,2 둘 다 사실이지만 더 정확하게는 앱을 사용하는 또 다른 방법입니다. 즉, 앱을 사용하는 모두가 VoiceOver를 사용할 수 있다는 거죠. 하지만 슬프게도 VoiceOver사용자가 모든 앱들을 사용할 수 있는 것은 아닙니다. 모든 앱들이 VoiceOver를 사용하지 않기 때문이죠. 그렇다면 개발자들이 VoiceOver를 업데이트 해야하는데 과연 왜 업데이트 해야할까요? 1) VoiceOver를 사용한 테스트가 새로운 관점을 제공해줍니다. 2) ..
안녕하세요. 밀쿄입니다. 오늘은 코드로 화면 짤 때 조금 더 편하게 짜는 방법에 대해 알아보겠습니다. 코드르 화면 짤 때 화면을 미리 볼 수 없어서 많이 불편했습니다. 실제로 화면 하나를 수정하기 위해서 수정 -> 빌드를 몇 번이나 반복한 적도 있습니다..( 이건 제가 실력이 없어서 그럴지..) 그치만 XCode 11이 나오고 SwiftUI에서 사용할 수 있는 XCode의 Canvas뷰? Canvas모드?를 활용하면 조금 더 편하게 코드를 짤 수 있습니다. 이 팁을 처음본건 작년 Let's Swift였는데 그 때만 해도 캔버브뷰만 틀면 제 엑스코드가 자주 먹통이 되어버려서.. 포스팅을 안하고 있었는데요..11.4부턴 조금 덜 먹통이 되길로 남겨봅니다.. 위에서 말했듯이 SwiftUI에서 사용할 수 있는 ..
오랜 시간 기다렸던 포스팅입니다. MVC에서 MVVM으로 만들어보는 프로젝트 입니다. 중간에 이 글이 중단된다면 저는 무기한..귀차니즘에 빠진걸로.. https://milyo-codingstories.tistory.com/40 MVC(Model-View-Controller)? 안녕하세요. 밀쿄 입니다. 오늘은 미루고..미뤄왔던 포스팅을 해볼까합니다. 이 블로그 시작하며서 써야지 했던게 벌써 몇달이 흐르고 흘렀네요. 이 주제에 대해 자신이 없기도 했고 ( 지금도 없어요 지적 해주세.. milyo-codingstories.tistory.com MVC에 대한 설명은 여기 있습니다. 모자란 설명이지만 적혀있습니다. 자 그러면 시작하겠습니다. (뷰 코드가 들어가면 길어지니 생략하겠습니다.) 먼저 모델을 만들어줄껍..
안녕하세요. 밀쿄 입니다. 오늘은 우리가 무심코 지나치게 되는 UIWindow에 대해서 알아보겠습니다. 저는 코드로 화면을 짜기 때문에 사실 새 프로젝트 파일을 만들 때마다 UIWinodw를 생성해서 사용하는데 매번 지나치고 가는 것 같아서 이 기회에 정리해보고자합니다, 기본적으로 UIWindow는 뷰나 객체들에게 이벤트를 전달하는 역할을 합니다. 다시말해서 View Controller와 함께 이벤트를 처리하고 앱 운영에 필수적인 다른 많은 작업을 수행하게 되는녀석입니다.' 이러한 UIWIndow는 기본적으로 제공해줍니다. 단, 스토리보드를 사용할 때만 말이죠 참고로 이 때 AppDelegate나 SceneDelegate에 UIWindow타입의 프로퍼티가 존재해야합니다, 그래서 우리가 AppDelegat..
안녕하세요. 밀쿄 입니다. 오늘은 flatMap, compactMap에 대해서 알아보겠습니다. flatMap에 쓰임새에 대해서 한 번 보겠습니다. let language = [["C", "C++"], ["Objective-C", "Swift"], ["Java", "Kotlin"]] print(language.flatMap({ $0 })) //결과 //["C", "C++", "Objective-C", "Swift", "Java", "Kotlin"] Sequence에서 각 요소들도 Sequence일 때 Elements를 flat하게 만들어줄 때 쓰곤했었죠. 스위프트 오픈 소스를 보면 다음과 같이 구현되어있습니다. extension Sequence { public func flatMap(_ transform:..
안녕하세요. 밀쿄입니다. 오늘은 rethrows에 대해서 알아보겠습니다. rethrows에 대해 설명하기 위해서는 throws에 대해서 먼저 설명하겠습니다. 다음과 같은 코드가 있습니다. 오늘 이 코드로 우려먹을꺼지만 코드에 억지가 많습니다 참고부탁드립니다. enum EnterResult { case noWaitingLine case accept case reject } protocol WaitingLineProtocl { associatedtype WaitingLine = [String: Ticket] } struct Movie: WaitingLineProtocl { private var name: String public init(name: String) { self.name = name } func..
안녕하세요 밀쿄입니다. 오늘은 제목에서 알 수 있듯이 StackView + ScrollView의 조합에 대해서 살펴보겠습니다. 이렇게 사용하면 스택뷰의 높이에 따라서 자동으로 스크롤되는 화면을 쉽게 만들 수 있습니다. 바로 코드를 보겠습니다. let scrollView = UIScrollView() view.addSubview(scrollView) scrollView.translatesAutoresizingMaskIntoConstraints = false NSLayoutConstraint.activate([ scrollView.widthAnchor.constraint(equalTo: view.safeAreaLayoutGuide.widthAnchor), scrollView.heightAnchor.const..
안녕하세요 밀쿄입니다, 오늘은 translatesAutoresizingMaskIntoConstraints에 대해서 알아보겠습니다. 먼저 애플문서를 보기전에 이름에서 추측해봅시다. translates AutoresizingMask Into Constraints로 쪼개볼 수 있네요. 다시 말하면 AutoresizingMask를 Constraints로 번환한다? 이정도쯤 상상할 수 있겠습니다. 그럼 애플 문서를 보겠습니다, ( 애플문서는 늘 그렇듯 여기 입니다. ) View의 AutoresizingMask가 AutoLayout Constraints으로 변환되는지의 Bool값 이라고 되어 있네요. 저희 상상이 대강 맞았습니다. 그럼 대체 Autoresizing Mask가 무엇이냐가 중요하겠네요. 그럼 그 놈에 ..
- Total
- Today
- Yesterday
- AutoLayout
- 스위프트유아이
- 삨
- 콤바인
- 유니온파인드
- SEQUENCE
- ErrorHandling
- SwiftUI
- 스위프트
- programmers
- 텔큐온
- BBIK
- replaceNil
- iOSCombine
- ios
- 알고리즘
- 스유
- swift
- CombineLatest
- Apple
- 자료구조
- MVC
- combine
- Just
- UIViewControllerRepresentable
- 현업이그리운
- compactMap
- 결합연산자
- 스택뷰
- Queue
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |