본문 바로가기

iOS 앱 개발자 프로젝트

[iOS] WWW : 단어로 연결된 세계

문득 5월의 마지막 날까지 날을 새며 테스트 했던 www 가 생각났어.

시간이 왜 이렇게 빠르지? ʕ •ᴥ•ʔ

 

SF symbol로 만든 www의 LOGO

 

 

 

WWW : World Wide Web 이 아니고, Word Wide Web 이야..

부족한 팀장과 함께 해준 팀원들에게 진심으로 고마웠던 프로젝트였어.

 

돌아보니, 앱을 개발한다는 건 정말 커뮤니케이션의 집합체라는 생각이 들어. 혼자서 개발하는 게 아니라면, 같이 작업하는 동안 예상치 못한 변수들이 정말 많이 생기더라고. 처음엔 그냥 혼자서 뚝딱 하고 뭔가를 만들어낼 줄 알았는데, 그게 완전 큰 착각이었다는 걸 깨달았어.

 

www 소개 영상 초기 버전

 

 

structure ▽

WWW
├── Model
│   ├── Network
│   │    ├── NetworkManager
│   │    ├── RemoteDictionary
│   │    ├── MyPage
│   │    └── InvitationData
│   │
│   └─ Firebase
│      ├─ SignInAppleHelper
│      ├─ AuthenticationManager
│      ├─ FirestoreManager
│      ├─ SignInGoogleHelper
│      ├─ User
│      └─ Utilities
│
│ 
├── View
│   ├── Cell
│   │    ├── TestFriendViewCell
│   │    ├── FriendCell
│   │    ├── DefaultTableViewCell
│   │    ├── WordbookCell
│   │    ├── PlayingListViewCell
│   │    ├── ExpandableTableViewCell
│   │    ├── InvitedFriendCell
│   │    ├── DictionaryTableViewCell
│   │    └── MyPageCollectionViewCell
│   │
│   ├── TestResultView
│   ├── TestView
│   ├── TestIntroView
│   ├── CarouselLayout
│   ├── PlayingListView
│   ├── CircleAnimateText
│   └── LaunchView
│
│
├── Controller
│   ├── TabBarController
│   ├── MyPageVC
│   ├── MyPageCollectionViewCell
│   ├── MyPageWordViewController
│   ├── MyPageModalViewController
│   ├── PlayingListViewController
│   ├── DictionaryVC
│   ├── SearchFriendsVC
│   ├── SignInVC
│   ├── SignUpVC
│   ├── InvitingVC
│   ├── MyInfoViewController
│   ├── WordbookCell
│   ├── AddWordBookVC
│   ├── RadioButton
│   ├── ProfileVC
│   ├── ProfileViewModel
│   ├── TestIntroViewController
│   ├── TestResultViewController
│   ├── TestViewController
│   └── EmptyCollectionViewCell
│
│
├── Component
│   ├── AppDelegate
│   ├── SceneDelegate
│   └── ViewController
│
│
├── Extension
│   ├── UIFont+Ext
│   ├── UIColor+Ext
│   ├── NotificationExtensions
│   ├── Formatter
│   ├── Numeric
│   ├── MyPage+Ext
│   └── CollectionView+Ext
└

 

 

 

Main의 CarouseView 코드

////
////  CarouselView.swift
////  compositionTest7
////
////  Created by 채나연 on 5/31/24.
////
//
//import UIKit
//import SnapKit
//
//
//class CarouselView: UICollectionReusableView {
//    
//    //레이블 설정
//    private let label: UILabel = {
//        let label = UILabel()
//        label.textColor = .white // 텍스트 색상을 흰색으로 설정
//        label.font = .systemFont(ofSize: 18, weight: .bold)
//        return label
//    }()
//    
//    // 상단 캐로셀 컬렉션 뷰 설정
//    var testCollectionView: UICollectionView = {
//        let layout = YZCenterFlowLayout()
//        
//        // 셀 크기 설정 (피그마 기준 194 * 244)
//        layout.itemSize = CGSize(
//            width: 194,
//            height:  244
//        )
//        
//        // 캐로셀 방향 설정
//        layout.scrollDirection = .horizontal
//        
//        // 애니매이션 모드 설정
//        layout.animationMode = YZCenterFlowLayoutAnimation.scale(sideItemScale: 0.6, sideItemAlpha: 0.6, sideItemShift: 0.0)
//        
//        // 셀 간격 설정
//        layout.spacingMode = .fixed(spacing: 10)
//        
//        let collectionView = UICollectionView(frame: .zero, collectionViewLayout: layout)
//        collectionView.backgroundColor = .systemBackground
//        collectionView.register(CarouselCell.self, forCellWithReuseIdentifier: "CarouselCell")
//
//        return collectionView
//        
//    }()
//    
//    // 초기화 메서드
//    override init(frame: CGRect) {
//        super.init(frame: frame)
//        
//        // 뷰의 배경색 (뒤에 있어서 안보임)
//        backgroundColor = .blue
//        
//        // 테스트 컬렉션 뷰(파란색)를 현재 뷰의 서브뷰로 추가
//        addSubview(testCollectionView)
//        
//        // 테스트 컬렉션 뷰의 제약 조건을 설정: 슈퍼 뷰(cyan 컬러)와 동일한 크기
//        testCollectionView.snp.makeConstraints { make in
//            make.edges.equalToSuperview()
//        }
//        // 테스트 컬렉션 뷰의 델리게이트, 데이터소스를 현재 클래스로 설정
//        testCollectionView.delegate = self
//        testCollectionView.dataSource = self
//
//        // 테스트 컬렉션 뷰의 배경색을 청록색(cyan)으로 설정
//        testCollectionView.backgroundColor = .cyan
//    }
//    
//    // 코드 기반 초기화 메서드
//    required init?(coder: NSCoder) {
//        fatalError("init(coder:) has not been implemented")
//    }
//    
//    // label의 text를 설정하고 testCollectionView의 데이터를 다시 로드
//    func configure(with text: String) {
//        label.text = text
//        testCollectionView.reloadData()
//    }
//}
//
//// CarouselView 클래스: UICollectionViewDataSource와 UICollectionViewDelegate 프로토콜 채택
//extension CarouselView: UICollectionViewDataSource, UICollectionViewDelegate {
//    
//    // 컬렉션 뷰에서 특정 indexPath에 해당하는 셀을 생성
//    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
//        
//        // 재사용 가능한 셀을 dequeue 받아오기
//        guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "CarouselCell", for: indexPath) as? CarouselCell else {
//            return UICollectionViewCell()
//        }
//        
//        // *** 여기에 추가할 셀의 구성 코드를 추가 ***
//        
//        // "Item \(indexPath.item)"의 형태로 셀의 텍스트를 설정
//        cell.configure(with: "Item \(indexPath.item)")
//        return cell
//    }
//    
//    // 컬렉션 뷰의 지정된 섹션에 표시할 아이템의 개수를 반환
//    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
//        return 10 // 아이템 개수
//    }
//}

 

 

 

https://github.com/ZooomBiedle/WordWideWeb

 

GitHub - ZooomBiedle/WordWideWeb: 단어로 연결된 세계: 따로 또 같이! 게임처럼 재미있게!

단어로 연결된 세계: 따로 또 같이! 게임처럼 재미있게! Contribute to ZooomBiedle/WordWideWeb development by creating an account on GitHub.

github.com