Today's Quotes 어플 프로젝트 1차

  • Today’s Quotes(오늘의 명언) 어플을 만들어서 배포하기로 하였다.
  • 어플의 기능은 다음과 같다.
    1. 폰트 선택 : 위젯에서 보여줄 명언의 폰트를 설정할 수 있다.
    2. 사진 선택 : 위젯의 배경 사진을 설정할 수 있다.

      imagePicker를 사용하여 앨범과 연동하고, 앨범의 사진 또한 추가할 수 있게 할 예정이다.

    3. 명언 히스토리 : 지금까지 본 명언을 리스트로 볼 수 있다.
    4. 갱신 시간 : 새로운 명언으로 갱신할 시간을 추가할 수 있다.
    5. 사용법 : 어플의 사용법을 간단하게 스크롤 뷰로 보여준다.
    6. 라이센스 : 어플에 쓰인 라이센스를 리스트로 보여준다. +) 명언을 분류하여 데이터베이스(Realm 사용 예정)에 넣을 예정.

      사랑에 관한 명언, 돈에 관한 명언, 인생에 관한 명언 등…

Application View 설계

어플의 설계를 oven을 사용하여 대략적으로 이미지화 하였다. https://ovenapp.io/project/cRD1bRkguaFaeUONQnlX4LvbJbIhx7bZ#XMYeb

storyboard 구현

설계한 어플의 뷰를 storyboard에 구현하였다. Image

어려웠던 점, 실수한 점

  1. storyboard에서 뷰를 만들고, 코드와 연결시키는 과정에서 갑자기 navigation이 작동하지 않았다. -> tableView와 collectionView의 protocol을 전부 구현하지 않아서 발생하였다.
  2. storyboard에서의 뷰들의 배치를 처음에는 MainView -> 기능에 따른 뷰 6가지로 하였으나, 상하로 뷰가 너무 많아져서 그냥 다음과 같이 배치하였다. Image
  3. MainView에 AutoLayout을 적용하였는데, 3x2형태의 Grid를 적용시키고 싶었다. -> 코드와 적절히 섞어서 해결하는 방법을 찾았다.
  1. 데이터베이스에 데이터를 넣기 전 임시로 Kingfisher 라이브러리를 이용하여 이미지를 넣어놓았는데, 이미지가 나타나지 않았다. -> Info.plist의 다음의 코드를 추가하니 해결되었다.
<key>NSAppTransportSecurity</key>
  <dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
  </dict>
  1. UIImagePicker로 앨범에서 이미지를 선택하면, 선택한 이미지가 collectionView Cell의 UIImageView에 반영되도록 해야하는데, 전역변수로 설정하니 문제가 발생하였다.

    이미지가 모두 한 이미지로만 생성됨 추가 버튼 클릭 -> 앨범에서 이미지 선택 -> collectionView Reload여야 하는데, 추가버튼 클릭 -> collectionView Reload -> 앨범 이미지 선택 순서가 된다.


Choi Hyowon

열심히 공부 중 입니다.