매일 공부 일기

(2022-11-16) 소소한 개발 일기

HJ39 2022. 11. 16. 15:14

-오늘 한일

 

# 컴퓨터 응용 설계 팀프로젝트

1.  사용자의 기기에서 지도 선택할 수 있게 하기

어제 카카오맵 앱으로 이동할 수 있게끔 했지만 곰곰히 생각해보니 카카오맵을 안쓰면..? 이라는 생각이 번뜩 들었다.

그래서 팀원들에게 얘기를 한 결과 '사용자가 자신이 사용하는 지도로 볼 수 있게끔 하자' 라는 결론이 되었다

 

이거를 할 수 있을까 고민하고 찾아보았다.

그랬더니 iOS에서는 유니버셜 링크, android에서는 app link 라고 부른다고 한다.

 

유니버셜 링크를 사용할 수 있다고 하는데 계속 찾아볼 수록 애플에서 유니버셜링크는 안드로이드의 앱 링크와 다르게 실행하려고 하는 앱이 사용자 기기에 없는 경우 앱스토어 안내하여 다운로드 받을 수 있게 하는 기능만 있다고 한다.;;;(상상도 못했네..)

 

유니버셜 링크를 사용하려면 앱을 애플에 등록해야 사용할 수 있다고 한다..ㅜㅜ

멘토님에게 연락드려서 해결 방법을 물어 봐야겠다..ㅎ

-> 다음에 해야징

 

멘토분에게 답장이 온 결과 UIActivityViewController를 사용하면 구현을 할 수 있다고 하셨다!

진짜 몇 시간을 찾아봐서 안나오는 걸 1분만에 해결을 해주시다니 😂(감격ㅜㅜ)

 

UIActivityViewController란 application 내부에서 무언가를 공유할 때 아래 사진과 같이 뜨는 화면을 말한다.

- UIActivityViewController를 사용하면 화면은 Modal 방식으로 실행된다.

- iOS 6.0이상부터 사용이 가능하다.

- 문자열, URL 링크, 이미지, UIActivityItemSource 프로토콜을 따르는 커스텀 타입의 인스턴스 아이템들을 공유할 수 있다.

- 기본적으로 주어지는 내보내기 서비스의 기본 타입들이 있는데 아래 참고 사이트 3번 링크를 누르면 볼 수 있다.

 

실제로 적용한 코드 (블로그에서 가져왔습니다 ㅎ)

해당 기능을 이용해서 각 지도들을 선택할 수 있게 만들면 될 것 같다.

 

결국.. 실패했다....ㅠㅠ 

카카오맵이 없는 경우에는 카카오맵을 다운로드 받을 수 있게 앱스토어로 이동하게 만들었다..

2.  광고 기능을 위한 베이스 준비

이전에 관광지 리스트를 보여줄 때는 tableview를 사용하여 만들었는데 가로 스크롤이 되는 view를 찾다보니 collectionview를 보게 되었다.

 

tableView와 CollectionView를 차이는 다음과 같다.

tableView vs collectionView

tableView는 간단하고 보편적인 리스트를 보여줄 때 사용하고, collectionView는 tableView로는 구현하기 복잡한 리스트를 만들 때 사용한다.

 

CollectionView를 적용하는 코드

extension SecondViewController: UICollectionViewDelegate, UICollectionViewDataSource{
    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return 1
    }
    
    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let collectionCell = collectionView.dequeueReusableCell(withReuseIdentifier: "collectionCell", for: indexPath)
        let img = collectionCell.viewWithTag(400) as? UIImageView
        
        img?.image = UIImage(named: "버튼1")
        print("collectioncell called")
        return collectionCell
    }
}

delegate랑 datasource는 controller에 연결해 주었다.

 

tag를 이용해서 이미지를 삽입하려 했지만 이미지가 출력되지 않는다..ㅠ

 

 

 

 

# 참고한 사이트

  1. https://blog.branch.io/ko/%EC%9C%A0%EB%8B%88%EB%B2%84%EC%84%A4-%EB%A7%81%ED%81%AC-uri-%EC%8A%A4%ED%82%B4-%EC%95%B1-%EB%A7%81%ED%81%AC-%EB%B0%8F-%EB%94%A5-%EB%A7%81%ED%81%AC-%EB%AC%B4%EC%8A%A8-%EC%B0%A8%EC%9D%B4%EA%B0%80/
  2. https://nareunhagae.tistory.com/19
  3. https://www.zehye.kr/ios/2020/03/12/12iOS_activity_view_controller/