iOS 앱 개발 부트캠프/TIL 19

TIL 11일차

오늘은 머리를 아프게 했던 성적관리 시스템은 일단 남겨두고 빠르게 할 수 있을듯한 그 다음 과제들을 먼저 하기로 했다.성적관리 시스템의 다음 문제는 다음과 같은 문제였는데 매우 간단해 보였고, 오늘 문제는 굳이 스토리보드를 이용할 필요 없이 플레이그라운드로 할 수 있어 보였다.처음부터 플레이그라운드를 쓰지 않았던 건 플레이그라운드가 뭔지 몰라서 그런 것도 있고, 입력을 받아야 한다는 문장 때문에 그렇기도 했고 앱 개발이 하고 싶어서 참여한 캠프이니 어려워도 앱 개발 비스무리한 걸 하고 싶었기 때문이었다..하지만 배운 거 없이 낯선 언어의 문법 학습과 앱 UI 구성까지 온전히 다 독학으로 하려니 너무 어렵고 이해 안되는 것 투성이라 흥미가 떨어지려 하니 쉬운 것부터 하나씩 하는 게 나을 것 같다.var w..

TIL 9일차 - 성적 관리 시스템2

어제에 이어 성적 관리 시스템을 마저 프로그래밍 했다.어제 구조체를 쓰긴 했는데 여러 함수들을 구조체 밖에다 만든 것이 마음에 안들었다. 구조체는 특정 기능과 관련된 변수나 함수들을 한데 모아 관리할 수 있어 명확하고 변경이나 추가, 삭제가 편리한 것으로 이해하고 있기 때문이다.다음과 같이 학생들의 이름을 저장할 배열 studentList와 이름과 아이디를 저장할 딕셔너리 studentDictionary, 학생의 이름과 아이디를 입력 받아 배열과 딕셔너리에 추가할 함수 addStudent, 추가된 것을 확인할 출력 함수 printStudents를 구조체 안에 추가하였다.구조체 안에 추가하였으므로 studentList를 선언할 때 썼던 타입을 Student에서 String으로 바꾸었고, addStudent..

TIL 8일차 - 성적 관리 시스템 제작하기

오늘은 사전캠프의 과제 중 하나인 성적 관리 시스템 과제를 실습하였다. 몇 가지 절차를 따라 과제를 진행해야 했는데 그중 첫번째인 학생 이름과 id를 입력받아 딕셔너리로 저장하는 과제를 풀었다.구조체를 배웠기에 이번엔 Struct를 활용해 간결하고 확장성 있는 코드를 짜보고자 했다.Student 구조체 안에 학생의 이름과 id를 받을 변수를 선언하고, 동명이인으로 인해 딕셔너리 값이 덮어씌워 질 수 있기에 이름을 따로 저장할 배열 StudentList를 선언하고 이름을 key로 id를 value로 갖는 딕셔너리 studentDictionary를 선언하였다.그 뒤에 학생을 입력받아 추가할 addStudent 함수를 만들어 입력 받은 이름과 id를 배열과 딕셔너리에 추가하고자 했는데 에러가 났다.어떤 에러인..

TIL 7일차 - 간단한 데이터 타입 연습

오늘은 몇가지 과제를 해결하는 시간을 가졌다. 첫 번 째는 단순히 여러 종류의 변수를 선언하는 단순한 문제이기에 지금까지 배운 걸 토대로 출력해보고자 했는데 에러가 났다. 다른 변수 선언은 괜찮은데 Character 변수와 Any 변수를 선언하라고만 써있어서 초기값 없이 정말 선언만 했더니 우리의 swift는 바로 에러가 났다. 읽어보니 초기화를 하라기에 잘 모르겠어서 일단 초기값을 지정하고 넘어갔다. swift에선 초기화를 꼭 하지 않으면 에러가 나는듯 하다.이어서 2번 문제는 age 변수와 interesRate 변수를 더해서 출력하라는 문제였다. 이 역시 매우 단순한 문제여서 익숙한 방식대로 더한 값을 저장할 변수 plusFirst를 선언한 다음 age변수와 interesRate 변수끼리 더하여 대입..

TIL 6일차 - 피그마와 친해지기

오늘은 UI/UX 레이아웃 툴인 피그마를 실습했다. 피그마를 설치하고 실습 파일을 열어보니 다음과 같은 화면이 있었다.빈공간에 단축키 T를 눌러 텍스트를 추가하고 화면 오른쪽 버튼에서 텍스트의 스타일을 추가하였다. 이 텍스트 스타일은 한 번 지정 해놓으면 여러 텍스트에 클릭 몇 번만으로 지정해 둔 폰트나 크기, 굵기 등을 언제든 가져다 쓸 수 있어 텍스트 인터페이스의 통일성을 주기 편리하고, 여러 팀원들과 같이 제작할 때도 혼란 없이 제작 할 수 있는 환경을 만들 수 있는 설정이었다. ‘Headline/Bold/26’이라고 적었는데, 스타일의 이름과 굵기, 크기를 각각 ‘/(슬래시)’를 통해 구분지었다. 컴퓨터 파일과 폴더의 하위 목록 개념과 비슷하게 ‘/’를 통해 이름의 하위에 굵기 설정, 굵기 설정 ..

TIL 5일차

맥북을 수령한 관계로 첫 강의 내용부터 복습하기 시작했다.언어 설정은 swift , UI는 storyboard로 진행했고 드래그&드롭으로 Button이나 Label , Image 등을 배치시켰고 배경 색이나 content mode, 폰트 등 인스팩터에서 가능한 여러 옵션들을 만져보는 시간을 가졌다.그렇게 옵션들을 건드려본 뒤 빌드시켜 보았더니 실제 화면이 의도대로 나오지 않고 찌그러져 있었다.옆에 경고가 나와 있는 걸 뒤늦게 확인하고 검색해보니 Auto Layout 기능이 작동하지 않았고, Auto Layout이 작동하지 않은 이유는 제약 조건이 불충분해서라고 한다. 제약 조건이라는 것은 각 UI가 다른 요소들과 어떻게 상호작용 해야하는지 설정하는 것이라고 한다. 이 제약 조건이 제대로 설정되지 않아 어..

TIL 4일차 - 배열과 딕셔너리, 모델링

배열과 딕셔너리는 비슷하면서도 다르다.배열은 같은 형태의 데이터를 사용하고 인덱스로 접근하며 반복을 사용하기 쉽다.딕셔너리는 키-밸류 형태이고 키 값으로 접근하며 반복이 아닌 접근을 해서 값을 받는다.데이터 모델링데이터의 그룹, 설계하고 개발하다보면 만나는 데이터들, 회원가입의 이메일 이름 핸드폰 번호데이터의 틀을 만드는 작업인 모델링 → 의미를 부여하는 작업friendNames 라는 문자열 타입의 배열을 선언한 뒤 henry, leeo, jay라는 이름을 세 개를 넣음.int 타입의 변수 count를 초기값 0으로 선언함.Label을 만들어 IBOutlet으로 연결한 뒤 Button을 IBAction으로 연결하여 트리거 삼음버튼을 누를 때마다 count 값을 인덱스 값으로 하여 friendNames 배..

TIL 3일차

간단하게 Xcode 사용법과 swift 문법을 배웠다.아직 Mac이 없으므로 당분간 강사님의 강의자료로 최대한 학습하기로 했다.처음엔 Xcode 설치와 실행 그리고 프로젝트 생성에 대한 것이었고, 그 과정에서 swift와 objective-c의 차이, 그리고 swiftUI와 StoryBoard의 차이에 대해 배웠다.설명에 따르면 과거엔 개발 언어가 Objective-c뿐이었는데 나중에 swift가 추가 되었다고 하고, 개발 인터페이스 도 storyboard만 있다가 최근에 swiftUI가 추가 되었다고 한다.프로젝트를 생성하면 좌측부터 네비게이션, 코드에디터, 인스펙터 화면이 보였다.네비게이션과 코드에디터는 과거에 c나 java, python을 배울때 보던 화면이라 특별할게 없었는데 놀라운 건 인스펙터였..