Swift
-
[iOS] Custom View 만들기 (with .xib)iOS/iOS 2020. 11. 13. 11:12
안녕하세요 :) 오늘은 Custom View를 만드는 방법에 대해 알아보겠습니다! Custom View를 만드는 방법에는 크게 두 가지가 있는데요. Xib로 View 만들기 코드로 View 만들기 오늘은 Xib로 Custom View를 만들어보겠습니다! Xib로 Custom View 만들기 프로젝트를 하나 만들어주시고 Xib 파일을 만들기 위한 View를 선택해서 파일을 만들어줄게요! 그다음엔 Xib와 연결할 Swift 파일을 생성합니다. 이렇게 만들어 놓은 Xib에 들어간 후에 위쪽 File's Owner에 방금 만든 CustomView.swift 파일을 연결해주겠습니다. 그 후에 열심히 커스텀 뷰를 만듭니다! 뚝딱뚝딱~ 저는 이런 식으로 만들고 View Controller에서 Show 버튼을 누르면 ..
-
[iOS] 앱의 상태 변화에 따른 AppDelegateiOS/iOS 2020. 11. 6. 11:15
안녕하세요 :) 오늘은 앱의 상태가 변화되면서 AppDelegate에서 어떤 메서드들이 실행되는지 알아보도록 하겠습니다. iOS의 상태 앱의 상태 변화라는 것은 화면에 나타났거나, 화면 뒤로 숨겨졌거나, 시작되었거나 종료되었거나 등을 의미합니다. iOS에서 앱이 가질 수 있는 상태는 아래와 같습니다. Not Running : 앱이 시작되지 않았거나 실행되었지만 시스템에 의해 종료된 상태 Inactive : 앱이 전면에서 실행 중이지만, 아무런 이벤트를 받지 않고 있는 상태 Active : 앱이 전면에서 실행 중이며, 이벤트를 받고 있는 상태 Background : 앱이 백그라운드에 있지만 여전히 코드가 실행되고 있는 상태 대부분의 앱은 Suspended 상태로 이행하는 도중에 일시적으로 이 상태에 진입하..
-
[iOS] "공유하기" 기능 (Share Extension)iOS/iOS 2020. 10. 30. 17:21
안녕하세요 :) 오늘은 아이폰에서 공유하기 버튼을 누르면 나오는 공유하기 기능에 대해 알아보겠습니다. 새로 시작하게 될 프로젝트에서 공유하기 기능이 필요해서 잠깐 공부해봤어요! 시작하기 자 먼저 프로젝트를 하나 생성해주세요. 그리고 File-New-Target에 들어가 줍니다. 그 후에 Share Extension을 추가해줍니다. 스키마 이름도 지정해주시고, Activate 해주세요! 그 후에 프로젝트 상단의 스키마를 방금 추가해준 익스텐션으로 바꿔주시고 빌드해보겠습니다. 빌드를 하면 이런 창이 뜨는데, 어떤 앱에서 스키마를 시작할 것인가! 어떤 앱으로 시작할 것인가!입니다. 즉, 현재 Safari로 선택되어있으니까 Safari 앱이 먼저 켜지면서 우리는 공유 버튼을 눌러볼 수 있을 겁니다. 빌드한 후에..
-
[Algorithm] BFS 연습하기Etc./Algorithm 2020. 9. 11. 17:01
안녕하세요 :) 오늘은 알고리즘 중에서 제가 제일 어려워하는 너비 우선 탐색, 간단한 문제를 BFS로 Swift로 풀어볼 거예요. 어느 알고리즘이든 DFS는 어떻게든 풀겠는데 BFS는 어렵더라고요..! 마침 내일이 카카오 코딩 테스트 날이기도 하니까! 알고리즘을 가져왔습니다. 어떤 문제에 BFS를 사용하나요? BFS는 말 그대로 너비 우선 탐색, 너비를 우선으로 탐색하는 것인데요. 너비 우선 탐색은 최단 거리를 찾아주기 때문에 최단/최소 경로를 탐색할 때 주로 사용됩니다. 보통 큐를 활용해서 많이 구현하기 때문에, 큐를 구조체로 구현할 것입니다. 대략의 구현 방법 우선 BFS에서 처음 시작할 때, 시작 노드를 큐에 삽입해줍니다. 또한, 시작 노드를 방문했다고 체크해줍니다. 그 후로부터는 아래와 같이 작동..
-
[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..
-
[iOS] FMDB를 사용한 최근 장소 검색 기능 구현iOS/EARLY BUDDY | iOS 2020. 8. 15. 23:39
안녕하세요 :) 저번 포스팅에서는 FMDB를 사용한 간단한 것들을 알아봤는데요. 얼리버디에 그대로 도입하기에는 몇 가지 이슈들이 있었습니다. 검색어를 저장할 때 중복 체크 기능이 없음 검색했던 이력이 있는 주소들은 테이블 뷰 제일 상단으로 올라오지 않음 최근 검색한 순서대로 테이블 뷰에 뜨지 않고 데이터베이스 테이블에 저장된 순서대로 뜸 위의 세 가지들이 고쳐야 할 이슈들이었습니다. 이제부터 이슈들을 차곡차곡 고쳐나가 보겠습니다! 검색어 저장 시 중복 체크 기능 제가 구현해야 하는 기능은 중복된 검색어가 들어왔을 경우에 제일 상단으로 텍스트가 올라가야 하는 것입니다. 그래서 저는 테이블에 Location과 Time을 insert 해주고, 만약 중복된 텍스트가 들어올 경우에는 Time 부분만 update ..
-
iOS의 데이터베이스 비교 (SQLite, Core Data, Realm)iOS/iOS 2020. 8. 7. 12:12
안녕하세요 :) 얼리버디 프로젝트에서 내장 데이터베이스를 사용할 일이 생겨서 찾아보던 중 iOS의 대표적인 데이터베이스에 대해 비교/정리를 하게 되었습니다! 바로 시작할게요 ~! Realm Realm이란, 오픈 소스 라이브러리로 모바일에 최적화된 데이터베이스 라이브러리입니다. (iOS와 Android를 위해 만들어졌습니다.) 데이터 컨테이너 모델을 사용하며 데이터 객체는 Realm에 객체로 저장됩니다. 즉, 객체 중심의 데이터베이스라는 것입니다. Realm은 ORM이 아닙니다. 따라서 백그라운드에서 적용되는 SQL 쿼리문을 실행하지 않습니다. ORM은 데이터를 접근하는 간단한 업무도 많은 쿼리문의 작업이 필요합니다. CPU 사이클과 디스크 시간을 소비하며 속도가 한순간에 느려질 수 있습니다. Realm은..