개발일지

    [프로젝트] iOS 시간표 프로젝트 - 12

    [프로젝트] iOS 시간표 프로젝트 - 12

    벨로그에서 티스토리로 옮긴 후 첫 포스팅이다. 그동안 포스팅에 소홀했던 나를 반성한다.(항상 하는 것 같다..ㅋ) 나는 일단 시간표 프로젝트는 마무리 했고, 개발자 계정을 등록한 상태이다. 그동한 진행했던 작업을 먼저 나열한 후에 글을 써보겠다. 1. navigationController -> modal 2. 데이터 전달 방식 변경 3. 오토레이아웃 4. textField 글자 수 제한 5. 가로모드 제한 6. 다크모드 제한 7. 화면 터치 시 키보드 바 숨김 8. launchScreen 9. 컴파일 에러 수정 10. 오픈소스 라이센스 명시 11. 기타 잡다한 UI 및 오토레이아웃 수정.. 커밋 메세지를 보면서 기억을 되살려보았다. 반씩 나눠서 두 개의 글로 포스팅하면 될 듯 하다. 1. navigati..

    [프로젝트] iOS 시간표 프로젝트 - 11

    [프로젝트] iOS 시간표 프로젝트 - 11

    이번 포스팅은 시간표 정보를 어떻게 만들었는지에 대한.. 포스팅이다! 시간표 정보 굉장히 간단한 화면이지만, 동시에 가장 많은 코드를 가지고 있는 파일이다 .. 해당 화면에서 처리해야 하는 기능 강의 추가 시간표 중복 확인(이 기능때문에 머리 빠질뻔 했다.) 시간표 수정 1. 시간표 추가 이 기능은 비교적 쉽게 완성했다. 사실 처음에는 감도 안잡혔긴 한데, 내가 사용한 방법은 1. 완료 시 데이터베이스에 강의 데이터를 삽입한다. 2. 시간표 화면에서 데이터베이스를 받아온 후 배열에 추가한다. 3. 이후 시간표 화면으로 push 이런 로직으로 기능을 완성했다 ! 하지만 나에게 닥쳐올 시련은 모른채 .. 2. 시간표 중복 먼저, 이 기능을 구현하면서 든 생각이 1. 코드를 구현하기 전에 설계를 완성해야 한다..

    [프로젝트] iOS 시간표 프로젝트 - 10

    [프로젝트] iOS 시간표 프로젝트 - 10

    굉장히 오랜만에 포스트를 한다. 그동안 거의 모든 기능을 완성시켰는데, 기능에만 집중하느라 블로그 포스팅을 열심히 못했다. 어디서부터 어떻게 써야할지 .. ㅠㅠ 깃허브는 어느새 .. 꽤 빽빽해졌다 😁 올해 첫 단추를 잘 끼우고 있는 것 같아 기분이 좋다 ! 마지막 포스트에서의 문제점 tableView의 데이터는 불러와지는데, 막상 선택 시 기존 데이터가 불러와지는 문제는 문제가 있었다. 해당 문제는 tableView?.reloadData() tableView?.beginUpdates() 코드 두줄로 해결했다 😁 어느 곳에 써야할지는 매번 다르지만, 적용시켜보면서 에러를 확인하고 계속 변경해주면서 적당한 위치를 찾았다 ! 지난번 포스트에 이어서 시간표 추가, 시간표 추가 완료 버튼을 먼저 작성해보겠다. 먼..

    [프로젝트] iOS 시간표 프로젝트 - 9

    [프로젝트] iOS 시간표 프로젝트 - 9

    이번 포스팅은 저번 포스팅에 이어 한번 진행해보겠다! userDefaults를 사용하여.. 유저가 보고있는 시간표를 확인하는 기능을 만들었다. 시간표 생성 시 userDefault key-value를 설정해주고, 설정된 value를 화면 좌측 상단에 보여준다! 지금은 디자인부분은 신경쓰지 않고 기능 구현에만 신경 쓴 탓에, 많이 구리지만 ..! 또한 더하여 시간표 목록 - > 다른학기 시간표 선택을 위한 기능을 하나 더 만들었다. 이부분을 tableView로 진행했는데 실수한 부분은 이 부분에서 Restoration ID를 설정했는데 그래서 자꾸 에러가 떴다. 헷갈릴 수 있지만 Identifier에서 설정을 해야한다..! 만약 다른 시간표를 누를 시 역시 userDefaults의 value도 변경해주었다..

    [프로젝트] iOS 시간표 프로젝트 - 8

    [프로젝트] iOS 시간표 프로젝트 - 8

    오랜만에 글을 쓴다. 그동안 기능 구현에 매진한 탓에 블로그 쓸 시간이 많이 없었다. 물론 블로그를 꾸준히 쓰는게 여전히 좋다고 생각한다.. 밀린 포스팅.. 나를 반성한다.. 구현한 기능은 저번 시간에 시간표 정보에서.. 완료 버튼을 누를 시! 시간표 추가 및 데이터베이스에 저장! 을 시작하기 전에. 2주 동안 개발진행을 못한 일이 있었다. 다름 아닌 realm DB를 쿼리하는 과정에서 계속해서 생긴 오류때문에 진행하지 못했는데, 그 오류 먼저 알아보겠다. 전부터 발목을 잡은 EXC_BAD_ACCESS 에러 데이터베이스 쿼리를 하려고 하면 계속 에러가 떴다. 도저히 구글링해도 나오지 않았고.. 심지어 Realm github에 까지 문의를 했다. 해당 에러의 이유는 --> 라이브러리를 업데이트 하면서 생겼..

    [프로젝트] iOS 시간표 프로젝트 - 7

    [프로젝트] iOS 시간표 프로젝트 - 7

    이번에 소개할 내용은 .. -> 강의들을 보여주는 테이블 뷰에서 학년으로 구분해서 해당 학년 수업만 불러와지는 기능 / tableView 선택 시 해당 수업 정보 출력해주는 기능을 소개하겠다. 데이터 필터링 나는 데이터를 불러올 때 클래스에 배열 선언 후 내부 DB의 데이터를 배열에 append 해주는 방법을 사용했다. 먼저 UI를 살펴보자면 이러하다. 처음 화면엔 모든 강의 데이터들이 불러와지고, 학년 선택 시 .. 이렇게 해당 학년의 강의 데이터만 불러와지는 모습이다. 이렇게 필터링해주는 기능을 구현할 때 상당히 머리가 아팠다. 그 이유는.. realm 기능 중 필터링 기능이 동작하지 않았다.. 계속 저번에 포스팅했던 오류인 EXC_BAD_ACCESS가 출력되는 바람에 아예 방향을 바꾸느라 애먹었다...

    [프로젝트] iOS 시간표 프로젝트 - 6

    [프로젝트] iOS 시간표 프로젝트 - 6

    오늘 블로그에 쓸 추가된 기능은 --> tableView를 어떤식으로 구현했는지 설명하기 전.. 굉장히 시행착오가 많았다. 안되는 기능을 구글링해 찾아보려고 모든 페이지를 뒤져보기,, iOS 개발자들이 모여있는 오픈카톡에도 물어보고.. 굉장히 힘들었다. 가장 힘들었던 점은 주변에 iOS 개발자가 없다보니 내가 하는 방향이 맞는지를 알기가 어렵다는 것이다. 어느 기능이 구현이 되고, 그 구현된 기능이 문제가 생기지 않더라도 내가 작성한 코드가 좋은 코드인지 판단하고 싶은데,, 물론 아직 욕심이기는 하다. 모르는 것이 너무 많고, 맨땅에 헤딩 중이라고 생각중이다. 감사한 사람들도 많은 것 같다. 뭔가를 바라지 않고 자기일인냥 잘 도와주는 익명의 개발자분들, 또한 다른 파트임에도 관심있고 나보다 더 열심히 찾..

    [프로젝트] iOS 시간표 프로젝트 - 5

    [프로젝트] iOS 시간표 프로젝트 - 5

    기능 구현의 아이디어 및 학습에 의해.. 블로그 업데이트가 뜸했으나, 그동안 했던 기능 구현을 이제는 써야겠다 싶어서 글을 올린다. 같이 프로젝트를 진행하는 팀장분께 강의들의 데이터베이스를 어떤식으로 관리해야할지 감이 안와 한번 여쭤봤었다. 답변은 강의들이 저장되어있는 외부 데이터베이스를 만든 후, 사용자가 외부 데이터베이스를 받지 않았다면 내부 데이터베이스로 삽입, 데이터베이스를 가지고 있다면 그대로 앱이 실행되는 로직을 사용하면 된다고 하셔서 그에 대한 코드들 및 데이터베이스에서 데이터 관리 등 다양한 기능에 대해서 공부를 했었다. 1. JSON python으로 강의 데이터 관리. 지저분한 강의 데이터를 내가 원하는 형태 및 보기 좋게 수정하여 데이터베이스에 넣어주는 작업을 진행했다. 변경해준 이유는..

    [프로젝트] iOS 시간표 프로젝트 - 4

    [프로젝트] iOS 시간표 프로젝트 - 4

    요즘 프로젝트를 진행하다가 갑자기 헤이해진 느낌이 든다. 다시 열심히 해야겠다. 물론 저번주는 코로나 3차 후유증과.. 술병으로 인한 헤이함이지만 1일 1커밋은 놓치지 않으려고 하고 있다. 발생한 문제 - pickerView, UITextField 1. pickerView에서 발생한 문제 pickerView에서 문제가 발생했다(!!). 어떤 문제였냐면 시간표 생성화면 진입 후에 학기나 연도를 고를 때 하단에 피커뷰가 나와야 하는데 나오지 않았다. 문제는 다른 프로젝트에서 똑같은 코드를 작성하면 정상적으로 실행된다.. 구글링, 유투브 모든 서치는 다 해봤지만 답을 찾지 못했다.. 그래서 내가 대안책으로 발견한 것은 .. DropDown 이다. DropDown 내가 DropDown으로 해주고 싶은 작업은 유..

    [프로젝트] iOS 시간표 프로젝트 - 3

    [프로젝트] iOS 시간표 프로젝트 - 3

    데이터베이스(Realm) 시간표 프로젝트를 진행하는데 데이터베이스를 사용해야 하는 상황이 있다. 1. 강의 데이터(ex : 강의명, 강의실, 교수명 등) 2. 유저 데이터(ex : 연도, 학기, 시간표 이름, 유저가 저장한 시간표 데이터) 위와 같은 데이터들을 DB에서 관리해야 하기 때문에 자주 사용하는 DB인 Realm을 사용해서 구현했다. 먼저 realmSwift 라이브러리를 설치해줘야 한다. 터미널을 켜고 해당 프로젝트가 있는 폴더에서 Podfile을 만들어주기 위해 pod init을 입력한다. 다음 vi podfile을 입력해 podfile을 터미널에서 열어주고 해당 파일에 이렇게 입력해준다. 그 후 :wq를 입력해 저장 후 파일에서 나가고, pod install을 해주면 라이브러리가 설치된다. ..