iOS68 [흡구오디] 가 [어딨쥐]가 되었습니다. 안녕하세요 오랜만이에요 충격 발언과 함께 돌아온 포스팅 제가 1년 동안 열심히 만들어나간 흡구오디가 애플 심사라는 커다란 벽에 막혀 어딨쥐로 재탄생하였습니다. [기존]앱 이름 : 흡구오디용도 : 흡연구역 공유 어플리케이션 -> [변경 후]앱 이름 : 어딨쥐용도 : 생활 편의시설(쓰레기통, 화장실, 정수기, 흡연구역) 공유 어플리케이션 으로 조금 바뀌었어요. 이와 관련된 스펙타클한 얘기들은 차차 포스팅 해보도록할게요 그럼 안녕~ iOS/흡구오디 -> 어딨쥐 2025. 12. 17. [흡구오디] 에플 로그인 구현하기 안녕하세요? 잠이 안와서 글 쓰러 하러왓서요 밀린 포스팅들 레쓰고... 사실 앱 심사 냈는데 2주째 리젝의 늪에서 씨름 중이라 억울하고 분하고 슬푸고 엉엉슨 그래도...하던건 해야하니까 마음 가담듬고 애플로 로그인 고고싱 ㅠㅠ Apple은 다른 업체의 소셜 로그인 기능 제공 시 apple 로그인을 제공하지 않으면 100% 리젝당한다고 합니다.그러니까 소셜 로그인 구현한다면 애플 로그인은 필수겠죠 참고로 애플 로그인 구현하려면 애플 개발자 계정이 필수랍니다!그런데 이제 129,000원으로 유료인... 0. 애플 개발자 계정 등록하기https://developer.apple.com/kr/programs/enroll/ 멤버십 가입하기 - Apple Developer ProgramApple Developer P.. iOS/흡구오디 -> 어딨쥐 2025. 11. 20. [흡구오디] firebase firestore 문서 업데이트하기 안녕하세요 저 지금 올린 흡연구역 업데이트하는 기능을 개발하고 있는데요, firebase firestore에서 update를 써도 / set을 써도(set 써도 기존에 있는 문서면 업데이트 된다고 함. ((그럼 업데이트 함수는 왜 있는겨??))) 흡연구역 정보가 업데이트 되는게 아니라, 새로 생겨서 업로드 되는거예요??? 알고봤더니 문제는 문서ID를 기반으로 이 문서가 있는지 없는지 판단을 하는데,제가 데이터 읽기 쉬우려고 "흡연구역 이름_올린시간" 형태로 문서ID를 설정했거덩요? 그래서 흡구 이름이 변하거나 올린 시간이 변하면 아 이 문서ID는 없는 문서네???새로 업로드해야겠다!!!!! 하는거였음 안습,,,,OTL 결국 데이터 편하게 보기 위한 꼼수는 실패로 돌아갔구요...위도 경도 값으로 문서.. iOS/흡구오디 -> 어딨쥐 2025. 10. 24. [흡구오디] Xcode - 앱 이름 변경하기 안녕하세요 오늘은 제 앱의 표시되는 이름을 변경해줄거예요 프로젝트 이름은 "SmokingAreaOdi"로 되어있지만 저는 이 앱의 이름을 "흡구오디"로 할거랍니다? 방법은 초간단 TARGETS > Build Setting > Bundle Dispaly Name을 지정해주면 돼요!(All로 해야 보임, 혹은 검색 고고) 그럼 짜잔 변경 완료~ 그럼 안녕히 계세요.. iOS/흡구오디 -> 어딨쥐 2025. 10. 3. [흡구오디] Swift - Firebase 구글 로그인 기능 구현하기 안녕하세요 오늘은 저번 포스팅에 이어서 파이어베이스로 구글 로그인 하는 방법에 대해 정리해보겠습니다.구글 로그인 방법우선 공식 문서의 Google 로그인 구현 3번까지 따라해 주세요! 4번부터 어떻게 하라는건지 이해가 잘 안됐는데 아래처럼 하시면 되어요 참고로 공식문서의 코드는 이렇게 되어있고guard let clientID = FirebaseApp.app()?.options.clientID else { return }// Create Google Sign In configuration object.let config = GIDConfiguration(clientID: clientID)GIDSignIn.sharedInstance.configuration = config// Start the sign i.. iOS/흡구오디 -> 어딨쥐 2025. 10. 3. [흡구오디] Swift - firebase Authentication로 이메일 로그인 구현하기 안녕ㅎㅏ세요 저는 그동안 로그인 기능을 구현하고 있었답니다? 그럼 오늘은 로그인 방법에 대해 정리해볼게요! 로그인 방법이번 포스팅은 firebase의 가장 기본적인! Authentication의 이메일 / 비밀번호 방법으로 로그인 하는 법에 대해 알아보겠습니다. 제공업체 추가먼저 콘솔 > Autentication > 로그인 방법 > 새 제공업체 추가 에 가서 [이메일/비밀번호]를 선택해주세요 그리고 앞으로 나오는 방법에 대한 내용은 모두 공식 문서를 기반으로 합니다. 신규 사용자 가입 방법이렇게 설정을 해두고 나면, 이제 코드에서 createUser API를 호출해서 신규 유저를 만들 수 있아요Auth.auth().createUser(withEmail: email, password: password) {.. iOS/흡구오디 -> 어딨쥐 2025. 10. 3. [흡구오디] 각 서비스별 로그인 버튼 가이드 따라가기 안냥하세요 지금 로그인 기능 열심히 만들고 있는데요 각 서비스별로 따라야할 로그인 버튼 디자인 가이드 간단히 정리해볼게요 구글 로그인 디자인 가이드 카카오 로그인 디자인 가이드 iOS/흡구오디 -> 어딨쥐 2025. 9. 24. [흡구오디] Swift - Cloud Storage로 사진 업로드/다운로드 하기 | 사진 업로드해서 보여주기 안녕하세요 이제 가을인가봐요겨울이 오기 전에 이 앱을 출시하겠어요!(사유 : 전국방방곳곳 뛰댕겨야함) 오늘은 유저가 흡연구역을 추가할 때 사진을 찍어서 올리고 마커를 탭하면 그 사진 + 흡연구역에 대한 정보를 보여주는 기능을 구현해보았답니다 : ) 사진 업로드/다운로드 과정먼저 과정 설계를 해야겠쥬 파이어스토어는 텍스트/숫자 같은 데이터만 저장할 수 있고, 이미지 저장은 안돼요 🙅그래서 Cloud Storage를 같이 써야 함! 기존 흐름사용자가 입력 폼 적어서 저장 -> firestore에 장소 이름/장소 설명/장소 태그 등을 저장사용자가 마커를 탭하면 -> firestore에 있는 장소 이름/장소 설명/장소 태그 등을 불러와서 보여주기 앞으로는사용자가 사진 찍고, 입력 폼 적어서 저장-> 사진은 .. iOS/흡구오디 -> 어딨쥐 2025. 9. 14. [흡구오디] Swift 사진 찍는 기능 구현하기 | UIImagePickerController 안녕하세요! 오늘은 iOS 앱에서 사진 찍는 기능을 구현하는 법에 대해 알아보겠어요 보통 사진 업로드를 위해서는카메라로 찍기 or 앨범에 있는 사진 사용 일텐데요 제 앱의 경우 앨범 불러오는 기능까지 굳이 구현할 필요 없기 때문에즉석에서 찍은 카메라 샷만 구현하도록 할게요 저는 카메라 버튼을 만들어주고 그 버튼을 누르면 카메라가 실행되도록하였답니다.카메라 버튼 생성-> 버튼 누르면 카메라 실행-> 찍은 사진을 미리보기로 보여주기 카메라 버튼 생성private var areaImage = UIButton().then { $0.setImage(UIImage(systemName: "camera.on.rectangle.fill"), for: .normal) $0.layer.borderWidth = 0.. iOS/흡구오디 -> 어딨쥐 2025. 9. 14. [ReactorKit] 버튼 누르면 숫자가 증가하는 리액터 만들기 안녕하세요 저번 포스팅에서는 리액터를 사용해서 앱을 실행하면 리액터로 상태값을 바꿔 그 상태값을 출력해서 확인해보는 예제를 공부했었어요 이번 시간에는 사용자의 입력에 맞춰 상호작용하는 것을 연습해보기 위해서 버튼을 누르면 카운트가 증가되는 리액터를 만들어봤어요 먼저 Reactor 만들기(수정하기)import RxSwiftimport ReactorKitimport Foundationfinal class ViewReactor: Reactor { //사용자의 행동 enum Action { case buttonTapped } //상태 변화 enum Mutation { case increaseCount } //뷰 상태 struct State { var buttonTapCoun.. iOS/ReactorKit 2025. 9. 11. [ReactorKit] 기본적인 ReactorKit 흐름 만들어보기 안냥하세요 오늘은 리액터킷 기본 틀을 만들ㅇㅓ 보면서 리액터킷을 어떻게 구성하는지, 어떻게 동작하는지 공부해보았어요 기본 흐름은 초기 상태가 false 인 initialState를 만들어줌-> 리액터킷을 만들어 준다음에-> bind() 동작하며 상태 값을 true로 바꿔줌 그리고 우리는 위 동작을 하는 Reactor를 만드는 것을 연습해볼 것임! Reactor 만들기import RxSwiftimport ReactorKitimport Foundationfinal class ViewReactor: Reactor { //사용자의 행동 enum Action { case initialize } //상태 변화 enum Mutation { case setIsInitialized(Bool) }.. iOS/ReactorKit 2025. 9. 11. [ReactorKit] 리액터킷의 기본 개념 안녕하세요 제가 공부하고 있는 리액터킷의 기본 개념을 꼼꼼히 공부하고 이해해보도록해요 아래 내용은 리액터킷 깃의 내용을 한글로 제맘대로 적어놓은 것 입니다~ 이해가 안되는 여러분들에게도 도움이 되면 좋겠네요... 모든 내용은 https://github.com/ReactorKit/ReactorKit/blob/master/README.md ReactorKit/README.md at master · ReactorKit/ReactorKitA library for reactive and unidirectional Swift applications - ReactorKit/ReactorKitgithub.com을 기본으로 합니다! 그럼 시작기본 개념ReactorKit은 Flux와 Reactive Programming의.. iOS/ReactorKit 2025. 9. 10. 이전 1 2 3 4 ··· 6 다음