iOS 앱 개발 부트캠프/TIL
-
TIL 12일차iOS 앱 개발 부트캠프/TIL 2024. 9. 27. 18:02
오늘은 네비게이션 컨트롤러에 대해 공부했다. 첫 퀘스트였던 성적관리시스템을 완성시키고 싶었기 때문이다. 내가 원했던 건 처음 화면에서 학생의 이름과 아이디를 제출받고, 다음 화면에서 과목명과 점수를 입력 받으면 밑에 실시간으로 추가된 데이터들이 늘어나 나타나고 평균도 바로 보일 수 있었으면 했다.어찌됐든 네비게이션을 다루는 연습을 해야겠다 싶어서 구글링으로 예제를 찾아 따라해보기로 했다. 지금 어떻게 하는지 모르는 부분이 다른 화면에서 값을 어떻게 서로 넘겨 받는지, 그리고 어떻게하면 화면이 실시간으로 변하면서 사용자가 추가, 수정, 삭제가 됐는지 확인할 수 있는지이다.인터넷에서 찾은 예제를 따라한 모습이다. 큰 흐름은 메인 화면에서 수정 버튼을 누르면 두번째 화면인 수정 화면으로 넘어가고, 수정 화면에..
-
TIL 11일차iOS 앱 개발 부트캠프/TIL 2024. 9. 26. 17:50
오늘은 머리를 아프게 했던 성적관리 시스템은 일단 남겨두고 빠르게 할 수 있을듯한 그 다음 과제들을 먼저 하기로 했다.성적관리 시스템의 다음 문제는 다음과 같은 문제였는데 매우 간단해 보였고, 오늘 문제는 굳이 스토리보드를 이용할 필요 없이 플레이그라운드로 할 수 있어 보였다.처음부터 플레이그라운드를 쓰지 않았던 건 플레이그라운드가 뭔지 몰라서 그런 것도 있고, 입력을 받아야 한다는 문장 때문에 그렇기도 했고 앱 개발이 하고 싶어서 참여한 캠프이니 어려워도 앱 개발 비스무리한 걸 하고 싶었기 때문이었다..하지만 배운 거 없이 낯선 언어의 문법 학습과 앱 UI 구성까지 온전히 다 독학으로 하려니 너무 어렵고 이해 안되는 것 투성이라 흥미가 떨어지려 하니 쉬운 것부터 하나씩 하는 게 나을 것 같다.var w..
-
TIL 10일차iOS 앱 개발 부트캠프/TIL 2024. 9. 25. 17:55
struct Student{ let studentName : String let studentId : String}class StudentManager { var studentList : [Student] = [] var studentDictionary : [String : String] = [:] var subjectName : Set = [] var grade : [String : [Int]] = [:] //과목 이름을 키로 하고, 밸류인 성적을 배열로 저장하는 딕셔너리 func printStudents() { print("\n--- 학생 ID와 이름 ---") for (id, name) in studentDictionary { ..
-
TIL 9일차 - 성적 관리 시스템2iOS 앱 개발 부트캠프/TIL 2024. 9. 24. 20:23
어제에 이어 성적 관리 시스템을 마저 프로그래밍 했다.어제 구조체를 쓰긴 했는데 여러 함수들을 구조체 밖에다 만든 것이 마음에 안들었다. 구조체는 특정 기능과 관련된 변수나 함수들을 한데 모아 관리할 수 있어 명확하고 변경이나 추가, 삭제가 편리한 것으로 이해하고 있기 때문이다.다음과 같이 학생들의 이름을 저장할 배열 studentList와 이름과 아이디를 저장할 딕셔너리 studentDictionary, 학생의 이름과 아이디를 입력 받아 배열과 딕셔너리에 추가할 함수 addStudent, 추가된 것을 확인할 출력 함수 printStudents를 구조체 안에 추가하였다.구조체 안에 추가하였으므로 studentList를 선언할 때 썼던 타입을 Student에서 String으로 바꾸었고, addStudent..
-
TIL 8일차 - 성적 관리 시스템 제작하기iOS 앱 개발 부트캠프/TIL 2024. 9. 23. 18:38
오늘은 사전캠프의 과제 중 하나인 성적 관리 시스템 과제를 실습하였다. 몇 가지 절차를 따라 과제를 진행해야 했는데 그중 첫번째인 학생 이름과 id를 입력받아 딕셔너리로 저장하는 과제를 풀었다.구조체를 배웠기에 이번엔 Struct를 활용해 간결하고 확장성 있는 코드를 짜보고자 했다.Student 구조체 안에 학생의 이름과 id를 받을 변수를 선언하고, 동명이인으로 인해 딕셔너리 값이 덮어씌워 질 수 있기에 이름을 따로 저장할 배열 StudentList를 선언하고 이름을 key로 id를 value로 갖는 딕셔너리 studentDictionary를 선언하였다.그 뒤에 학생을 입력받아 추가할 addStudent 함수를 만들어 입력 받은 이름과 id를 배열과 딕셔너리에 추가하고자 했는데 에러가 났다.어떤 에러인..
-
TIL 7일차 - 간단한 데이터 타입 연습iOS 앱 개발 부트캠프/TIL 2024. 9. 20. 19:12
오늘은 몇가지 과제를 해결하는 시간을 가졌다. 첫 번 째는 단순히 여러 종류의 변수를 선언하는 단순한 문제이기에 지금까지 배운 걸 토대로 출력해보고자 했는데 에러가 났다. 다른 변수 선언은 괜찮은데 Character 변수와 Any 변수를 선언하라고만 써있어서 초기값 없이 정말 선언만 했더니 우리의 swift는 바로 에러가 났다. 읽어보니 초기화를 하라기에 잘 모르겠어서 일단 초기값을 지정하고 넘어갔다. swift에선 초기화를 꼭 하지 않으면 에러가 나는듯 하다.이어서 2번 문제는 age 변수와 interesRate 변수를 더해서 출력하라는 문제였다. 이 역시 매우 단순한 문제여서 익숙한 방식대로 더한 값을 저장할 변수 plusFirst를 선언한 다음 age변수와 interesRate 변수끼리 더하여 대입..
-
TIL 6일차 - 피그마와 친해지기iOS 앱 개발 부트캠프/TIL 2024. 9. 19. 21:54
오늘은 UI/UX 레이아웃 툴인 피그마를 실습했다. 피그마를 설치하고 실습 파일을 열어보니 다음과 같은 화면이 있었다.빈공간에 단축키 T를 눌러 텍스트를 추가하고 화면 오른쪽 버튼에서 텍스트의 스타일을 추가하였다. 이 텍스트 스타일은 한 번 지정 해놓으면 여러 텍스트에 클릭 몇 번만으로 지정해 둔 폰트나 크기, 굵기 등을 언제든 가져다 쓸 수 있어 텍스트 인터페이스의 통일성을 주기 편리하고, 여러 팀원들과 같이 제작할 때도 혼란 없이 제작 할 수 있는 환경을 만들 수 있는 설정이었다. ‘Headline/Bold/26’이라고 적었는데, 스타일의 이름과 굵기, 크기를 각각 ‘/(슬래시)’를 통해 구분지었다. 컴퓨터 파일과 폴더의 하위 목록 개념과 비슷하게 ‘/’를 통해 이름의 하위에 굵기 설정, 굵기 설정 ..
-
TIL 5일차iOS 앱 개발 부트캠프/TIL 2024. 9. 13. 21:51
맥북을 수령한 관계로 첫 강의 내용부터 복습하기 시작했다.언어 설정은 swift , UI는 storyboard로 진행했고 드래그&드롭으로 Button이나 Label , Image 등을 배치시켰고 배경 색이나 content mode, 폰트 등 인스팩터에서 가능한 여러 옵션들을 만져보는 시간을 가졌다.그렇게 옵션들을 건드려본 뒤 빌드시켜 보았더니 실제 화면이 의도대로 나오지 않고 찌그러져 있었다.옆에 경고가 나와 있는 걸 뒤늦게 확인하고 검색해보니 Auto Layout 기능이 작동하지 않았고, Auto Layout이 작동하지 않은 이유는 제약 조건이 불충분해서라고 한다. 제약 조건이라는 것은 각 UI가 다른 요소들과 어떻게 상호작용 해야하는지 설정하는 것이라고 한다. 이 제약 조건이 제대로 설정되지 않아 어..