⭐️ 개발

    [iOS] Storyboard 없이 Navigation Controller로 시작하기

    [iOS] Storyboard 없이 Navigation Controller로 시작하기

    Storyboard 없이 Navigation Controller로 시작하기 Storyboard를 다 지워버린 상태에서 코드 베이스로 프로젝트를 시작할 때 navigation controller 베이스로 해줘야 할 때가 있다. 어떻게 해야 하냐면!! rootViewController를 설정해준 SceneDelegate 파일에 들어가서 rootViewController를 Navigation Controller로 지정해주면 된다. // // SceneDelegate.swift // PhoneBook_Clone // // Created by Thisisme Hi on 2021/09/08. // import UIKit class SceneDelegate: UIResponder, UIWindowSceneDelega..

    [iOS] URLSession 사용해서 서버 통신해보기 (feat. 네이버 Movie API)

    [iOS] URLSession 사용해서 서버 통신해보기 (feat. 네이버 Movie API)

    네이버 Movie API 를 가져와서 서버 통신을 해볼건데 이번에는 Alamofire, Moya가 아닌 Apple에서 자체적으로 제공하는 네트워크 통신 API인 URLSession을 사용해 보려고 한다! https://developers.naver.com/apps/#/register?defaultScope=search 애플리케이션 - NAVER Developers developers.naver.com -> Naver API를 사용할 건데 clientID랑 clientSecret이 필요하다. 🌀 URLSession 이란? 🌀 URLSession은 HTTP/HTTPS를 통해 콘텐츠 및 데이터를 주고받기 위해 API를 제공하는 클래스 1️⃣ Request - URL 객체와 직접 통신하는 형태 - URLRequ..

    [iOS] MVVM 패턴 가볍게 톺아보기

    [iOS] MVVM 패턴 가볍게 톺아보기

    MVVM 패턴 가볍게 톺아보기 노션 링크를 눌러 보세요... https://huree-can-do-it.notion.site/MVVM-75faeea12ac84da78d510aa6bd5c3ea5 깃허브 - 첫 번째 튜토리얼 : https://github.com/TeamCatchMe/CatchMe-RxMe-iOS/tree/heerucan/0-1week/heerucan/MVVM-Example GitHub - TeamCatchMe/CatchMe-RxMe-iOS: 간다. 아요. 알치기알치기야야야🍳 간다. 아요. 알치기알치기야야야🍳. Contribute to TeamCatchMe/CatchMe-RxMe-iOS development by creating an account on GitHub. github.com - ..

    [iOS] Storyboard 없이 코드로 프로젝트 시작하기!

    [iOS] Storyboard 없이 코드로 프로젝트 시작하기!

    Storyboard 없이 코드로 프로젝트 시작하기! 스토리보드없이 코드로 개발을 시작하면서 세팅을 해줘야 할 때 잊지 말아야 하는 것들이 있는데 매번 까먹어서 정리를 합니다! 1. Main.storyboard 파일 삭제해주기 2. Targets -> General 에서 Main Interface 삭제해주기 -> Targets에서 삭제해주면 info.plist의 Main storyboard file base name도 알아서 삭제가 됩니다! 3. info.plist -> Application Scene Manifest -> Storyboard Name 삭제하기 4. SceneDelegate에 rootVC 설정해주기 : 기존에 있던 ViewController()를 지우고 새로운 VC을 만들었을 경우, roo..

    [iOS] Alamofire 가볍게 톺아보기

    [iOS] Alamofire 가볍게 톺아보기

    Alamofire 가볍게 톺아보기 노션 링크를 눌러보세요... https://huree-can-do-it.notion.site/1-Alamofire-258abd3b646d4947bb773a9521b2083e

    [iOS] App에 Google Analytics 사용해보기

    [iOS] App에 Google Analytics 사용해보기

    Get Started | Analytics for Firebase - iOS | Google Developers Get Started | Analytics for Firebase - iOS | Google Developers Get Started The Firebase SDK collects usage and behavior data for your app. The SDK logs two primary types of information: Events: What is happening in your app, such as user actions, system events, or errors. User properties: Attributes you define to desc developers.goog..

    [iOS] Bounds 와 Frame 총정리

    [iOS] Bounds 와 Frame 총정리

    노션으로 보면 보기 좋아요...ㅎ -> 눌러눌러 쉽게 이해되라고 영상을 가져와봤다. 이해해라. 알아서. 아쉬우니까,,, 움짤로 만나부자~~ 참고 링크 - https://babbab2.tistory.com/44?category=831129 iOS) Frame vs Bounds 제대로 이해하기 (1/3) 안녕하세요 :D 소들입니다 후후......... 오늘은 Frame과 Bounds에 대해 알아볼 거예욥...! 그 있잖음.. UIView에 등장하는 두 놈... 이전 포스팅 에서 CGRect는 View의 위치(origin)와 크기(size)를 나타내기 위.. babbab2.tistory.com https://zeddios.tistory.com/203 iOS ) Frame과 Bounds의 차이 (1/2) 안녕하..

    [iOS] MapKit 사용해서 위치 자동완성 검색 기능 구현해보기

    [iOS] MapKit 사용해서 위치 자동완성 검색 기능 구현해보기

    애플 기본 날씨앱을 클론코딩을 하면서 MapKit을 통해 위치 자동완성 검색 기능을 구현해보았습니다. MapKit 이 뭘까요? 우선 애플 공식 문서를 확인해볼까여.. MapKit은 다양한 기능을 제공하지만 (지도나 인공위성 사진을 사용할 수도 있고, 특정 위치를 불러올 수도 있는...) 저는 그 중에서도 사용자가 목적지 또는 관심 지점을 쉽게 검색할 수 있도록 텍스트 완료(자동 완성) 기능을 사용해보았습니다. 저는 SearchBar에 검색을 갈기면 결과가 해당 VC의 TableView에 뜨도록 구조를 잡아줬습니다. 즉, UISearchBarDelegate, UITableViewDelegate, UITableViewDataSource 다 채택해줬다는 뜻. import MapKit 을 해주고 시작합니다. 단..

    [iOS] Blur Effect 사용해보기

    [iOS] Blur Effect 사용해보기

    Blur Effect 사용해보기 → 도시 검색뷰 UI 만들려고 뽀시락대다보니,, 아무리 alpha 값을 줘도 뒷배경이 불투명해지는 게 아니라 점점 걍 투명해지더라구요..? 엥 그게 아닌데..? 그래서 찾아보니 Blur Effect를 줘야 하는 것 같더라구여들. 우선, ui 설계는 이렇습니다. search bar가 있는 부분에 ui view를 하나 따로 깔아줬습니다. 전체 코드 먼저 봐봅시다! // MARK: - Properties let topView = UIView().then { $0.backgroundColor = UIColor.lightGray.withAlphaComponent(0.7) } let searchTV = UITableView().then { $0.backgroundColor = .cl..

    [iOS] UIButton에 NSMutableAttributedString 적용해보기

    [iOS] UIButton에 NSMutableAttributedString 적용해보기

    UIButton에 NSMutableAttributedString 적용해보기 오늘은 애플 기본 날씨앱의 위 사진과 같은 버튼을 만드는 방법에 대해 정리해보려고 합니다! 누르면 섭씨와 화씨로 온도를 바꿔주면서 버튼의 특정 부분의 색이 변하는 버튼입니다. NSMutableAttributedString을 통해서 문자열의 특정 부분의 색상이나 폰트 등을 바꿔줄 수 있었는데 버튼도 이와 마찬가지입니다. 우선, 버튼 컴포넌트에 대한 코드부터 차례대로 봐봅시다. * Then 라이브러리를 사용했습니다. let switchButton = UIButton().then { // 버튼의 기본 특성 - 색상, 폰트, 동작 $0.setTitleColor(.white, for: .normal) $0.titleLabel?.font =..

    [iOS] TableView 최상단 cell, safeArea 무시하고 배치하는 법?

    [iOS] TableView 최상단 cell, safeArea 무시하고 배치하는 법?

    애플 기본 날씨 앱에서 해당 화면을 구현하기 위해 TableView의 최상단 cell이 safeArea까지 영역을 잡아주는 방법을 찾아서 정리합니다. contentInsetAdjustmentBehavior 을 사용해주면 됩니다. 결론만 말하자면,,, 이 아래 코드를 통해서 safeArea 영역을 무시하고 잡아줄 수 있습니다. tableView.contentInsetAdjustmentBehavior = .never 근데 그럼,, contentInsetAdjustmentBehavior는 뭘까요? -> 조정된 content Offset을 결정하는 행동...... 응? 그니까,,, -> 요 아이는 scroll View의 content area를 수정하기 위해서 SafeAreaInset을 사용하는 방법을 지정한다..

    [iOS] 데이터 직접 전달 방식(4) - NotificationCenter을 통해 전달

    [iOS] 데이터 직접 전달 방식(4) - NotificationCenter을 통해 전달

    ▶️Segue prepare 메소드를 통해 전달하는 방식 ▶️Property에 접근해서 전달하는 방식 ▶️ Delegation을 통해 전달하는 방식 뷰를 전환하며 데이터를 전달하는 방식은 크게 2가지로 나뉩니다. 바로 직접 전달과 간접 전달이죠. NotificationCenter를 통해 전달하는 방식은 직접 전달 방식에 해당합니다. 🔆 SecondVC의 textField의 text를 VC의 textLabel로 전달할 거에요! VC : addObserver -> notification을 관찰한다. (전달받은 신호를 관찰해 함수를 실행) SecondVC : post -> notification을 뿌린다. (원하는 데이터를 전달) 1️⃣ NotificationCenter post 해주기 Notification..

    [iOS] NotificationCenter?

    [iOS] NotificationCenter?

    🔹 Notification? observer들에게 전달되는 구조체로 정보가 담겨있고, 해당 알림을 등록한 observer에게만 전달됩니다. 구조체는 아래와 같이 구성되어 있습니다. 1️⃣ name : 전달하고자 하는 notification의 이름 (이걸 통해 알림을 식별) 2️⃣ object : 전달하고자 하는 데이터(객체) (없으면 nil) 3️⃣ userInfo : notification과 관련된 값 (없으면 nil) = extra data를 보내는데 사용 가능 🔹 NotificationCenter? (=NSNotificationCenter) notification이 오면 Observer Pattern을 통해서 등록된 observer들에게 notification을 전달하기 위해 사용하는 클래스입니다...

    [iOS] Moya가 모야? - Moya로 Get 통신하기

    [iOS] Moya가 모야? - Moya로 Get 통신하기

    Moya Library Github - https://github.com/Moya/Moya 오늘은 Moya에 대해 공부를 해보았는데요! 우선, iOS에서는 URLSession을 통해서 기본적으로 네트워킹을 진행합니다. 여기서 한 단계 추상화시킨 방식이 우리가 많이 사용하고 있는 Alamofire 라이브러리입니다. URLSession을 기반으로 하고 있죠! 🤔 그렇다면 도대체 Moya가 몰까요? Moya는 이런 Alamofire에서 한 번 더 추상화하였으며, 일반적으로 열거형(enum)을 사용하여 네트워크 요청을 타입 안전(type-safe)한 방식으로 캡슐화하는데 초점을 맞춘 네트워킹 라이브러리입니다. ❓타입 안전한 방식(type-safe)이 몬데? 찾아보니 스위프트는 Type Safety Languag..

    [iOS] TextView - 플레이스홀더, 패딩, 글자 수 제한, 커서, 키보드 dismiss

    [iOS] TextView - 플레이스홀더, 패딩, 글자 수 제한, 커서, 키보드 dismiss

    📦 TextView - 플레이스홀더, 패딩, 글자 수 제한, 커서 색상, 키보드 dismiss 프로젝트를 하면서 TextView를 사용해 다양한 기능을 구현하게 되어 정리를 해봅니다! SnapKit과 Then 라이브러리를 사용하였습니다! Github - https://github.com/heerucan/iOS-Practice/tree/main/TextView%20Practice 우선, textView를 사용하려면 UITextViewDelegate 프로토콜을 해당 뷰컨에 채택해주고 위임처리를 해주어야 합니다. 1. Placeholder -> TextView는 TextField와 다르게 기본적으로 placeholder를 제공해주지 않기 때문에 textView.text를 통해 placeholder인 척 기능을..