ios
-
[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] Frame과 BoundsiOS/iOS 2020. 11. 6. 15:47
안녕하세요 :) 오늘은 Frame과 Bounds에 대해서 알아보겠습니다! Frame 우선 개발자 문서를 한번 참고해볼게요. 쭉 읽어보니까 우선 사각형으로 frame이 그려진다는 것을 알 수 있습니다. 그리고 무조건 superview(상위 뷰) 좌표계 안에서 뷰가 그려집니다. frame의 핵심은 상위 뷰의 좌표계를 기준으로 뷰가 그려진다는 것입니다. Bounds bounds의 공식 개발자 문서는 위와 같습니다. 사각형으로 그려지는 것은 frame과 동일합니다. 하지만 여기서 중요하게 봐야 할 부분은 바로 자기 자신의 좌표계에서 뷰가 그려진다는 것입니다. 여기서 가장 중요한 것은, 스크롤 뷰가 아닌 bounds는 항상 origin이 (0,0)라는 것입니다. bounds는 자신만의 좌표계에서 그려지는 것이기 ..
-
[iOS] 앱의 상태 변화에 따른 AppDelegateiOS/iOS 2020. 11. 6. 11:15
안녕하세요 :) 오늘은 앱의 상태가 변화되면서 AppDelegate에서 어떤 메서드들이 실행되는지 알아보도록 하겠습니다. iOS의 상태 앱의 상태 변화라는 것은 화면에 나타났거나, 화면 뒤로 숨겨졌거나, 시작되었거나 종료되었거나 등을 의미합니다. iOS에서 앱이 가질 수 있는 상태는 아래와 같습니다. Not Running : 앱이 시작되지 않았거나 실행되었지만 시스템에 의해 종료된 상태 Inactive : 앱이 전면에서 실행 중이지만, 아무런 이벤트를 받지 않고 있는 상태 Active : 앱이 전면에서 실행 중이며, 이벤트를 받고 있는 상태 Background : 앱이 백그라운드에 있지만 여전히 코드가 실행되고 있는 상태 대부분의 앱은 Suspended 상태로 이행하는 도중에 일시적으로 이 상태에 진입하..
-
[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의 장단점 장점 파..
-
[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 ..