본문 바로가기

반응형

전체 글

(58)
[iOS/Swift] Google AdMob 도입기 1 Google AdMob 도입 계기HowManySet 어플이 출시된지 거의 두 달이 지났다.기존에 인스타 릴스 광고만 소액으로 했었다.최근에 지인 얘기를 들어보니 Google Ads로 광고를 해봤는데, 다운로드 수가 많이 늘었다고 하여 이를 사용하기로 결정했다.그전에, 일단 인앱 광고를 하나 넣고나서 Google Ads 결제를 하는게 좋을 것 같다고 생각하여 Google AdMob을 먼저 적용하기로 결정했다.몇주전 iOS 오픈채팅에서 AdMob으로 한 달에 500달러 정도의 수익 인증을 한 채팅을 보고 나도 빨리 하고 싶었다.수익창출을 하려면 무조건 사업자등록을 해야한다는 얘기를 직접 들었었는데, 잘못된 정보였다.대규모 수익이 아니면 종소세만 내면 된다고 한다.그래서 아래 사이트에서 설정을 했다.https..
Icon Composer 적용하기 Icon Composer는 얼마 전 WWDC25에서 소개가 됐었다.현재는 Beta이고 Xcode26 이상부터 적용 가능하다. 몇달전에 HowManySet 프로젝트에서 Icon Composer를 적용하려 했었는데, Xcode beta 26 버전에만 적용이 됐어서 적용을 하지는 못했다.오늘 들어가 있는 iOS 카톡 오픈채팅방에 Icon Composer 관련 질문이 올라왔었다.그래도 어떻게 했는지는 대충 기억하기에 아래처럼 답을 했었다. 관련 노션 TIL을 찾아보려 했는데, 그때 작성을 안했어서 다시 정리하는 겸 글을 써본다.일단 Icon Composer를 다운받고 아이콘을 만든다.확장자명은 .icon 파일로 되어있다.이 HowManySet.icon 파일을 Xcode Assests에 넣어준다.
[iOS/Swift] 페이징 스크롤 뷰 구현 과정 중 오류들 페이징 스크롤 뷰 오류pagingScrollView.isPagingEnabled = true, frame 고정pagingScrollContentViewleading, top, bottom, trailing, height = scrollView.height , width = cardCount * screenWidth각 cardViewleading = 이전 cardView.trailing or leading = i * width, top, bottom, width = 고정문제 1. ContentView가 아닌 ScrollView의 width를 동적으로 늘리고 있었음! 수정 전pagingScrollView.snp.makeConstraints { $0.horizontalEdges.equalTo(view.s..
[iOS/Swift] ReactorKit bind() 호출 오류 ReactorKit bind() 호출 오류import ReactorKit 을 하고, RectorKit의 View Protocol을 채택하면 된다그런데 여기서 문제가 있었다.아래 코드에서 bind()가 계속 호출이 안됐다.import ...final class HomeViewController: UIViewController, View { // MARK: - Properties private weak var coordinator: HomeCoordinatorProtocol? var reactor: HomeViewReactor? // MARK: - UI Components ... // MARK: - Initializer init(reactor: Home..
[iOS/Swift] ReactorKit bind() 자동 호출 안되는 오류 ReactorKit bind() 자동 호출 안되는 오류ReactorKit을 사용할 때, import ReactorKit 을 하고, RectorKit의 View Protocol을 채택하면 된다.그런데 여기서 문제가 있었다.아래 코드에서 bind()가 계속 호출이 안됐다.import ...final class HomeViewController: UIViewController, View { // MARK: - Properties private weak var coordinator: HomeCoordinatorProtocol? var reactor: HomeViewReactor? // MARK: - UI Components ... // MARK: - Initia..
[iOS/Swift] iOS 앱에서 데이터를 영구적으로 저장하기 위해 사용할 수 있는 방법들(UserDefaults, Keychain, Plist, FileManager, SQLite, Core Data, Realm)의 특징과 각각의 장단점, 적합한 사용 사례 iOS 앱에서 데이터를 영구적으로 저장하기 위해 사용할 수 있는 방법(UserDefaults, Keychain, Plist, FileManager, SQLite, Core Data, Realm)의 특징과 각각의 장단점, 적합한 사용 사례에 대해 알아보자. UserDefaults특징사용자의 기본 설정 데이터베이스에 접근하는 간단한 인터페이스 제공키-값 (key-value) 쌍 형태로 저장앱이 실행될 때 영구적으로 저장되며, 앱이 삭제되지 않는 한 데이터 유지Bool, Float, Double, Int, String, URL, Array, Dictionary 등 기본 데이터 타입을 쉽게 저장하고 검색할 수 있음. 다른 타입은 NSData로 아카이빙해야 함.내부적으로 Property List(.plist) ..
[iOS/Swift] UIKit에서 TableView와 CollectionView의 차이점은 무엇인가요? UITableView, UICollectionView공통점TableView와 CollectionView는 iOS 앱에서 데이터를 목록 형태로 표시하는 데 사용되는 UI 컴포넌트로 둘 다 스크롤 가능한 콘텐츠를 표시차이점특징 UITableView UICollectionView방향성기본적으로 단일 열(세로) 또는 단일 행(가로)의 선형 목록여러 열/행, 그리드, 원형 등 다양한 형태로 데이터 표현 가능복잡성단순한 목록 표시 및 섹션 구분에 적합복잡한 레이아웃과 다양한 시각적 표현에 적합레이아웃고정된 선형 레이아웃UICollectionViewLayout을 통해 매우 유연한 레이아웃 제공용도설정 화면, 이메일 목록, 뉴스 피드 등갤러리, 앱 스토어, 소셜 미디어 피드 등헤더/푸터섹션 헤더/푸터 지원섹션 헤더/푸..
REST API와 iOS에서의 네트워크 요청 및 응답 처리 방법 https://github.com/JeaSungLEE/iOSInterviewquestions?tab=readme-ov-file GitHub - JeaSungLEE/iOSInterviewquestions: 👨🏻‍💻👩🏻‍💻iOS 면접에 나올 질문들 총 정리👨🏻‍💻👩🏻‍💻iOS 면접에 나올 질문들 총 정리 . Contribute to JeaSungLEE/iOSInterviewquestions development by creating an account on GitHub.github.com 해당 깃허브의 면접 질문 중 14번 질문에 대해 공부를 했다. 14. REST API와 iOS에서의 네트워크 요청 및 응답 처리 방법에 대해 설명해주세요.REST의 제약 조건(Stateless, Cac..

반응형