분류 전체보기

    swift - CoreLocation을 사용해서 현재 위치(위도, 경도) 가져오기

    프로젝트를 하던 중 현재 위치를 사용해야 할 일이 생겼다! kakaoLocal API 등이 있지만, 일단은 현재 위치만 가져오면 되기 때문에 CoreLocation을 사용하기로 했습니다. 먼저 Info.plist로 달려갑니다. 현재 위치사용 동의를 구하는 내용을 추가해 줍니다 Privacy - Location When In Use Usage Description를 추가하고 보여줄 Value를 적으면 돼요! // ViewController.swift import UIKit import CoreLocation class ConfusionViewController: UIViewController, CLLocationManagerDelegate { var locationManager = CLLocationMan..

    swift - 컬렉션뷰 버튼 토글하기!

    망딕이 구현해야 할 것은 다음과 같다 지역 버튼은 최대 1개까지 선택이 가능하다 클릭된 버튼 : 빨간색, 클릭되지 않은 버튼 : 회색 회색 버튼을 클릭 - 다른 빨간색 버튼이 있다면 회색으로 바꾸고, 클릭된 버튼을 빨간색으로 변경! 빨간 버튼을 클릭 - 클릭된 버튼을 회색으로 변경! 그런데 저는 컬렉션뷰 셀에 버튼을 넣지 않고 버튼 같은(?) 것을 넣었습니다. UIView 안에 Label을 넣은... ㅋㅋ; 우선 RegionCell에서 두 가지를 체크할 겁니다! 첫 번째 : isSelected ("지역 버튼은 최대 1개까지 선택이 가능하다"를 해결) 두 번째 : clickCount ("빨간 버튼을 클릭 - 클릭된 버튼을 회색으로 변경!"을 해결) 저는 프로퍼티 옵저버를 사용할 겁니다! 먼저 RegionC..

    네트워크 - REST API vs RESTful API

    우선 API와 REST가 무엇인지 알아야 할 필요가 있다! API API는 응용 프로그램(애플리케이션)에서 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻합니다. 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공합니다. // 위키백과 음.. 쉽게 말하면 망딕과 TV가 있다고 생각해 봅시다. 망딕은 TV를 켜기 위해 리모콘을 사용했다! 망딕은 리모콘을 사용하여 볼륨을 높였다! 망딕 - 리모콘 - TV 이런 구조가 되겠죠? 여기서 리모콘을 API라고 생각해보면 이해하기 편할겁니다 ㅋㅋ 즉, API(리모콘)는 응용프로그램(망딕)과 운영체제 및 프로그래밍 언어가 제공하는 기능(TV) 사이에서 상호작용을 도와주는 역할을 합니다! REST : REp..

    네트워크 - HTTP, 그런데 Socket을 곁들인...

    HTTP ? HTTP : HyperText Transfer Protocol -> HTML 파일을 전송하는 프로토콜이라는 의미를 갖습니다. 기본적으로 HTTP 통신은 클라이언트 측에서 필요한 데이터가 있다면 서버에게 요청하고, 서버는 그 데이터에 응답한 뒤 바로 연결이 종료되는 방식입니다. 최근에는 Keep Alive 옵션을 사용하여 일정 기간 동안 연결을 유지하는 방식으로도 통신이 가능해졌다고 합니다 Socket 통신과 달리 HTTP 통신은 단방향 통신이기 때문에 클라이언트만 서버에게 요청할 수 있습니다! (서버는 클라이언트에게 요청 불가 ㅠㅠ) 바로 연결이 종료된다는 특징을 보면 서버의 부하를 줄여준다는 것을 알 수 있습니다 왜냐! Socket 처럼 계속 연결을 유지하는 것이 아니고 원하는 요청에 대해..

    swift - BottomSheet

    아래서 깔끔하게 튀어나오는(?) 바텀시트를 만들어 봅시다~!~! 우선 pod file에 pod 'MaterialComponents/BottomSheet'와 pod 'PanModal' 추가 후 pod install 그 다음 Main 스토리보드로 이동합니다! BottomSheet를 띄우기 위한 버튼을 하나 추가할게요 그 다음 TableView Controller를 추가해 주세요! 오른쪽 Attributes Inspector 에서 Content를 Static Cells로 바꿔주세요 그러면 이렇게 Cell이 추가되는데, 1개만 빼고 다 삭제해줄게요 (한 개 만들어 놓고 복붙할 예정 ㅋㅋ) BottomSheet에 보여질 내용을 만들어 줍니당 Cell들을 복붙하고 내용을 수정! 그럼 대충 이런 형태가 나와유 이제 ..

    swift - 키보드 화면 가림 방지 (IQKeyboardManagerSwift)

    가끔 앱 개발을 하다가 실행시키면 키보드가 화면을 가리는 경우가 발생합니다. 이럴 때 유용한 방법을 알려드릴게요! 엄청 쉬워요 ㅎㅎ 프로젝트 Podfile에 pod 'IQKeyboardManagerSwift' 를 추가하고 install 해주세요 import UIKit import IQKeyboardManagerSwift @main class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { IQKeyboardMana..