deprecated/꼼꼼한 재은씨 시리즈 38

CoreData 코드 리뷰

https://github.com/lgvv/JaeEun-Experience/tree/main/Chapter07-CoreData lgvv/JaeEun-Experience Contribute to lgvv/JaeEun-Experience development by creating an account on GitHub. github.com 내 깃헙이니까 들어가서 보도록 근데 어려웠던게 개인적으로 이 파일을 활용하여 하는 것이 정말 어려웠음 뭐랄까.. 데이터 처리가 어려운 느낌이랄까? fetch 나 배열 등등 복잡하니 깃 코드 꼭 여러번 공부하기를 바란다.

이벤트 버블링과 리스폰더 체인

Event Bubbling과 Responder Chain 개념에 대해서 알아보자. 웨벵서 사용도는 HTML을 떠올려보자. 발생한 이벤트와 일치하는 이벤트 리스너가 발견되면 이 리스너에 이벤트를 전달하게 된다. 이 과정은 중첩 구조의 최하위 계층에 다다를 때까지 반복되며, 결국 중첩 계층 내에서 정의된 모든 해당 이벤트 리스너가 실행되는 결과가 만들어 집니다. 가령 body - div.pr - article.tolis - li.todo로 구성되어 있을 경우 하위 계층으로 부터 차례차례 onClick 이벤트가 역순으로 전파된다. 그 결과 중첩 과정의 일부가 onClick 이벤트 리스너를 구현하고 있을 경우 모든 이벤트 리스너가 차례대로 실행되는 현상이 발생하게 된다. 이처럼 이벤트를 자식에서 부모 계층으로 ..

[iOS] 당겨서 새로고침 (Pull To Refresh)

[iOS] 당겨서 새로고침 (Pull To Refresh) Pull to Refresh ( 당겨서 새로고침 ) 테이블 뷰 를 아래 방향으로 드래그하여 화면을 갱신하는 기능! 당겨서 새로고침 3단계 1. 테이블 뷰를 아래로 당김 : 새로고침을 한다는 메시지가 나타나기 시작한다. 2, 계속해서 당김 : 새로고침 기능을 실행하기 위한 임계점에 도달한다. 3. 릴리즈 : 손을 놓는 순간 연결된 메소드가 실행되면서 새로고침이 이루어진다 iOS 에서는 UIRefreshControl 컨트롤을 제공. 코드를 천천히 보자. 주석으로 달아둔게 더 이해하기도 쉽고 아무튼 그렇게 어려운 개념은 아니다.//// EmployeeListVCTableViewController.swift// Chapter06-HR//// Cre..

[iOS14] SQLite 적용 기본 리뷰

우선 데이터베이스 수업을 들어서 SQL문 사용에는 크게 어렵지 않았다. 수업 들으면서 FMDB나 DDL 등 이런건 왜 배우는건지, 필요가 있는건지 한창 불만이 많았었는데, 공부를 하고 보니 교수님이 다르게 보인다 ㅎ하,, (수업에서 왜 배우는지 설명이 있었으면 더 좋았겠다는 생각이....) 아무튼 SQLite 적용 기본 리뷰 보기로 하자. 우선 코드를 한번 쓱 보기 // // ViewController.swift // Chapter06-SQLite3 // // Created by Hamlit Jason on 2021/04/01. // import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDi..

[ios14] SQLite3 - Xcode12 설정 및 에러대응과 코드업

1. 프로젝트 설정 정보에서 Build Phases --> Link Binary With Libraries 클릭 2. 검색창에 sqlite3 검색 후 -> libsqlite3.tbd 선택 3. 브릿징 헤더 파일 추가 ** 주의할 점 ** - 브릿징 헤더 파일 이름 설정 시 규칙을 지켜야 한다. - 규칙 " [파일명]-Bridging-Header.h - 예시) lgvv-SQLite3-Bridging-Header.h 4. 생성한 헤더 파일을 시스템에 알려줘야 한다. - 프로젝트 설정 화면 Build Setting --> Swift Compiler --> Objective-C Header 항목을 찾아 [4번] 에서 입력한 파일의 이름을 입력해 줍니다. ** 만약 에러 발생 시 ** - 디렉터링 명을 추가해준다..

UserDefaults 코드리뷰

코드 리뷰 하는 이유 : 데이터 저장하는 것이 생각보다 한번에 와닿지 않아서 크게 버겁게 느껴짐. 내 약점이 네트워크 사용하는거랑 데이터 저장. 이렇게 2개의 영역에서 약한 모습을 보임. 이유를 생각해보니까 음,, 수업을 안들어서 치열하게 공부하지 않아서 일수도 있으나, 그보다도 네트워크를 이용하는 그런 기술들이 뭔가 뭔가 맘 속에 어렵게 느껴짐 --> 네트워크 프로그래밍 졸업전에 꼭 듣기..! 꼼꼼하게 보고 이해할 것 키로 저장하고 싱크 맞추고 // // ListViewController.swift // Chapter05-UserDefaults // // Created by Hamlit Jason on 2021/03/26. // import UIKit class ListViewController : U..

App Thinning & Slicing ( 앱 씨닝과 슬라이싱) + 튜토리얼 코드 리뷰

@2x @3x 등 앱에 모두 넣어두면 파일 크기가 커져 디바이스에 부담이 갈 수도 있다. 앱 씨닝이란 개념은 ios9부터 앱의 용량을 줄이기 위한 목적으로 만들어 졌다. 장점 : 사용자의 디바이스에 최적화 된 앱을 제공할 수 있고, 설치 및 업데이트 속도가 빠를 뿐 아니라 훨씬 적은 공간을 차지하는 결과를 가져오게 된다. 현재 공개된 앱 씨닝 관련 기술은 1. 비트코드 (bit code) 2. 온 디맨드 리소스 (on demand resource) 3. 슬라이싱 ( slicing) 슬라이싱 - 하나의 앱을 각각의 ios 기기에 최적화된 형태로 설차히여 여러 버전을 쪼개어 제공하는 것을 의미 개발자가 해야하는 것은 이미지를 사용하는 방식을 변경하는 것 뿐 이미지를 에셋 카탈로그에 등록해 놓고 사용하는 방식..

프로필 화면 구현 - 코드 리뷰

목적 : 넘 다양한 스킬이 나오는데 하나의 흐름으로 쭉 끌고가다 보니 한번 정리를 할 필요성을 느낌 여기 코드는 구현한 프로필 화면에 대해서 코드를 다시 보고 지나감. 커스텀 테이블 뷰 구성하는 부분 꼭 보기 테이블 뷰 설정시 메인 스토리보드에서 네비게이션 컨트롤러로 구현되었기 때문에 테이블 뷰도 테이블뷰 딜게랑 데소 연결해서 커스텀하게 구성해줘야한다. 테이블 뷰 구성하는 코드 꼭 보기 또한 이게 중요한 이유는 배치를 잘못하면 다르게 그림 나오고 클릭도 안되고 골아픈게 많음 . 웹 css 처럼 배치하는 느낌인데 이게 엄청 복잡해지면 어려울 것 같으나 여튼 잘 해결했음 여기 코드 쭉 읽어보면서 이해하길 바람~! // // ProfileVC.swift // MyMemory // // Created by pr..

레이블에 탭 제스쳐 등록 시 주의할 점

라이브러리에서 gesture 검색후 마음에 드는 탭 제스쳐를 레이블에 연결 레이블에 연결하면 도커바에 Gesture Recognizer 가 생기는데 이걸 액션 형식을 연결 액션을 연결하고 그 안에 코드 작성하면 레이블 탭하면 그에 상응하는 코드 수행 여기서 주의할 점! --> 뷰는 기본적으로 사용자와 상호작용 하지 않도록 설계되어 있음. 상호 작용 하는 건 UIControl 이고, 레이블은 뷰의 하위 객체라서 어트리뷰트 인스펙터 탭에서 view -> interaction 부분에 유저와 상호작용 허용을 체크해줘야 한다.