본문 바로가기

SWIFT

(8)
Kakao Maps API with Swift iOS에서 카카오맵을 연동해보겠습니다. 다음 링크를 가서 SDK를 다운받고 설명을 읽어봅니다. https://apis.map.kakao.com/ios/guide/ 파일의 이름에 DaumMap이라고 나와 있네요. 이름 바꿀 생각도 없고, Swift로 제공할 생각도 없어보입니다. 네이버는 CocoaPods로 제공하던데 카카오는 좀 귀찮네요. 파일을 다운받았으면 다음 링크에서 키를 발급 받습니다. https://developers.kakao.com/ Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다. developers.kakao.com 어플리케이션을 추가하고 iOS 플랫폼을 등록합니다. 앱..
Alamofire 간단하게 사용하기 Rest API를 호출하기 위해 가장 유명한 Swift 라이브러리인 Alamofire를 사용해보겠습니다. Alamofire에 대한 정보는 다음 주소에서 확인할 수 있습니다. https://github.com/Alamofire/Alamofire Alamofire/Alamofire Elegant HTTP Networking in Swift. Contribute to Alamofire/Alamofire development by creating an account on GitHub. github.com 우선 CocoaPods를 이용하여 설치를 진행하겠습니다. 테스트에 사용할 API를 curl을 통해 다음과 같이 확인하였습니다. 이제 확인한 API를 Alamofire를 통해 사용해보겠습니다. // // Rest..
위치서비스를 위한 권한 상태값 가져오기 위치서비스를 사용할 때 사용자에게 요청한 권한에 대한 상태값 정보가 필요할때가 있습니다. 이 상태정보는 코어로케이션의 CLLocationManager.authorizationStatus() 함수를 통해 알아낼 수 있습니다. enum CLAuthorizationStatus rawValue value description 0 notDetermined 사용자가 아직 아무런 결정도 하지 않은 상태 1 restricted 위치정보를 사용할 수 있는 권한이 없는 상태 2 denied 사용자가 권한을 명시적으로 거부했거나 설정에서 위치 서비스가 비활성화되어 있는 상태, 위치접근허용: 안 함 3 authorizedAlways 사용자가 언제든지 자신의 위치를 사용할 수 있는 권한이 있는 상태, 위치접근허용: 항상 4 a..
Location updates in Background Modes 위치정보를 Background Modes에서 가져오는 것을 구현해보겠습니다. 다음 그림과 같이 Capabilities에서 Location updates를 체크합니다. info.plist에 다음을 정의합니다. 테스트가 아니고 실제 정보를 입력할때는 사용자에게 보이는 정보니 왜 위치정보를 얻기위한 권한이 필요한지 설명을 넣어주면 됩니다. NSLocationWhenInUseUsageDescription When In Use Usage NSLocationAlwaysAndWhenInUseUsageDescription Always and When In Use Usage 2개다 정의해야 되면 하지 않으면 콘솔에 다음과 같은 오류 메시지가 나옵니다. This app has attempted to access priva..
Migration in Realm Realm 데이터베이스를 다음과 같은 Schema로 사용하고 있었습니다. 이 Schema에 데이터 생성일자 컬럼을 추가하고 싶어 다음과 같이 Model객체를 수정하였습니다. // // LocationInfo.swift // Sample // // Created by francis on 2020/04/10. // Copyright © 2020 Aircook. All rights reserved. // import RealmSwift @objcMembers class LocationInfo: Object, NSCopying { dynamic var id: Int = 0 dynamic var latitude: String = "0.0000000" dynamic var longitude: String = "0...
Use Realm in Swift 아이폰 내부에서 자료를 저장해야 될 필요가 생겼습니다. CoreData는 사용할 생각도 안했고, UserDefaults, SQLite 직접 사용등을 고민하다 Realm이란 오픈소스 데이터베이스를 발견하여 사용해보기로 하고 샘플 코드를 작성해 보았습니다. 다음 링크를 가보면 알 수 있지만 Java, Kotlin, Swift, Objective-C, JavaScript에서 사용이 가능할 정도로 많은 플랫폼을 지원해주고 있으며, ORM형태로 코드를 작성하여 데이터를 관리합니다. 여러 글들을 읽어보면 속도가 아주 빠르다고 합니다. 그래서 사용해보자고 결심했습니다. ㅎㅎ https://realm.io/kr/products/realm-database/ Realm Database Loved by developers ..
WKWebView 예전에 만들었던 앱소스를 수정할 일이 생겼습니다.Xcode 7을 9로 업데이트하고 기존 Swift 2로 짠 코드를 Swift 4로 변경하였습니다. 사용한 Xcode 버전은 9.2 (9C40b) 입니다.(정말 xx같은 Apple은 1년마다 한번씩 언어를 바꾸네요. 전 예전 Objective-C ARC 나오기전부터 작업했었는데 개발자 무시하는 Apple의 정책에 대해서는 욕나오네요. iOS개발은 연차가 쌓여도 학습량은 줄지 않아요. ㅠㅠ)Xcode 9에서 보니 Safe Area라는 개념이 새로 나와서storyboard에서 수정할려고 하다 보니 다음과 같이 Web View가 deprecated된다고 나와 있습니다. 그래서 WebKit View 를 사용해보기로 마음먹고 진행해보았습니다. (다시 욕나오는 상황입니..
AES, SHA 암호화 5, Swift 요즘 아이폰 개발을 해야되서 Swift 언어를 공부하고 이것저것 정보를 수집하고 있습니다.CocoaPods라는 Maven 비슷한 오픈소스 관리 프로그램이 있는데 이걸 적용해보다가 암호화 관련 라이브러리인 CryptoSwift (https://github.com/krzyzanowskim/CryptoSwift)란 오픈소스를 찾아 이전에 정리했던 암호화에 이어 같은 결과를 나오게 코드를 작성해보았습니다.아직 Swift자체에 대한 이해도 높지 않아... 코드가 이상할 수도 있습니다. ㅎㅎ 옵셔널.. 클로져.. 4년전에 조금 만졌던 Objective-C랑은 개념이 좀 다르네요... 메모리 카운팅 없어져서 좋기도 하구요..Xcode7.3 버전임으로 Swift는 2.2버전입니다.간단하게 Single View Appl..