728x90 ๋ฐ์ํ ๐ iOS/iOS49 [iOS] ์ ํ์ง๋์ ๋ฒ์ ํ์ํ๊ณ ์์ ํน์ ์์น๊ฐ ์ํด์๋์ง ํ์ธํ๊ธฐ(Make range and Verify location is inside with MapKit) ์๋ ํ์ธ์ Foma ์ ๋๋ค! ์ ๋ฒ ์๊ฐ์๋ ์ํ๋ ์์น๋ฅผ ํ์ํ๊ณ ์ด๋ฏธ์ง์ ๋ ์ด๋ธ์ ๋ฃ์ด๋ณด์๋๋ฐ์. (ํน์ ์๋ณด์ ๋ถ๋ค์ ์ฌ๊ธฐ ๋ฅผ ํตํด์ ๋ณด๊ณ ์์ฃผ์ธ์!) ์ด๋ฒ ์๊ฐ์๋ ์ํ๋ ์์น๊ฐ ํน์ ๋ฒ์ ์์ ์ํด์๋์ง ์๋์ง ํ์ธํด๋ณด๊ฒ ์ต๋๋ค. MKMapViewDelegate ์ถ๊ฐํ๊ธฐ ๊ฐ์ฅ ๋จผ์ ViewController์ MKMapViewDelegate๋ฅผ ์ฑํํด์ฃผ์ธ์. (๋น์ฐํ import MapKit๋ ํด์ผ๊ฒ ์ฃ ?) class ViewController: UIViewController ,MKMapViewDelegate{...} ๋ง์ปค ์ค์ ํ๊ธฐ ์ํ๋ ์์น์ ํ์ํ ๋ง์ปค๋ฅผ ๋ง๋ค์ด์ฃผ์ธ์. ์ ๋ฒ ์๊ฐ์๋ ํ๋์ ๊ตฌ์ญ๋ง ํ์ง๋ง ํ๋์ ๊ตฌ์ญ ๊ทผ์ฒ์ธ ์คํ๋ฒ ์ค๊น์ง ์ถ๊ฐํ๊ฒ ์ต๋๋ค. let mark1 = Marker( title: .. 2021. 3. 18. [iOS] ์ ํ์ง๋์ ์ํ๋ ์์น์ ๊ธ์จ์ ์ด๋ฏธ์ง ๋ฃ๊ธฐ ์๋ ํ์ธ์ Foma ์ ๋๋ค! ์ ๋ฒ ์๊ฐ์๋ ์ ํ์ง๋์ ์ํ๋ ์์น ํ์ํ๋ ๋ฒ์ ๋ํด์ ์์๋ณด์๋๋ฐ์. (ํน์ ์๋ณด์ ๋ถ๋ค์ ์ฌ๊ธฐ ๋ฅผ ํตํด์ ๋ณด๊ณ ์์ฃผ์ธ์!) ์ฌ๊ธฐ์ ๋ ์ ๊ทธ๋ ์ด๋ ํด์ ์ํ๋ ์์น์ ์ ๋ ๊ฒ ์ ํด์ง ๋งํฌ ํ์๋ง๊ณ ๋ด๊ฐ ์ํ๋ ์ด๋ฏธ์ง๋ ๋ ์ด๋ธ์ ๋ฃ์ ์ ์์๊น? ํ๋ค๊ฐ ์ฐพ์๋ด์ ์ ๋ฆฌํ๊ฒ ๋์์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ MKMapViewDelegate ๋จผ์ ์ง๋ ์๊ฐ์ ๋งํฌ๋ฅผ ํ์ํ๋ ViewController์ MKMapViewDelegate๋ฅผ ์ฑํํด์ฃผ์ธ์! class ViewController: UIViewController ,MKMapViewDelegate{ override func viewDidLoad() { super.viewDidLoad() mapView.delegate = self.. 2021. 3. 16. [iOS] ์ ํ์ง๋ ์ด์ฉํด์ ์ํ๋ ์์น ํ์ํ๊ธฐ(Mark Location Using MapKit) ์๋ ํ์ธ์ Foma ์ ๋๋ค. ์ค๋ ์์๋ณผ๊ฑด ์ฝ์ฝ์ ํฐ์น ํ๋ ์์ํฌ์์ ์ ๊ณตํ๋ MapKit์ ์ด์ฉํด์ ์ํ๋ ์์น์ ๋งํฌ๋ฅผ ํด๋ณผ๊ฑฐ์์. ๋ฐ๋ก ์์ํ๊ฒ ์ต๋๋ค~ Storyboard ๊ฐ์ฅ ๋จผ์ ์คํ ๋ฆฌ๋ณด๋๋ก ์ด๋ํด์ Map Kit View๋ฅผ ๊ฒ์ํ ๋ค ์๋์ ๊ฐ์ด ViewController์ ์ธํ ํด์ฃผ์ธ์! ViewController ๋ทฐ์ปจํธ๋กค๋ฌ๋ก ์์ ์คํ ๋ฆฌ๋ณด๋์์ ๋ง๋ค์ด์ค mapkitview๋ฅผ ์ฐ๊ฒฐํด์ฃผ์ธ์! @IBOutlet weak var mapView: MKMapView! Marker ๊ทธ ๋ค์ ์ํ๋ ์์น์ ํ์๋ Marker ํด๋์ค๋ฅผ ๋ง๋ค์ด์ค๋๋ค. title๊ณผ subtitle์ ์ํ๋ ์์น๋ฅผ ํฐ์นํ์๋ ์ด๋ฆ๊ณผ ์ค๋ช ์ ๋ปํ๊ตฌ์. coordinate๋ ์ํ๋ ์์น๋ฅผ ์๋์ ๊ฒฝ๋๋ก ๋ฃ์ด์ฃผ๋ ๊ฒ์ ๋๋ค. impor.. 2021. 3. 15. [iOS] ์ํ๋ ์ปจํธ๋กค๋ฌ๋ก ๋๋์๊ฐ๊ธฐ(feat.unwind) ์๋ ํ์ธ์ Foma ์ ๋๋ค! ์ค๋์ ์ํ๋ ์ปจํธ๋กค๋ฌ๋ก ๋๋์๊ฐ๋ ๋ฐฉ๋ฒ์ธ unwind์ ๋ํด์ ์์๋ณด๋ ค๊ณ ํฉ๋๋ค! ๋ฐ๋ก ์์ํ ๊ฒ์~ (๋ค๋น๊ฒ์ด์ ์ปจํธ๋กค๋ฌ๋ก ์ด๋ํ์ จ์ ๊ฒฝ์ฐ์๋ง ํด๋น๋ฉ๋๋ค ใ ) ์๋ ๊ทธ๋ฆผ์ฒ๋ผ A -> B -> C -> D ๋ก ์ด๋ํ๋ ๋ทฐ์ปจํธ๋กค๋ฌ๋ค์ด ์๋ค๊ณ ๊ฐ์ ํ ๊ฒ์~ ๊ทธ๋ฐ๋ฐ ์ฌ๊ธฐ์ ๋ด๊ฐ ๋ง์ฝ D๊น์ง ์ด๋ํ๊ณ A๋ก ๋์๊ฐ๊ณ ์ถ๋ค๋ฉด ์ด๋ป๊ฒ ํ ๊น์? AViewController AViewController์ ์๋์ ๊ฐ์ด ์ง์ IBAction์ ๋ง๋ค์ด์ค๋๋ค. @IBAction func unwindToAViewController (segue : UIStoryboardSegue) { } DViewController ๊ทธ ๋ค์ ์คํ ๋ฆฌ๋ณด๋๋ก ์ด๋ํ์ ์ DViewController์ ์ ๋ถ๋ถ์ ๊ฐ์ฅ ์ฒซ๋ฒ์งธ ์.. 2021. 3. 3. [iOS] UserDefaults์ ๊ฐ์ฒด ์ ์ฅํ๊ธฐ (Encode & Decode Object in UserDefaults Data ) ์๋ ํ์ธ์ Foma ์ ๋๋ค! ์ค๋์ UserDefaults์ ๊ฐ์ฒด๋ฅผ ์ ์ฅํ๋ ๋ฒ์ ๋ํด์ ์์๋ณผ๊ฑด๋ฐ์. ์ ๋ UserDefaults์ ๋ชจ๋ธ ์์ฒด๋ฅผ ๋ฃ๊ณ ์ ์ฅํ๊ณ ์ถ์๋ฐ ๊ทธ๊ฒ ์ ์๋๋๋ผ๊ตฌ์... ๊ทธ๋์ ์ด์ฌํ ๊ตฌ๊ธ๋งํด์ ์๊ฒ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค! ๋ฐ๋ก ์์ํ ๊ฒ์! Food ์ ๋ ์ ๊ฐ ๋จน์๋ ์์์ ์ด๋ฆ,๊ฐ๊ฒฉ,๋ง์์๋์ง ์ฌ๋ถ๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ๊ฐ์ง๊ณ ์๋ ์์์ด๋ผ๋ ๊ตฌ์กฐ์ฒด๋ฅผ ๋ง๋ค๊ฒ์! Codable์ UserDefaults์ ์ ์ฅํ๊ณ ๋นผ์ค๊ธฐ ์ํด์ Encode,Decode ๊ณผ์ ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ์ฑํํ์๊ณ Equatable์ Food๊ฐ์ฒด๋ฅผ ์๋ก ๋น๊ตํ๊ธฐ ์ํด ์ฑํํ์์ต๋๋ค. import Foundation struct Food:Codable,Equatable{ let name:String let pri.. 2021. 2. 26. [iOS] ๊ฒ์ํ๊ณ ๊ฒ์ํ ๊ธ์ ํํฐ๋งํ ๊ฐ์ฒด ํ ์ด๋ธ๋ทฐ์ ๋์ฐ๊ธฐ(Search Object Filtering) ์๋ ํ์ธ์ Foma ์ ๋๋ค! ์ธ์ ๋ ๊ทธ๋ฌ๋ฏ ์ ๋ชฉ ์ ํ๊ธฐ๊ฐ ๋๋ฌด ํ๋๋ค์... ์ค๋์ ์์๋ณผ๊ฑด ์์น๋ฐ์ ๊ฒ์ํ๊ณ ๊ฒ์ํ ๊ธ์๊ฐ ํฌํจ๋ ๊ฒ๋ค์ ํํฐ๋งํ ๊ฒ์ ํ ์ด๋ธ๋ทฐ์ ๋์ฐ๋ ๊ฒ์ ๋๋ค. ์ด๋ฒ ๊ธ์ ์ ๋ฒ ์๊ฐ์ ์์ ํ์ฑํ๋๋ฒ์์ ๋ฐฐ์ ๋ ๋๋ผ์ ๋์ ์ด๋ฆ๋ค์ด ๋ด๊ธด ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ๊ฒ ์ต๋๋ค. ํน์ ๋ชป๋ณด์ ๋ถ๋ค์ ์ฌ๊ธฐ ์์ ๋ณด๊ณ ์์ฃผ์ธ์! ๋ฐ๋ก ์์ํ ๊ฒ์~ Preview Storyboard ์๋์ ๊ฐ์ด ํ ์ด๋ธ๋ทฐ๋ฅผ ๋ง๋ค์ด์ค๋๋ค. (์ฃผ์ํ์ค ์ ์ ๋ฐ๋์ UIViewController๋ก ๋ง๋์ ํ์ TableView๋ฅผ AutoLayoutํด์ฃผ์ธ์!) ๊ทธ๋ฆฌ๊ณค ํด๋น ํ ์ด๋ธ๋ทฐ๋ฅผ control์ ๋๋ฅด๊ณ ๋๋๊ทธํด์ ViewController์ ๊ฐ์ ธ๊ฐ์ dataSource๋ฅผ ์ฒดํฌํด์ฃผ์ธ์. AddViewController ์ ์ผ ๋จผ์ ํ .. 2021. 2. 25. [iOS] ํ์ฌ ์์น ๋ ์จ & 24์๊ฐ & 7์ผ ๋ฐ์ดํฐ ๋์ฐ๊ธฐ - 2(Current Location Get weather 24 hours a day, 2 week) ์๋ ํ์ธ์ Foma ์ ๋๋ค! ์ ๋ฒ ์๊ฐ์ ๋ ์จ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๋ ๊ณผ์ ์ ํ์๋๋ฐ์. (ํน์ ๋ชป๋ณด์ ๋ถ๋ค์ ์ฌ๊ธฐ ๋ก ์ด๋ํด์ ๋จผ์ ๋ณด๊ณ ์์ฃผ์ธ์!) ์ด๋ฒ์๋ ๋ฐ์์จ ๋ ์จ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํด์ ํ๋ฉด์ ๋์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค! WeatherView ๋จผ์ WeatherView๋ก ์ด๋ํด์ ํ์ฌ,24์๊ฐ,์ฃผ๊ฐ ๋ ์จ๋ฅผ ๋ด์ ๋ณ์๋ค์ ๋ง๋ค์ด์ค๋๋ค. var currentWeather:CurrentWeather! var hourlyWeathers:[HourlyWeather] = [] var weeklyWeathers:[WeeklyWeather] = [] ๋จผ์ ํ์ฌ ๋ ์จ ๋ฐ์ดํฐ๋ฅผ ๊ฐ ๋ ์ด๋ธ์ ๋ง๊ฒ ์ธํ ํด์ค๋๋ค. func setupCurrentWeather() { self.cityLabel.text = currentWeather.c.. 2021. 2. 24. [iOS] ํ์ฌ ์์น ๋ ์จ & 24์๊ฐ & 7์ผ ๋ฐ์ดํฐ ๋์ฐ๊ธฐ - 1(Current Location Get weather 24 hours a day, 2 week) ์๋ ํ์ธ์ Foma ์ ๋๋ค!! ์ ๋ฒ ์๊ฐ์ ํ์ฌ ์์น์ ๋ํ ๊ถํ์ ๋ฐ์์ค๊ณ ํ์ฌ ์์น๋ฅผ ์์๋ณด๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์์๋ณด์๋๋ฐ์. ํน์๋ผ๋ ๋ชป๋ณด์ ๋ถ๋ค์ ์ฌ๊ธฐ ๋ก ์ด๋ํ์ ์ ๋ณด๊ณ ์์ฃผ์ธ์~ ์ค๋์ ํ์ฌ ์์น์ ๋ ์จ์ ์์ผ๋ก์ 24์๊ฐ,์์ผ๋ก์ ์ผ์ฃผ์ผ๊ฐ ๋ ์จ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์์ ํ๋ฉด์ ๋์๋ณผ๊ฑฐ์์. ๋ฐ๋ก ์์ํ ๊ฒ์~ Preview Weatherbit.io ๋ ์จ ์ ๋ณด๋ฅผ ๋ฐ๋ ์๋น์ค๋ ์๋์ ๊ฐ์ด weatherbit์์ ์ ๊ณตํ๋ API๋ฅผ ์ด์ฉํ์ต๋๋ค. Weatherbit | Weather API - Historical Weather API Simple. Powerful. Reliable. Getting access to weather data or historical weather data has never be.. 2021. 2. 22. [iOS] ์ฑ์ฌ์ฉ์ค ์์น ๊ถํ ๋ฐ์์ค๊ณ ํ์ฌ ์์น ์์๋ด๊ธฐ ( Request Location Authorization & Detect Current Location) ์๋ ํ์ธ์ Foma ์ ๋๋ค! ์ค๋ ์์๋ณผ๊ฑด ์ง๋ ์๊ฐ์ ์ด์ด์ ๋ ์จ์ ๊ด๋ จ๋ ์ ๋ณด์ธ๋ฐ์. ํ์ฌ ๋ด๊ฐ ์๋ ์ง์ญ์ ๋ ์จ๋ฅผ ์๊ธฐ ์ํด์ ํ์ฌ ์์น๋ฅผ ์์์ผ ํ์์์? ํ์ฌ ์์น๋ฅผ ์๊ธฐ ์ํด์ ์ฌ์ฉ์์ ๋์๊ฐ ํ์ํฉ๋๋ค. ๊ทธ๋์ ์ค๋์ ์ฌ์ฉ์์ ์์น ๊ถํ ๋ฐ๊ธฐ์ ๋๋ค! ๋ฐ๋ก ์์ํ ๊ฒ์! Info.plist ๊ฐ์ฅ ๋จผ์ info.plist์์ ์ฑ์ ์ฌ์ฉํ๋๋์ ์์น๋ฅผ ๋ฐ์๋ ๋๋๋ ๊ถํ์ ์ค์ ํด์ค๋๋ค. NSLocationWhenInUseUsageDescription ์์น ์ข ์ธ๊ฒ? ์๋์ ๊ฐ์ด ์ถ๊ฐํ์ ๋ ๋ฉ๋๋ค! ๊ทธ๋ฆฌ๊ณ ๋ฐ๋ก ViewController๋ก ๊ฐ์ค๋๋ค. (ํธ์์ WeatherViewController๋ผ๊ณ ๋ถ๋ฅผ๊ฒ์!) WeatherViewController ๋จผ์ CoreLocation์ import ํด์ค๋.. 2021. 2. 19. [iOS]Swift๋ก ์์ ํ์ผ ํ์ฑํด์ ํ ์ด๋ธ๋ทฐ์ ๋์ฐ๊ธฐ(Parse Excel with Swift) ์๋ ํ์ธ์ Foma ์ ๋๋ค! ์ค๋์ ํ์์ ์์ ์ ์๋ ์ ๋ณด๋ฅผ ์ด๋ป๊ฒ ๊ด๋ฆฌํ ์ ์์๊น? ๋ฅผ ์๊ฐํ๋ค๊ฐ ์์ ์ ํ์ฑํ๋๋ฒ์ ๋ํด์ ์๊ฒ๋ผ์ ์ ๋ณด๋ฅผ ๊ณต์ ํ๋ ค๊ณ ํฉ๋๋ค! ๋ฐ๋ก ์์ํ ๊ฒ์~ Preview Excel ๋จผ์ Excel ํ์ผ์ธ .csv ํ์ผ์ ์ค๋นํด์ฃผ์ธ์! ์ ๋ ๋ค์๊ณผ ๊ฐ์ด ๋๋ผ์ ๋์ ๊ทธ๋ฆฌ๊ณ ๋๋ผ์ฝ๋๊ฐ ์๋ ์์ ์ ๋ณด๋ฅผ ์ค๋นํ์ต๋๋ค. (ํน์ ํ์ํ์ ๋ถ๋ค์ ์ํด ํ์ผ์ ์ฒจ๋ถํด๋๊ฒ ์ต๋๋ค!) Xcode ์ด ํ์ผ์ Xcode ํ๋ก์ ํธ ์์ ๋ฃ์ด์ฃผ์ธ์! ๊ทธ๋ฌ๋ฉด ์์ ์์ ์๋ ์ ๋ณด๋ค์ด Xcode ์์์ ์๋์ ๊ฐ์ด ๋ณด์ด๊ฒ ๋ฉ๋๋ค. Storyboard ๋๋ผ์ด๋ฆ๊ณผ ๋์๋ฅผ ๋์ธ ํ ์ด๋ธ๋ทฐ ์ปจํธ๋กค๋ฌ๋ฅผ ๋ง๋ค์ด์ค์๋ค! ํ ์ด๋ธ๋ทฐ์ ์์ Style์ Subtitle๋ก ๋ฐ๊พธ๋ฉด ์๋์ ๊ฐ์ด ์๋์ผ๋ก Title๊ณผ Subtitle์ด .. 2021. 2. 15. [iOS ๋ฉด์ ์ง๋ฌธ] KVO๋? ์๋ ํ์ธ์ Foma ์ ๋๋ค. ์ค๋์ iOS๋ฉด์ ์ง๋ฌธ์ ์์ฃผ ๋์ค๋ KVO์ ๋ํด์ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. KVO๋? ๊ณต์ ๋ฌธ์์๋ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋์ด์์ต๋๋ค. ํด์ํด๋ณด๋ฉด KVO๋ Key Value Observing์ ์ค์๋ง์ด๊ณ ๋ค๋ฅธ ๊ฐ์ฒด์ ๋ณ๊ฒฝ์ฌํญ์ ์๋ ค์ฃผ๋ ์ฝ์ฝ์ ํ๋ก๊ทธ๋๋ฐ ํจํด์ด๋ผ๊ณ ํ๋ค์. ํ๋กํผํฐ ์ต์ ๋ฒ willSet๊ณผ disSet์ด๋ ์ ์ฌํ์ง๋ง ์ธ๋ถ์ ๊ด์ฐฐ์๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด ๋ค๋ฆ ๋๋ค. ๊ฐ๋จํ๊ฒ ์ค๋ช ๋๋ฆฌ๋ฉด ๊ด์ฐฐํ๊ณ ์ถ์ ๊ฐ์ฒด์ ์ต์ ๋ฒ๋ฅผ ๋ฌ๊ณ ๊ทธ ๊ฐ์ด ๋ณํ ๋ ๋ฐ๋๊ธฐ์ ๊ฐ์ด๋ ๋ฐ๋๊ฐ์ ์๋ ค์ฃผ๋ ๊ฒ์ด๋ผ๊ณ ๋ณด๋ฉด ๋ฉ๋๋ค. ์ฌ์ฉ ๋ฐฉ๋ฒ KVO๋ Objective-C ๋ฐํ์์ ์์กดํฉ๋๋ค. ๊ณ ๋ก ์์ @objc dynamic๊ฐ ๋ถ์ NSObject Class๋ก ์์ฑํด์ฃผ์ด์ผํฉ๋๋ค. ๋จผ์ Swift 4 ์ด์ ์๋ ์ด๋ป.. 2020. 12. 29. [Library] ReactiveX์ ๋ํด ๊ฐ๋จํ๊ฒ ์์๋ณด๊ธฐ ์๋ ํ์ธ์ Foma ์ ๋๋ค. ์ ๋ ์์ฆ์ RxSwift๋ฅผ ์์ํ๊ฒ ๋์๋๋ฐ์. RxSwift์์ Rx๋ฅผ ํํํ๋ Reactive eXtension์ ๋ํด์ ๋จผ์ ๊ฐ๋จํ๊ฒ ์์๋ณด๋ฉด ์ข์ ๊ฑฐ ๊ฐ๋ค๋ ์๊ฐ์ ๊ณต๋ถํ ๊ฒ์ ์ ๋ฆฌํ๋ ค๊ณ ํฉ๋๋ค. Reactive X๋? Microsoft์์ "Volta" ๋ผ๋ ํ๋ก์ ํธ๋ฅผ ์งํ์ค์ ๋ง๋ค์ด์ง API์ ๋๋ค. Reactive X๋ฅผ ํ๋ง๋๋ก ์ ์ํ๋ฉด ์๋์ ๊ฐ์ต๋๋ค. "๊ด์ฐฐ ๊ฐ๋ฅํ ํ๋ฆ์ ์ฌ์ฉํ๋ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์ ์ํ API" ๋ํ ์ต์ ๋ฒ ํจํด๊ณผ ๋ฐ๋ณต์ ํจํด์ ํฉ์ณ๋์ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ด๋ผ๊ณ ๋งํฉ๋๋ค. ํ๋ก ํธ์๋ ๋ฐฑ์๋ ์ด๋์์๋ ์ฌ์ฉํ ์ ์๊ณ JavaScript,Swift,Python ์ด๋ ํ๋ซํผ์ด๋ ์ง ๊ต์ฐจ๊ฐ ์ฝ๊ฒ ์ด๋ฃจ์ด์ง ์ ์๋ค๊ณ ํ๋ค์. ์ฅ์ 4๊ฐ์ง๋ก ๋งํ ์ ์์ต.. 2020. 12. 24. ์ด์ 1 2 3 4 5 ๋ค์ 728x90 ๋ฐ์ํ