본문 바로가기

전체 글

(41)
📱화면 절반만 차지하는 iOS모달 구현하기 서론 요즘에 아이폰 앱을 사용하다보면 간단한 후기 입력 폼으로 많이 보이는 모달이 하나 있는데요. 위처럼 보이는 전체화면이 아닌 화면의 절반정도 차지하는 모달입니다. 정확한 명칭이 어떤건지는 잘 모르겠지만.. 검색을 하다보니 관련된 라이브러리가 있더라구요. Bulletin Board 라고 정의된 라이브러리가 있어서 간단하게 사용하고 싶으신 분들은 저 라이브러리를 사용하시면 좋을 것 같습니다. 해당 포스트에서는 라이브러리를 사용하지 않고, 좀더 커스터마징을 하고싶은 사람들을 위해 기본적인 동작방법을 적어놓은 포스트입니다. 구현방법 두개의 UIViewController를 사용하여 구현합니다. 모달을 띄우는 주체가 되는 컨트롤러는 부모 컨트롤러, Bulletin board가 있는 컨트롤러를 자식 컨트롤러로 정..
📱iOS앱 만들때 소셜 로그인만 구현해도 거절 안당한다? 처음으로 iOS앱을 개발하면서 느낀 것중에 가장 크게 느낀것은 "애플의 앱 심사는 까다롭다!" 라는 것인데요.. 앱 심사가 까다롭다보니 자연스럽게 앱 서비스를 구현할 때 소셜로그인만 구현해도 통과할까? 라는 생각이 들었습니다. 소셜로그인을 붙인다는 것은 개발에서는 해당 라이브러리들을 다 적용해야하는 일이 생기지만 사용자 관점에서는 자체 로그인보다는 빠르게 회원가입을 하거나 로그인을 할 수 있는 편리함을 가지고 있다고 생각합니다. 또한 자체 로그인에서 필요한 화면들도 사라지죠! 소셜로그인만 달고 혹시나 해당 이유때문에 거절당한다면 그때 자체 로그인을 추가 구현해도 되니 일단 도전해보았습니다. 결론부터 말하자면 소셜로그인만으로도 앱 심사는 통과합니다! 일단 도전! 이번에 사이드 프로젝트를 진행하면서 적용해보..
📱iOS에서 가장 무서운 심사시간. 애플 심사 두번 거절 디프만 활동을 하면서 평소에 만들고 싶던 앱을 만들게 되었습니다🤭 (여기서 디프만은 디자이너와 프로그래머가 만났을때 라는 문장의 줄임말로 생산적인 활동늘 하고싶은 디자이너와 개발자들이 모여서 사이드프로젝트를 진행하는 동아리입니다. 디프만 미디엄) 3,5,6,기를 활동하는 동안 저는 안드로이드 개발만 하다가 처음으로 iOS를 배우고 진행한 프로젝트다보니 장애물들이 많이 있었는데요, 그중에 가장 허무하고 애가 타게한 부분은 애플 심사였습니다. 애플 심사 경험에 대해서 기록해놓으려고 합니다. 먼저 제가 이번 프로젝트에서 만들게 된 앱은 "가슴속 3천원"이라는 앱 서비스입니다. 사이드 프로젝트로 만든 서비스는 평소에 항상 생각하고있던 붕어빵 지도였습니다. 붕어빵을 먹고싶지만 최근들어 붕어빵을 파는 분들이 많이 ..
[iOS/Swift5] 스토리보드 없이 횡스크롤 UICollectionView 만들기 횡스크롤이 가능한 UICollectionView를 스토리 보드 없이 만들어봅니다. 스토리 보드 없이 SnapKit, Than 라이브러리를 사용해서 뷰를 그릴 예정입니다. MainView.swift 뷰에 관한 파일을 먼저 정의합니다. class MainView: UIView { let collectionView = UICollectionView(frame: .zero, collectionViewLayout: UICollectionViewFlowLayout()).then { let layout = UICollectionViewFlowLayout() layout.scrollDirection = .horizontal $0.backgroundColor = .white $0.contentInset = UIEdgeI..
[iOS/Swift] 선택된 셀이 표시되는 UICollectionView 사용하는 곳 UICollectionView를 사용할때, 현재 선택된 사진 혹은 셀을 사용자에게 알려주기 위해 선택된 셀만 하이라이트 표시해주곤 합니다. 위의 예제에서는 화면 가운데에는 현재 선택된 사진이 크게 나타나고 하단에는 이미지 리스트들이 존재하는데 현재 선택된 이미지 셀만 투명도가 없고 선택되지 않은 셀들에 대해서는 투명도가 존재하여 흐릿하게 보입니다. 샘플 앱 보다 더 직관적으로 설명하기 위해서 위와 같은 화면으로 구현하겠습니다. 해당 포스트에서는 스토리보드를 사용하지 않고 코드로만 뷰를 작성합니다. ViewController.swift // ViewController.swift import UIKit class ViewController: UIViewController { private laz..
[iOS/Swift] 스토리보드 없이 UIScrollView 만들기 (using Snapkit) 스크롤뷰(UIScrollView)를 스토리보드 없이 만들어보겠습니다. 제가 스토리보드를 사용하지 않고 코드를 사용하여 그리는 이유는 Github와 같은 버전관리 툴을 사용할때 코드를 통해 뷰의 변경점을 관리하기 위해 입니다. 스토리보드를 사용하여 버전관리를 진행한다면 뷰를 변경했을때 어떤 부분이 변경했는지 명확하게 보이지 않기 때문에 코드를 통해 뷰를 그려나가고 있습니다. 해당 포스트에서는 AutoLayout을 사용하고 Snapkit을 사용합니다. UIScrollView 주의사항 코드를 사용해 스크롤뷰를 그릴 때 주의사항이 있습니다. 주의사항은 Apple Document에 있는 UIScrollView 설명에 적혀있습니다. UIScrollView - UIKit | Apple Developer Documen..
[iOS13] 스토리보드 없이 프로젝트 시작하기 프로젝트 생성 프로젝트 생성시 User Interface 항목을 Storyboard로 설정하고 생성해줍니다! 스토리보드 파일 삭제하기 스토리보드 파일 없이 빌드하는것이 목표이므로 "Main.storyboard" 파일을 삭제합니다. (LaunchScreen.storyboard파일은 삭제하셔도 되고 안해도 됩니다! 첫화면이기때문에 큰 상관 없습니다.) 삭제만 하고 바로 빌드해서 실행시켜보면 Runtime Exception이 발생합니다. 이유는 프로젝트 설정에는 Main.storyboard라는 파일을 메인 스토리보드로 설정해놓았기 때문에 파일을 찾을 수 없어서 발생하는 에러입니다. 따라서 스토리보드 관련된 설정도 삭제해줘야합니다. 프로젝트 스토리보드 설정 제거 프로젝트 "General" 설정 > Deploym..
아이폰 다양한 해상도 비율에 맞게 AutoLayout 그리기(with SnapKit) 이 포스트에서는 AutoLayout을 SnapKit 라이브러리를 사용하여 그립니다. SnapKit(https://github.com/SnapKit/SnapKit) 아이폰 해상도 새로운 아이폰들이 매년 출시되면서 아이폰의 해상도가 점점 다양해지고 있습니다. (물론 안드로이드만큼 다양하진 않아서 너무 좋습니다,,) 아이폰에서 사용되는 해상도들을 보기 위해선 애플에서 제공하는 Display Reference 링크를 보면 됩니다. Displays Displays The display is a key part of the great user experience on iOS devices. Users interact with the display surface, and see the results after an ..