본문 바로가기

모바일앱199

Day01 : Conditional Statements_If if는 Control Flow 에서 Conditional Statements(조건문)에 해당된다. 기본적으로 Boolean값을 가지고 있으며 참, 거짓에 해당하는 경우의 코드를 적어주어야 한다. 기본적인 형태는 아래와 같다. if (조건){ [참인 경우, 실행할 코드] } else { [거짓인 경우 실행할 코드] } 그리고 삼항연산자의 형태인 한줄의 코드로도 만들 수 있다. [조건에 해당하는 코드] ? [참인 경우, 실행할 코드] : [거짓인 경우 실행할 코드] 헷갈릴 수 있는 점 1. 조건에 해당하는 코드에 ==, != 2. [조건에 해당하는코드] 앞에 !가 있는지 여부 3. 조건에 해당하는 코드는 ()를 생략가능 import UIKit var isDarkMode : Bool = true //var i.. 2021. 11. 26.
iOS 에러 : UICollectionElementKindSectionHeader with identifier TodoListHeaderView 📌 iOS 빌드 에러 ⭐️ 발견날짜 21.11.22 인터넷 강의를 진행하면서 투두리스트앱을 똑같이 따라하는 중이다. 주어진 자료를 사용하는 게 아니라 주어진 자료를 혼자서 만들어보고 싶어서 스토리보드를 구성하는데 에뮬레이터를 돌리려고 보니 아래와 같은 에러가 나타났다. Thread 1: "could not dequeue a view of kind: UICollectionElementKindSectionHeader with identifier TodoListHeaderView - must register a nib or a class for the identifier or connect a prototype cell in a storyboard" 혼자 추측하기론 클래스나 셀에 주어진 identifier가 .. 2021. 11. 22.
옵셔널 복습 고급기능 4가지 // Forced unrapping // Optional binding (if let) // Optional binding2 (guard) // Nill coalescing import SwiftUI var carName: String? = "땡크" //고급기능 4가지 // Forced unrapping // Optional binding (if let) // Optional binding2 (guard) // Nill coalescing // 영어로 공부하는 이유 : 공부하다가 막히는 경우 영어로 검색하면 보다 다양한 루트를 발견가능 // Forced unrapping > 박스안에 있는 값을 꺼내서 사용할 때, 강제로 여는 것 // Optional binding (if let) > 부드.. 2021. 11. 18.
arc의 간단 개념 ARC(Auto Reference Couting) 이 ARC기법은 바로 iOS에서 메모리 관리를 해주는 핵심입니다. "왜 메모리 관리를 해주어야 할까?" 만약 쓸모없는 메모리가 너무 많아지면 앱이 느려지고 적정량을 초과하면 결국 앱이 꺼져버릴 수 있습니다. 이것은 유저를 이탈하게 만들수 있는 치명적인 것이죠. "그럼 쓸모없는 메모리는 왜 생기는걸까?" 쓸모없는 메모리는 다른 말로 표현하면 메모리가 어디선가 새고 있다는 말로도 표현가능합니다. 이렇게 메모리가 샌다는 것을 메모리 릭(메모리 누수) 현상이라고 하는데요. 이 메모리 릭 현상을 자동으로 막아주는 것이 바로 ARC입니다 ! 2021. 11. 17.
구조체와 클래스 복습 구조체와 클래스 기본적인 Basic Type의 값들을 많이 저장 할 때, 서로 관계하는 값들을 한꺼번에 관리하거나 표현하고 싶을 때 어떻게 할까? iOS강의 정보라면 강사정보, 강의 이름, 학생 수 등등 낱개 관리가 아니라 덩어리로 관리한다. 관계가 있는 여러 데이터를 묶어서 표현 Object = Data + Method Structure VS Class Structure Class Value Types Reference Types Copy Share 컴퓨터 안에 할당 되는 공간 Stack 컴퓨터 안에 할당 되는 공간 Heap 2021. 11. 16.
투두리스트앱 만들기(진행중) 1. 탭바 컨트롤러 구성하기 2. 스태틱테이블뷰로 설정페이지 구현하기 3. 테스크관리뷰 구현하기 - Tasks 탭 dataSource, delegate 를 Tasks와 링크시키기 (사전세팅이 안돼있었음) 링크방법 이전글 참고(https://h1guitar.tistory.com/80) ❗️Issue Thread 1: "could not dequeue a view of kind: UICollectionElementKindSectionHeader with identifier TodoListHeaderView - must register a nib or a class for the identifier or connect a prototype cell in a storyboard" 4. 컬렉션뷰 구현하기 5. 테.. 2021. 11. 12.
투두리스트앱 만들기(구현계획) [Any.do 스타일] 두가지 탭 존재 1. 태스크 관리탭 2. 세팅을 관리하는 탭 이번에 공부할 탭은 태스크관리탭이다. - 각 테스크들은 추가 편집 삭제가 가능함 - 추가할 때 태스크 필드로 추가하고 삭제 및 정보 업데이트는 셀에서 작업함. 각 데이터를 앱에서 어떻게 저장할 지도 공부 구현계획 데이터 저장 📌 iOS의 데이터 저장방법 - NSCoding - Property List - Serialization - Core Data - Realm (서드파티) .... →사용 사례에 따라 적절하게 사용하는 게 좋다. ⭐️많고 복잡한 데이터를 다루기에는 Core Data, Realm Core Data : 구현 난이도가 있어서 초보자들에게 어려울 수 있다. ⭐️작고 덜 복잡한 데이터를 다루기에는 NSCodin.. 2021. 11. 11.
원피스 랭킹 앱 프로젝트 Review (BountyListApp) 원피스 랭킹 앱 프로젝트 Review 전체 링크 날짜 분류 링크 2021.10.22 iOS 랭킹리스트앱 만들기 - 테이블뷰 기초개념(낮공부) 2021.10.27 iOS 원피스 현상금 랭킹앱 만들기(2) - 테이블뷰와 Segue(밤공부) 2021.10.31 iOS 원피스 현상금 랭킹앱 만들기(3) - 프로토콜작성 및 구현 2021.11.03 iOS 원피스 현상금 랭킹앱 만들기(4) - 커스텀셀만들기(밤공부) 2021.11.04 iOS 원피스 현상금 랭킹앱 만들기(5) - 디테일뷰 모달로 띄우기(아침공부)(밤공부) 2021.11.08 iOS 원피스 현상금 랭킹앱 만들기(6) - 뷰컨트롤러 간 데이터 전달하기(낮공부) 2021.11.08 iOS 원피스 현상금 랭킹앱 만들기(7) - 코드회고)(낮공부) 완성한 .. 2021. 11. 10.
원피스 현상금 랭킹앱 만들기(7) - 코드리뷰 이번에 만든 바둑선수는 항상 바둑을 둔 다음 복기를 하는 과정을 갖는다. 회고 : 스스로에 대한 배움을 하는 것이고 그것을 통해 성장하는 것 실무에서는 동료들과 코드리뷰라는 과정을 통해 회고를 한다. 왜 이렇게 작성했는지, 이렇게 작성할 경우 실무에서 문제가 생기지는 않을지 지속적으로 코드리뷰를 하다보면 그전에 자가리뷰를 하게 된다. 더보기 BountyViewController // // BountyViewController.swift // BountyList // // Created by hyeonseok on 2021/10/27. // import UIKit class BountyViewController: UIViewController, UITableViewDataSource, UITableView.. 2021. 11. 10.
원피스 현상금 랭킹앱 만들기(6) - 뷰컨트롤러 간 데이터 전달하기 데이터 넘기기 이제 해야할 것은 뷰컨트롤러간의 데이터를 넘겨주는 것을 설정하는 것이다. 우리가 만들어야 하는 것은 셀을 클릭했을 때, 전환된 화면에 그림과 이름, 현상금이 크게 보이도록 하는 것이다. 그런데 이게 각 셀을 눌렀을 때, 각각 다른 데이터가 넘어갈 수 있게 코드를 짜야한다. 스토리보드에 UI 배치 먼저 Storyboard에서 꾸밀 것들을 먼저 배치해준다. 이미지, 이름을 넣을 Label, 현상금을 넣을 Label을 넣어준다. 모두 배치하고 이제는 너무 익숙한 오토레이아웃을 설정해주자 이미지를 View에 연결하며 Top을 먼저 지정해주자. 100정도로 지정해주자. 또 View에 드래그하면서 X축에서 가운데에 위치하도록 설정 그리고 사이즈도 지정해주자. 사이즈는 이미지뷰 자체를 약간 옆에 끌어당.. 2021. 11. 8.