All

·🌱 SeSAC
Document Directory 각각의 앱은 모두 Sandbox화 되어 있다. 각자 고유의 바운더리를 가지고 있다는 뜻이다. 바운더리는 Container들로 이루어져 있는데 크게 Bundle Container, Data Container, iCloud Container로 이루어져 있다. 그 중에서 Documents 디렉터리는 Data Container 안에 위치해 있다. Documents 디렉터리는 삭제, 변경되어도 무방하고 사용자가 다루는 컨텐츠와 관련된 파일들만 저장한다. Realm은 기본적으로 Document 경로를 사용한다. FileManager 위에서 각자 고유한 공간을 가지고 있다고 했는데, 그 고유한 공간에 접근하기 위해 FileManager라는 클래스를 이용할 수 있다. 아래는 Docum..
·🌱 SeSAC
JSON "JSON은 형태에 불가하다." 서로 다른 플랫폼(서버, 클라 ...)사이에서 어떻게 통신할 수 있을까라는 생각에서 데이터 형식의 통일성이 필요하다는 관점이 나온다. 실제로 보여지는 데이터는 String의 집합이다. Realm Local DB 자체에서 조회 자체는 크게 속도와 성능을 걱정하지 않아도 된다. 기본적으로 데이터를 생성한 순서대로 정렬이 된다. Filter(필터) 기능 구현 다음 2가지 방식을 사용할 수 있다. Realm filter query 기반 NSPredicate 기반 (Apple) Lazy var 사용자 눈에 반드시 보이는 뷰의 경우 굳이 lazy var를 이용해서 지연 저장하는 것은 그 목적에 부합하지 않다. 오히려 코드를 해석할 때 잘못된 해석을 유도할 수 있다. UIBu..
·🌱 SeSAC
Notification.Name 기본적으로 제공되는 Notification이 많다. awakeFromNib, init 특성에 맞게 어느 것이 호출되는 것이 더 적절한지 확인해본다. SB, CB 둘 다 호출이 되는지 확인해본다. 어떤 것이 먼저 호출되는지 확인해본다. (Break Point 확인) 화면을 띄울 때 viewDidLoad()에서 Alert을 띄울 수 없다. (viewDidLoad는 화면을 띄우기 직전이라고 생각하면 됨, viewDidAppear에서 호출하기) 화면을 항상 현재 화면에서 present, push 하는 것은 아니다. 현재 window의 rootViewController에서 띄우는 경우도 많다. SnapKit Layout Method make remake update 셀 레이아웃(C..
·🌱 SeSAC
들어가며 지난주에는 Realm을 이용해서 데이터베이스를 활용하는 것을 공부했고, 그것을 이용해서 다이어리 앱을 만드는 것을 했다. 바로 이전 글에서는 사진 검색 뷰를 만든 것까지 보여줬던 것 같은데, 지금 시점에서는 어느 정도 레이아웃이 자리를 잡았다. 어떤 작업을 했는지 간단히 요약만 해보겠다. 간단히 구현한 내용 기록을 하고 나면 기록을 리스트 형태로 보여주게 되는데 처음에 했던 셀 디자인이 해놓고 보니까 너무 별로여서 바꿨다. 심플한게 최고인 것 같다. 🗣 Realm을 이용해서 CRUD 기능을 구현해보았다. 데이터베이스를 사용하면서 가장 크게 느꼈던 것은 동기화, 갱신을 잘 시켜주어야 한다는 것이었다. 동기화가 잘 되지 않으면 에러가 발생하니 주의하자. 🗣 Repository Pattern을 이용해..
·🍎 iOS & Swift
들어가며 사실 똑똑하게 사용하는 건지 아닌지 확인이 불가능하므로 모순이 있지만, 그래도 나름 코드 개선을 해보려고 노력했으니 기록을 남겨보겠다.... (고민의 흔적)... Realm을 사용하다보면 사용되는 코드가 한정적이고 거의 유사하다. 그렇기 때문에 한 곳에 모아서 사용하면 좋을 것 같다고 생각해서 Manager 파일을 하나 만들어서 사용해보기로 했다. 잘 만든 건지는 모르겠다. 그래도 확실히 기능을 사용하기는 편해졌다는 것을 느꼈다. 바로 한 번 코드를 살펴보자! 코드 살펴보기 1. 구현부 // 구현부 import UIKit import RealmSwift protocol DataBase { func read(_ object: T.Type) -> Results func write(_ object: ..
·🍎 iOS & Swift
셀을 보면 흰색 점선이 보일 것이다. 셀 안에 점선을 그려서 넣어주고 싶어 공식 문서를 찾아봤는데 있더라.. 그래서 야무지게 이용해주었다. 특별한 내용은 없다. 문서에 예제 코드가 잘 나와있어서 가져다가 적절하게 사용해주면 된다. 한 가지 포인트는 계층 구조가 다음과 같다는 것이다. Core Animation > CAShapeLayer > lineDashPattern CAShapeLayer 아래에 있는 인스턴스 프로퍼티이다. CAShapeLayer 인스턴스를 만들고 lineDashPattern에 숫자 배열을 대입해주면 입맛에 맞게 점선을 그려줄 수 있다. 기본은 nil이기 때문에 일반적으로는 실선으로 보인다. 적절하게 인스턴스를 만들었으면 우리가 그리려는 view의 하위 뷰로 넣어주면 완성이다. dash..
·🌱 SeSAC
들어가며 다이어리 앱을 만들기 시작했다. 매번 TIL만 적었었는데 개발이랑 기록을 너무 소홀히 했던 것 같아서 간단하게 개발했던 상황이나 트러블 슈팅, 기타 등등을 가볍게 기록하려고 한다. 일단 지금은 너무 졸리니까 오늘 작업한 내용을 간단하게만 기록하도록 하겠다... (원래 미리 했었어야 했는데 반성 중😵) 이번주는 Realm Local Database를 이용해서 데이터를 저장, 관리하는 방법에 대해 공부하고 있다. 그것을 이용해서 간단한 일기, 메모, 기록 애플리케이션을 만들 수 있을텐데 지금은 간단하게 미니 프로젝트로 일기(다이어리)앱을 만드는 중이다. 욕심이 약간 나서 디자인도 신경써보려고 하는데 역시나 시간이 좀 걸린다... 일단 기능 구현이 더 중요하기 때문에 UI는 그 이후에 신경써보도록 하..
·🍎 iOS & Swift
요새 다시 코드 베이스로 UI를 짜고, 프로그래밍을 하고 있다. 솝트 세미나 할 때 스토리보드를 너무 많이 봤는지 잠시 멀리 할 때가 된 것 같다는 생각을 스스로 했다... 충분히 많이 봤어...👋 사실 코드 베이스로 UI를 짤 때 항상 고민을 했던 부분은 코드가 너무 길어지고 가독성이 좋지 않다는 것이었다. 새싹 과제인 Diary 앱을 만들면서 문득 또 생각이 들어서 스타일을 좀 바꾸려고 시도해보았다. Then (Syntax Sugar Library)를 사용한다는 가정 하에 UI 짜는 스타일을 한 번 살펴보자. 1. 인스턴스 생성 시에 클로저로 속성까지 지정해주는 방법 UI 객체가 몇 개 없다면 오히려 깔끔하고 가독성도 좋은 것 같다. let blackView = UIView().then { $0.ba..
taeeekki
'분류 전체보기' 카테고리의 글 목록 (4 Page)