전체 글
-
[iOS] "공유하기" 기능 (Share Extension)iOS/iOS 2020. 10. 30. 17:21
안녕하세요 :) 오늘은 아이폰에서 공유하기 버튼을 누르면 나오는 공유하기 기능에 대해 알아보겠습니다. 새로 시작하게 될 프로젝트에서 공유하기 기능이 필요해서 잠깐 공부해봤어요! 시작하기 자 먼저 프로젝트를 하나 생성해주세요. 그리고 File-New-Target에 들어가 줍니다. 그 후에 Share Extension을 추가해줍니다. 스키마 이름도 지정해주시고, Activate 해주세요! 그 후에 프로젝트 상단의 스키마를 방금 추가해준 익스텐션으로 바꿔주시고 빌드해보겠습니다. 빌드를 하면 이런 창이 뜨는데, 어떤 앱에서 스키마를 시작할 것인가! 어떤 앱으로 시작할 것인가!입니다. 즉, 현재 Safari로 선택되어있으니까 Safari 앱이 먼저 켜지면서 우리는 공유 버튼을 눌러볼 수 있을 겁니다. 빌드한 후에..
-
[SwiftUI] 간단하게 Widget 알아보기iOS/SwiftUI 2020. 10. 16. 14:21
안녕하세요 :) 오늘은 iOS가 14로 업데이트가 된 후 주목받게 된 Widget에 대해 알아볼게요. (iOS 14+에서만 사용할 수 있으며, SwiftUI로만 작성이 가능합니다.) 간단한 예제를 만들면서 알아보도록 하겠습니다. 프로젝트 설정 우선 프로젝트를 만들어봤습니다. 그 후에 위의 과정으로 들어가서 Widget Extension을 추가해줄게요. Next 버튼을 누르면 이름을 설정하라고 나오는데 저는 WidgetEx로 설정했습니다. scheme도 activate 눌러주세요! Widget Extension도 적용해 주었으니 프로젝트를 빌드해서 살펴보도록 할게요. 빌드해서 Edit > + 버튼 > 내 앱 찾기 를 눌러주면 하단에 방금 만든 프로젝트가 뜨는 것을 볼 수 있습니다. 아무것도 설정하지 않았기..
-
[iOS] Unit Test에 대해 간단하게 알아보자iOS/iOS 2020. 9. 25. 16:15
안녕하세요 :) 오늘은 Unit Test에 대해 간단하게 알아보겠습니다. Unit Test란? 유닛 테스트(unit test)는 컴퓨터 프로그래밍에서 소스 코드의 특정 모듈이 의도된 대로 정확하게 작동되는지 검증하는 절차입니다. 즉, 모든 함수와 메서드에 대한 테스트 케이스를 작성하는 절차를 말합니다. 유닛 테스트의 목적은 프로그램의 각 부분이 정확하게 동작하는지 확인하는 것입니다. 프로그램을 작은 단위로 쪼개서 각 단위가 정확하게 동작하는지 검사하고 문제 발생 시 정확하게 어느 부분이 잘못되었는지를 빠르게 확인할 수 있게 해 줍니다. 따라서 유닛 테스트를 하게 되면 프로그램의 안정성이 높아집니다. 위키백과에서 유닛 테스트를 위와 같이 말하고 있는데요. 저는 간단하게 "기능이 개발자의 의도에 맞게 동작하..
-
[iOS] UI 개발 시 Code Base로 개발하기iOS/iOS 2020. 9. 18. 16:18
안녕하세요 :) 오늘은 코드 기반으로 iOS UI를 개발해보려고 합니다! 취업을 준비하고 여기 저기 정보를 얻다보면 현업에서는 Storyboard를 거의 사용하지 않고 오직 Code로만 UI를 구현한다고 합니다. 왜 UI를 더 보기 쉬운 Storyboard 대신 Code로 작업하는것일까요? Storyboard의 장단점 장점 결과물에 관해 예측하기 쉽다. Inspector 창에서 속성을 확인, 설정할 수 있다. 소스코드를 하나하나 기억하지 않아도 된다. 단점 Storyboard 파일이 굉장히 무겁다. IBOutlet, IBAction 등의 연결이 끊어졌을 때 알기 힘들다. Storyboard를 소스코드로 봤을 때, 코드 리뷰가 어렵다. Conflict가 무조건 발생한다. Code Base의 장단점 장점 파..
-
[Algorithm] BFS 연습하기Etc./Algorithm 2020. 9. 11. 17:01
안녕하세요 :) 오늘은 알고리즘 중에서 제가 제일 어려워하는 너비 우선 탐색, 간단한 문제를 BFS로 Swift로 풀어볼 거예요. 어느 알고리즘이든 DFS는 어떻게든 풀겠는데 BFS는 어렵더라고요..! 마침 내일이 카카오 코딩 테스트 날이기도 하니까! 알고리즘을 가져왔습니다. 어떤 문제에 BFS를 사용하나요? BFS는 말 그대로 너비 우선 탐색, 너비를 우선으로 탐색하는 것인데요. 너비 우선 탐색은 최단 거리를 찾아주기 때문에 최단/최소 경로를 탐색할 때 주로 사용됩니다. 보통 큐를 활용해서 많이 구현하기 때문에, 큐를 구조체로 구현할 것입니다. 대략의 구현 방법 우선 BFS에서 처음 시작할 때, 시작 노드를 큐에 삽입해줍니다. 또한, 시작 노드를 방문했다고 체크해줍니다. 그 후로부터는 아래와 같이 작동..
-
[Swift] ARC 알아보기 (Auto Reference Counting)iOS/Swift 2020. 9. 4. 16:29
안녕하세요:) 오늘은 Swift의 메모리 관리 기법인 ARC에 대해 알아보겠습니다. 프로젝트를 진행하다 보니, 기능이 많고 변수들도 많아서 메모리 관리에 신경이 쓰이는 순간이 왔습니다. 그래서 Swift는 메모리 관리를 어떻게 하고 있는지 알아보도록 하겠습니다. 메모리 관리를 왜 해야 할까? 우선 본격적으로 메모리 관리에 대해 알아보기 전에, 왜 알아야 하는지부터 짚고 넘어가겠습니다. 앱의 성능을 유지하기 위해 메모리 관리와 유지는 기본입니다. 메모리 관리가 제대로 일어나지 않으면 Memory Leak, Dangling Pointer 등의 문제가 발생할 수 있습니다. Memory Leak: 사용되지 않는 데이터가 메모리 공간을 차지하고 있는 현상 Dangling Pointer: 이미 메모리 할당이 해제된..
-
[iOS] 테이블 뷰 셀 안에 컬렉션 뷰 넣기iOS/EARLY BUDDY | iOS 2020. 8. 28. 13:14
안녕하세요 :) 이번 포스팅은 얼리버디 프로젝트에서 절 힘들게 했던 가로 경로를 구현한 과정을 적어보려고 합니다. 구현할 뷰 위의 뷰를 구현할건데요. 저 뷰가 테이블 뷰 셀이에요..ㅠ 셀 안에 가로로 된 경로를 넣으려면 저는 컬렉션 뷰로 하는 게 재사용하기 편할 것 같다는 생각이 들어서 컬렉션으로 구현을 했습니다. TableViewCell 다른 뷰에서도 똑같은 셀이 사용되기 때문에 nib로 구현을 했습니다. 이런 식으로 테이블 뷰 셀을 그리고 하단에 컬렉션 뷰를 넣었습니다. CollectionViewCell 이번에는 컬렉션 뷰 셀을 살펴볼건데요. 저는 도보 부분의 셀과 교통수단 부분의 셀 두 개를 만들었어요. 위의 셀이 도보 부분 셀이고 아래 셀이 대중교통 부분 셀입니다!! UITableViewCell...
-
[iOS] Cell LifeCycle (UITableView, UICollectionView)iOS/iOS 2020. 8. 28. 02:28
안녕하세요 :) 오늘은 Cell의 LifeCycle에 대해 알아보려고 합니다. 항상 iOS 프로젝트를 하면 테이블 뷰, 컬렉션 뷰를 사용하는 것이 제일 까다롭더라고요! (저만 그런가요..) 컬렉션 뷰와 테이블 뷰 셀들의 라이프 사이클을 알아봅시다 !! UITableViewCell LifeCycle 우선 간단한 테이블 뷰를 만들어보겠습니다. 위와 같이 간단한 형태의 테이블 뷰를 만들었습니다. 그러고 나서 Cell들의 Cycle에 해당하는 Delegate, DataSource들을 구현해서 하나씩 찍어보려고 합니다. extension ViewController: UITableViewDelegate { func tableView(_ tableView: UITableView, willDisplay cell: UI..