๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90
๋ฐ˜์‘ํ˜•

๐ŸŽ iOS138

[iOS/API] OneSignal์œผ๋กœ ํ‘ธ์‰ฌ์•Œ๋ฆผ ๋ณด๋‚ด๋ณด๊ธฐ(OneSignal Push Notification) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ ์›์‹œ๊ทธ๋„์ด๋ผ๋Š” ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•ด ํ‘ธ์‰ฌ์•Œ๋ฆผ์„ ๊ตฌํ˜„ํ•ด๋ณผ๊ฒŒ์š”! ๋ฐ”๋กœ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค~ KeyChainAccess ๋จผ์ € ํ‚ค์ฒด์ธ ์ ‘๊ทผ์œผ๋กœ ๊ฐ€์„œ ์ธ์ฆ ๊ธฐ๊ด€์—์„œ ์ธ์ฆ์„œ๋ฅผ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ์ž์‹ ์˜ ์ด๋ฉ”์ผ ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ๋””์Šคํฌ์— ์ €์žฅ๋จ์„ ํด๋ฆญํ•œ ๋’ค ๊ณ„์†์„ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”. ์ธ์ฆ์„œ๋ฅผ ์›ํ•˜๋Š” ์ด๋ฆ„์œผ๋กœ ์ง€์€ ๋‹ค์Œ ์ €์žฅํ•ด์ฃผ์„ธ์š”! ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŒŒ์ผ์ด ์ƒ๊ธธ๊ฑฐ์—์š”! Apple Developer ์ด์ œ ์• ํ”Œ ๊ฐœ๋ฐœ์ž ์‚ฌ์ดํŠธ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธ - Apple idmsa.apple.com Certificates,Identifiers & Profiles๋กœ ์ด๋™ํ•ด์ฃผ์„ธ์š”. ์™ผ์ชฝ ํƒญ์—์„œ Identifiers๋ฅผ ํด๋ฆญํ•ด์ฃผ์‹œ๊ณ  Identifiers + ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค. App IDs๋ฅผ ํด๋ฆญํ•ด์ฃผ์‹œ๊ณ  Continue๋ฅผ.. 2021. 3. 24.
[iOS/API] ๋„ค์ด๋ฒ„ API๋ฅผ ์ด์šฉํ•ด์„œ ์ฃผ์†Œ๋ฅผ ์œ„๋„,๊ฒฝ๋„๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ(NAVER CLOUD PLATFORM GEOCODING) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ ๋„ค์ด๋ฒ„ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์— ์žˆ๋Š” Geocoding ์„ ์ด์šฉํ•ด์„œ ์›ํ•˜๋Š” ์ฃผ์†Œ์˜ ์œ„๋„,๊ฒฝ๋„๊ฐ’์„ ๋ฐ›์•„์˜ฌ๊ฑฐ์—์š”! ์• ํ”Œ์—์„œ ์ œ๊ณตํ•˜๋Š” ์ง€์˜ค์ฝ”๋”ฉ๋„ ์žˆ์ง€๋งŒ ํ•œ๊ตญ ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์ž˜๋ชป๋œ ์ •๋ณด๊ฐ€ ๊ฝค ๋งŽ์ด ๋‚˜์˜ค๋”๋ผ๊ตฌ์š”. ๊ตฌ๊ธ€ API๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•˜๋‚˜...? ๊ณ ๋ฏผํ•˜๋Š”๋ฐ ๊ตฌ๊ธ€์€ 2๋งŒํšŒ๊นŒ์ง€ ๋ฌด๋ฃŒ๊ณ  ๊ทธ ์ด์ƒ๋˜๋ฉด ์œ ๋ฃŒ๋กœ ์ง€๋ถˆํ•ด์•ผ ๋˜๋”๋ผ๊ตฌ์š”. ํ˜น์‹œ๋‚˜ ํ•˜๊ณ  ๋„ค์ด๋ฒ„ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ ์„ ๋“ค์–ด๊ฐ€๋ดค๋”๋‹ˆ... 300๋งŒํšŒ๊นŒ์ง€ ๋ฌด๋ฃŒ....๐Ÿ˜ ๊ณ ๋ฏผํ• ๊ฑฐ ์—†์ด ๋ฐ”๋กœ ๋„ค์ด๋ฒ„ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ ์„ ์ด์šฉํ•˜๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~!! NAVER CLOUD PLATFORM ๋„ค์ด๋ฒ„ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์œผ๋กœ ์ด๋™ํ•ด์ฃผ์„ธ์š”! NAVER CLOUD PLATFORM cloud computing services for corporations,.. 2021. 3. 23.
[iOS ๋ฉด์ ‘์งˆ๋ฌธ] ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ์˜ ์ƒ๋ช…์ฃผ๊ธฐ (ViewController Life Cycle) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค! ์ €๋ฒˆ ์‹œ๊ฐ„์— ์•ฑ ์ƒ๋ช…์ฃผ๊ธฐ์— ๋Œ€ํ•ด์„œ ๋‹ค๋ฃฌ ์ ์ด ์žˆ๋Š”๋ฐ์š”. (ํ˜น์‹œ ์•ˆ๋ณด์‹  ๋ถ„๋“ค์€ ์—ฌ๊ธฐ ์—์„œ ๋ณด์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค!) ์˜ค๋Š˜์€ ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ ์ƒ๋ช…์ฃผ๊ธฐ์— ๋Œ€ํ•ด์„œ ๋‹ค๋ค„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ ViewController Life Cycle ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด 6๋‹จ๊ณ„๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋ฌด์—‡์„ ๋œปํ•˜๋Š”์ง€ ์•Œ์•„๋ณด๊ธฐ ์ „์— ํ•œ๋ฒˆ ์–ด๋–ป๊ฒŒ ์‹คํ–‰๋˜๋Š”์ง€ ๋ด๋ณผ๊นŒ์š”? ViewController ๋จผ์ € ์ฒซ๋ฒˆ์งธ ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ๊ฐ ๋ฉ”์†Œ๋“œ๋งˆ๋‹ค ์ถœ๋ ฅ์„ ํ•˜๊ฒŒ๋” ๋งŒ๋“ค์–ด๋†“๊ฒ ์Šต๋‹ˆ๋‹ค. import UIKit class ViewController: UIViewController { override func loadView() { super.loadView() print("๋ทฐ ๋กœ๋“œ์ค‘~") } override.. 2021. 3. 22.
[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.
728x90
๋ฐ˜์‘ํ˜•