swift
-
Swift Language ) Error HandlingSwift/Swift Language 2021. 11. 23. 16:08
Error handling 은 프로그램 내 error conditions 에 대해 반응하고 recover 하는 과정이다. Swift 는 runtime 시 throwing, catching, propagating, manipulating recoverable erros 에 대해 first-class support 를 제공한다. 어떤 operations 는 실행을 완전히 마칠 수 없을 수 있고, 유용한 output 을 내지 못할 수도 있다. Optionals 는 값이 없음을 나타낼 때 사용된다. An operation 이 fail 될 때, 어떤 것이 failure 을 발생시켰는지 알면 그에 따라 반응할 수 있다. 예를 들어, disk 내에 있는 file 내 data 를 읽고 처리하는 과정에 대해 생각해보자...
-
Human Interface Guidelines - Bars - Search BarsHuman Interface Guidelines/Bars 2021. 11. 5. 03:50
Search Bars Search Bar 는 어디서나 정말 흔하게 볼 수 있는 bar 이다. Navigation bar 에 비하면 UI 측면에서 개발자가 구현할 내용들이 그렇게 많지는 않으나, 그래도 웬만하면 쓰이지 않을 수가 없는 ... 매우 중요한 bar 이니만큼 한번정도는 정독하는 것도 나쁘지 않을 것이다. Search bar 는 field 에 text 를 입력함으로써 거대한 자료 뭉터기에서 원하는 것을 찾을 수 있도록 해줍니다. Search bar 는 혼자 쓰일수도, 또는 navigation bar, content view 내에서 쓰일수도 있습니다. Navigation bar 안에서 쓰이는 경우 고정될 수 있어서, 항상 접근 가능하며 또한 유저가 아래로 스와이프해 이것을 꺼내기 전까지 쉬에 숨어있..
-
Human interface GuidelinesHuman Interface Guidelines 2021. 11. 5. 01:30
Apple 은 까다롭다. Android 와는 달리 앱 심사에서 디자인까지 적합한지 확인한 후 Confirm 해주신다고 한다. 그런 Apple 의 조건을 맞추기 위해서 Apple에서 지향하는 Design 과 관련 개발에 대해 조금은 알고있으면 좋을 듯 하여 특히 iOS app 개발 관련 article 들을 하나하나 알아보도록 하겠다. (여기 있는 자료들을 번역하고, 본인의 경험과 연관지어 최대한 객관적으로 쓸 생각이다.) https://developer.apple.com/design/human-interface-guidelines/ios/app-architecture/launching/ 아래는 Apple 의 Human Interface Guidelines 목차이고, 여기서 주로 쓰이는 항목들을 위주로 포스..
-
Combine - 1 BasicCombine 2021. 11. 3. 14:03
1. Combine Basics Combine 에서 가장 중요한건, publishers, operators, and subscribers 에요. Combine 엔 물론 다른 요소들도 있지만, 이 세개가 없으면 할 수 있는게 많이 없답니다. 먼저, 이것들의 역할부터 알아보도록 하겠습니다. 1.1 Publishers Publishers 는, 하나 또는 여러 곳으로 (to subscribers) 값들을 보낼 수 있는 타입입니다. Publishers 의 내부 로직은 거의 모든 math calculations, networking, handling user events 이지만 모든 publisher 는 아래 세가지 타입들 로 이루어진 여러개의 events 를 보낼 수 있습니다. 1. An output value ..
-
Structures And Classes (Swift)Swift/Swift Language 2021. 11. 1. 16:38
안녕하세요 ! 이번에는 Structure 과 Class 에 대해 Apple Documentation 을 번역하면서 공부할게요 . Structures and Classes Structures 와 Classes 는 많은 용도로 다양하게 쓰일 수 있는 constructs 이고, 이것들을 이용해서 program 의 code 가 구성되요. Structures 와 classes 에 properties, methods 를 정의하는 방식으로 기능을 추가할 수 있고, syntax 는 constants, variable,s functions 를 만들때와 같아요. 다른 프로그래밍 언어들과는 다르게 Swift 는 custom structures, classes 에 대해 별개의 interface 와 implementation ..
-
Quick Sort with SwiftDataStructure + Algorithm/Basic Theories 2021. 10. 21. 23:59
Quick Sort Quick Sort 는, Pivot 을 정해서 Pivot 에 따라 더 작은 값들, 더 큰 값 들을 나눈 후 나뉜 값들에 대해 다시 Pivot 을 정한 후 더 작은 값들, 더 큰 값을 나누는 행위를 반복하면서 마지막에는 정렬된 array 를 합치며 Sorting 하는 방법이에요. 예시를 통해 과정을 설명드릴게요 1.0. 8 개의 element 가 array 에 있다고 가정해볼게요. [6, 5, 3, 1, 8, 7, 2, 4] 1.1. Pivot 을 하나 정합니다. (가장 뒤에 있는 값으로 설정하겠습니다.) 4가 Pivot value 가 되었습니다 ! 1.2. array 에서 가장 앞에 있는 값 6 과 4를 비교합니다. 6 > 4 이므로, 6이 4의 뒤에 있으면 좋겠네요. 그렇게 하기 위..
-
Architecture Patterns ( MVC, MVP,MVVM ) ( with iOS, Swift)Architecture + Design Pattern 2021. 10. 21. 11:33
안녕하세요, 드디어 Architecture Patterns 에 대해 알아볼 시간입니다. 해당 글은 https://medium.com/ios-os-x-development/ios-architecture-patterns-ecba4c38de52 에 대한 번역과 함께 본인의 생각을 담아 작성하겠습니다. 먼저, 왜 architecture 에 대해 고민해야할까요 ? 가장 큰 이유는 아마도 app 이 커지면 커질수록 유지보수 하기가 어려워질 수 있기 때문일겁니다. Apple 에서는 MVC Pattern 을 Guide 로 주었지만 사실 MVC 에는 많은 문제가 있어요. (저도 경험하고 싶지 않았습니다.. 진작 architecture 에 대한 공부를 더 할걸 그랬어요..) 앞으로 3가지 pattern (출처에는 VIPE..
-
MergeSort (with Swift)DataStructure + Algorithm/Basic Theories 2021. 10. 20. 01:24
Merge Sort 큰 덩어리를 작게 나누고, 나뉘어진 것들을 sorting 한 후 합치면서 정렬하는 방법을 Merge Sort 라고 합니다. 예를 들어 10개의 elements 가 있는 경우, 해당 array 를 sorting 하려면 위에서 썼던 방법들을 사용했을 때 O(n^2), 약 100 번의 과정이 소요된다고 가정해볼게요. 만약 array 를 반으로 나눈 후 sorting, 합칠때 다시 sorting 해주면 과정이 많이 줄어들 수 있습니다. 위와 같은 방식으로 한다면 5^2 이 두번, 그리고 합치는 경우에는 모든 element 들을 한번씩 비교하고 배치해야하니 10번 으로 잡으면 (25 + 25 + 10 ) 60번 이네요. 그런데말입니다, 이러한 과정을 끝없이 (각 element 가 하나가 될 때..