-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FEAT] 3차 과제 구현 #1
base: main
Are you sure you want to change the base?
Conversation
넘넘 수고했어!! 차차 나랑 같이 더 발전시켜보자 ㅎㅣ히히 |
고생하셨습니다 당신 .. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
과제하느라 너무너무 수고했어영!!!! 부족한 저의 식견으로 볼때는 뷰컨트롤러를 쪼오오오금더 깔끔하게 만들면 좋을거 같아요!!! 폴더링도 같이하면 더더더더더 좋을거 같아요!!!!!!!!! 형 넘넘 고생했어여여여여ㅕ여여영
|
||
override func viewDidLoad() { | ||
super.viewDidLoad() | ||
let components: [Any] = [view1, view2, view3, changeButton] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Any타입말고 UIView로 타입을 설정해주면 더 정확하고 좋을거 같아요~!
private let startLabel: UILabel = { | ||
let label = UILabel() | ||
label.font = .systemFont(ofSize: 22, weight: .medium) | ||
label.text = "카카오톡을 시작합니다" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
텍스트 값 하드코딩하는 것 보다 리터럴 파일로 따로 관리하는 것도 추천드립니다!
var friendList:[FriendModel] = [ | ||
FriendModel(name: "가솝트", status: "상태메시지", profileImage: "profileImage1"), | ||
FriendModel(name: "나솝트", status: "상태메시지", profileImage: "profileImage2"), | ||
FriendModel(name: "다솝트", status: "상태메시지", profileImage: "profileImage3"), | ||
FriendModel(name: "라솝트", status: "상태메시지", profileImage: "profileImage4"), | ||
FriendModel(name: "마솝트", status: "상태메시지", profileImage: "profileImage5"), | ||
FriendModel(name: "바솝트", status: "상태메시지", profileImage: "profileImage6"), | ||
FriendModel(name: "사솝트", status: "상태메시지", profileImage: "profileImage7"), | ||
FriendModel(name: "아솝트", status: "상태메시지", profileImage: "profileImage8"), | ||
FriendModel(name: "자솝트", status: "상태메시지", profileImage: "profileImage9"), | ||
FriendModel(name: "차솝트", status: "상태메시지", profileImage: "profileImage9") | ||
] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
더미데이터는 model 파일에서 관리하면 뷰컨트롤러가 더 깔끔할거 같아요!!!
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat { | ||
return friendListLineSpacing | ||
} | ||
|
||
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat { | ||
return friendListInterItemSpacing | ||
} | ||
|
||
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets { | ||
return friendListInset | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
사용하지 않는 값이면 없어도 될거 같아요!!!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
백준님의 코드 아주아주 잘 봤슴당~~~! 어려우셨을텐데 이것저것 노력하신 모습이 보여서 좋았어요! 짱~~~~~~👍🐙
let components: [Any] = [view1, view2, view3, changeButton] | ||
components.forEach { | ||
view.addSubview($0 as! UIView) | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
생명주기함수 안에는 함수의 호출부만 써주는게 조금 더 깔끔해서 선호하는 사람들이 많답니당~ 참고하면 좋을 것 같아요우👍
@objc | ||
private func changeBound() { | ||
view2.bounds = CGRect(x: 98, y: 157, width: 300, height: 500) | ||
|
||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이건 objc 함수로 쓰기보다 따로 설정해주는게 더 좋을 것 같아요! 개인적인 생각이지만 swift가 나온만큼, swift로 해줄 수 있는 부분이라면 최대한 활용하는게 좋지 않을까 싶습니다!
private let loginButton: UIButton = { | ||
let button = UIButton() | ||
button.setTitle("카카오계정 로그인", for: .normal) | ||
button.setTitleColor(.black, for: .normal) | ||
button.backgroundColor = 0xF6F6F6.color | ||
button.titleLabel?.font = .systemFont(ofSize: 15, weight: .medium) | ||
button.addTarget(self, action: #selector(presentToWelcomeVC), for: .touchUpInside) | ||
return button | ||
}() | ||
|
||
private let signInButton: UIButton = { | ||
let button = UIButton() | ||
button.setTitle("새로운 카카오계정 만들기", for: .normal) | ||
button.setTitleColor(.black, for: .normal) | ||
button.backgroundColor = 0xF6F6F6.color | ||
button.titleLabel?.font = .systemFont(ofSize: 15, weight: .medium) | ||
button.addTarget(self, action: #selector(pushToSignUpVC), for: .touchUpInside) | ||
return button | ||
}() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
겹치는 코드가 많다면 어떻게 짜야 코드를 최대한 덜 쓸 수 있을까 고민해봐도 좋을 것 같아요! 게으름은 개발자의 미덕..ㅋㅋㅋ
imageContainerView.snp.makeConstraints { | ||
$0.centerY.equalToSuperview() | ||
$0.leading.equalToSuperview().offset(16) | ||
$0.height.equalTo(41) | ||
$0.width.equalTo(41) | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
then도 쓰시구,, 깨나 짱,,,??👍
// Called when the user discards a scene session. | ||
// If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. | ||
// Use this method to release any resources that were specific to the discarded scenes, as they will not return. | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
불필요한 주석은 지워줍시다!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
짱
// Called when a new scene session is being created. | ||
// Use this method to select a configuration to create the new scene with. | ||
return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
여기도 주석 지워줎다시!
3차 과제 일단 되는 데까지 했습니다,,
깃허브 너무 어려워서 래포 새로 팠습니다.. 찬미님 너무 감사합니다. 과제는 추후 수정하도록 하겠습니다