๋ด์ฉ shake motion ์ ์ธ์ํด์ ํ๋ฉด์ ํ ์ ์ง๋ ์ถ๊ฐ ์์ ์ apple developer ๊ฐ๋ฐ์ ๋ฌธ์์์๋ ์์ดํฐ์์ ์ฌ์ฉํ ๋ ๋๋ ์ ์๋ "๋๋" ํน์ "๋" ํ๋ ์ด๋ฌํ ์ด๊ฐ ๊ฒฝํ์ haptic ์ผ๋ก ๋ช ์ํ๊ณ ์๋ค. ์ง๋๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ธฐ ์ํด์ ํ ํฑ ๊ด๋ จํด์ ๊ณต๋ถ๋ฅผ ํ๋ค๊ฐ ํ ํฑ ํจํด์ ์ ํ๊ณ ๋ด๊ฐ ์ํ๋ ์ง๋์ ์๊ตฌ๋ ๋ผ๊ณ ๋๊ผ๋ค. ๊ทธ๋๋ ๊ณต๋ถํ๊ฒ ์์ฌ์์ ๋จ๊ธด๋ค. Haptics ์ Vibrate ๋น๋ฐ๋ฒํธ ์ ๋ ฅ ์(ex.์นด์นด์คํ์ด) → ํ ํฑ ์ค์ํ ํ์ ๋ฑ์ฅ ์(ex.์นด์นด์คํก ํ์์ฝ๋) → ๋ฐ์ด๋ธ๋ ์ดํธ ๐ HIG - Haptics Human Interface Guidelines ์ ํ์ํ ๋ด์ฉ์ ์ ๋ฆฌํด๋ณด์. ๋ฌธ์์์ ์ฌ๋ฌ ํจํด์ ์ง๋ ๋ฏธ๋์ด๊น์ง ์ ๊ณตํ๋ ๋ ์์ธํ ๋ด์ฉ์ ๋งํฌ๋ฅผ ํ์ธํด๋ณด์..
์ ํ์ Face ID ๋ฅผ ํ์ฉํ ์ํ ํ๋ก์ ํธ์ ๊ฐ๋ฐ์ ๋ฌธ์๋ฅผ ์ ๋ฆฌํด๋ดค๋ค. iOS) Face ID & Touch ID - Biometrics Authentication(์์ฒด์ธ์ ์ธ์ฆ) ์, ์ด์ ์นด์นด์คํก QR์ฝ๋ ์์ ฏ์ ์ ์ฉํด๋ณด์. ๋ด์ฉ ์ฑ ์ ๊ทผ ์ Face ID ๋ฅผ ํตํด์ ์ธ์ฆ์ ํ์๋ก ํ๋ค. ์์ํ๊ธฐ ๐ ํ๋ก์ ํธ ์ค์ ๐ UI ๊ตฌ์ฑ ๊ธฐ๊ธฐ์์ Face ID ๋ฅผ ์ง์ํ๋ฉด Face ID ๋ฒํผ์ ๋ณด์ฌ์ค. ๐ Face ID ์ ์ฉ mvvm ํจํด์์ Face ID ์ธ์ฆ ์ ์ฐจ๋ฅผ ๊ฐ์ง๋ Service ํด๋์ค๋ฅผ ๋ง๋ค๊ณ ๋ก์ง์ ๊ตฌ์ฑํ์๋ค. FaceIDAuthenticationViewController private func setFaceIDAuthentication() { faceIDButton.isHidden = se..
๐ ๋ณธ๊ฒฉ์ ์ผ๋ก ํด๋ก ์ฝ๋ฉ์ ํด๋ณด์ 1๏ธโฃ ์ฑ ์ด๋ฆ ๋ณ๊ฒฝ ์ฑ ์ด๋ฆ : 1๋ฒ ๊ฒฐ์ . [General] → [Identity] → [Display Name] ์์ ๋ค์๊ณผ ๊ฐ์ด ์ค์ ํด์ค๋ค. 2๏ธโฃ ์ฌ๋ฌ๊ฐ์ง ์์ ฏ ์์ฑ ์์ ์ฝ๋๋ฅผ ๋ณด๋ฉด์ ์๋ฌธ์ ๊ฐ์ก๋ค. ๊ทธ๋ฌ๋ฉด ์๋์ฒ๋ผ ์ด๋ฆ๋ ์ค๋ช ๋ ํฌ๊ธฐ๋ ๋ค๋ฅธ ์์ ฏ๋ค์ ์ด๋ป๊ฒ ์ถ๊ฐํ ์ ์์๊น?(์ ๋๋ฉ์ด์ ์ ์ฐธ ์ข๋ค ํฌ-) ๐ WidgetBundle ๋จ์ผ widget extension ์์ ์ฌ๋ฟ ์์ ฏ์ ๋ ธ์ถ์ํค๋๋ฐ ์ฌ์ฉ๋๋ container. ์ฌ๋ฌ ์ ํ์ ์์ ฏ์ ์ง์ํ๋ ค๋ฉด WidgetBundle ์ ์ฑํํ๋ ๊ตฌ์กฐ์ฒด์ @main ์์ฑ์ ์ถ๊ฐํ์ญ์์ค. apple developer's example code @main struct GameWidgets: WidgetBundle { va..
๋ด์ฉ ์นด์นด์คํก์์ qrcode ๋ฅผ ์์ ฏ์ผ๋ก ์ ๊ณตํ๊ณ ์๋ค. ๋ฌผ๋ก ํ์ผ๋ก ๊ฐ์ ธ์ฌ ์๋ ์๋ค. ๊ท์ฝ๋ค... ๊ตฌํํด๋ณด์ ๐Widget?! Widget ์ ํ๋กํ ์ฝ์ด๋ค. (ํ์ต!) Home ํ๋ฉด(iOS)์ด๋ Notification Center(macOS) ์ ํ์ํ ์์ ฏ์ ๊ตฌ์ฑ ๋ฐ ๋ด์ฉ์ด๋ค. Overview ์์ ฏ์ ๋ฐ๋ก ์ฑ์ ๊ด๋ จ ์ฝํ ์ธ ๋ฅผ ํ๋์ ๋ณผ ์ ์๋๋ก ํ์ํฉ๋๋ค. ์ฌ์ฉ์๋ ๊ฐ๋ณ ์๊ตฌ ์ฌํญ์ ๋ง๊ฒ ์ถ๊ฐ, ๊ตฌ์ฑ ๋ฐ ์ ๋ ฌํ ์ ์๋ค. ์ฌ๋ฌ ์ ํ์ ์์ ฏ์ ์ ๊ณตํ ์ ์๋ค. ์์ ฏ์๋ ์ธ๊ฐ์ง ์ฃผ์ ๊ตฌ์ฑ์์๊ฐ ์๋ค. configuration : ์์ ฏ์ด ๊ตฌ์ฑํ ์ ์๋์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๊ณ , ์์ ฏ์ ์๋ณํ๊ณ , SwiftUI ๋ทฐ๋ฅผ ์ ์ํ๋ค. timeline provider : ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์์ ฏ์ ๋ณด๊ธฐ๋ฅผ ์ ๋ฐ์ดํธํ๋..
๋ด์ฉ MVVM ํจํด์ ์ ์ฉํด๋ณด์ ๋ฐ์ดํฐ๋ฐ์ธ๋ฉ ๋ฐฉ๋ฒ์ Observable ํด๋์ค ์ฌ์ฉ QR์ฝ๋ ๋ทฐ์ ๋ทฐ๋ชจ๋ธ๋ง ์๊ฐํด๋ณด๊ฒ ๋ค. View import UIKit import SnapKit class QRCodeViewController: UIViewController { // MARK: - Properties // โ view model let viewModel = QRCodeViewModel() let closeButton = UIButton() let switchShakeButton = UIButton() let privateQuestionButton = UIButton() let titleLabel = UILabel() let subtitleLabel = UILabel() let privatetextLab..
๋ด์ฉ ์นด์นด์คํก QR์ฝ๋ ์์ ฏ์ ํตํด์ ์ ๊ทผํ๊ฑฐ๋ ์นด์นด์คํก์์ ์์ดํฌ ๋ชจ์ ์ ํตํด ์ ๊ทผํ ์ ์๋ QR์ฝ๋ ๋ทฐ์ ํ๋ฉด์บก์ฒ์ ๊ธฐ๋ก, ๋ฏธ๋ฌ๋ง, AirPlay ๋ฅผ ๋ง๊ณ ์์๋ค. ๊ตฌํํด๋ณด์. ๋จผ์ ์นด์นด์คํก QR์ฝ๋ ๋ทฐ๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง ์ดํด๋ณด์. QR์ฝ๋ ๋ทฐ ํ๋ฉด์บก์ฒ๋ฅผ ์๋ํ์ ๋นํ๋ฉด์ด ์บก์ณ๋์๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฒฝ๊ณ ๋ฉ์์ง๊ฐ ๋ฑ์ฅํ๋ค. ์ด๊ฒ์ ํ๋ฉด์บก์ฒ๊ฐ ๋์ ์ฒจ๋ถํด๋ณธ๋ค. ๋ฌผ๋ก ๊ธฐ๊ธฐ์์๋ ๊ฒฝ๊ณ ๋ฉ์์ง ๋ค์ QR ์ฝ๋ ๋ทฐ๊ฐ ์๋ค. ๋ชฉํ ํ๋ฉด์บก์ณ ์ alert ์ฐฝ ๋ฑ์ฅ ํ๋ฉด์บก์ณ ๊ฒฐ๊ณผ์ ๊ด์ฌํด์ ๋น ํ๋ฉด์ด ์บก์ณ๋๋๋กํ๊ธฐ ์์ ์ ๐ธ ์๋ฆฌ ๐ UIApplication.userDidTakeScreenshotNotification screenshot ํ ๋ notification ์ด post. Discussion notificati..
๋ด์ฉ shake motion ์ ์ธ์ํด์ ํ๋ฉด์ ํ ์ ์ง๋ ์ถ๊ฐ ์์ ์ ์ง๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ธฐ ์ํด์ vibrate ๋ผ๋ ๊ฐ๋ ์ ๋ํด์ ๊ฐ๋ฐ์ ๋ฌธ์์์ ์ฐพ์๋ณด์๋ค. kSystemSoundID_Vibrate ๋ผ๋ ๋ณ์๋ฅผ ์ฐพ์๊ณ ์์๋ณด์. ๐ kSystemSoundID_Vibrate iPhone ์์ AudioServicesPlayAlertSound(_:) ํจ์์ ํจ๊ป ์ฌ์ฉํ์ฌ ์งง์ ์ง๋์ ํธ์ถํ๋ค. iPod touch ์์๋ ์๋ฌด ์์ ๋ ์ํํ์ง ์๋๋ค. ๊ทธ๋ ๋ค๋ฉด AudioServicesPlayAlertSound(_:) ์ ๋ํด์ ์์๋ณด์. ๐ AudioServicePlayAlertSound(_:) Plays a system sound as an alert. Parameters inSystemSoundID..
๋ด์ฉ ์นด์นด์คํก์์ ๋๋ฒ ํ๋ค๋ฉด qr ์ฝ๋ ๋ทฐ๋ฅผ ๋์ด์ฃผ๋ ๊ธฐ๋ฅ ํด๋ก ์ฝ๋ฉ ๋๊ฐ์ง ๋ฐฉ๋ฒ์ ๋ํด์ ์์๋ณผ ๊ฒ์ด๋ค. UIResponder ์ motion event ๋ฉ์๋๋ฅผ ์ฌ์ ์ํด์ ์ฌ์ฉ CoreMotion Framework ์ฌ์ฉ 2๏ธโฃ CoreMotion Framework ์ฌ์ฉ ์์ ์ ๐ ์๋ฆฌ motion service ๋ฅผ ๊ด๋ฆฌํ๋ CMMotionManager ๋ฅผ ํ์ฉ. ๐ CMMotionManager [CMMotionManager](https://developer.apple.com/documentation/coremotion/cmmotionmanager) ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ์ฅ์น์ ์จ๋ณด๋ ์ผ์์์ ๊ฐ์งํ ์์ง์์ ๋ณด๊ณ ํ๋ ์๋น์ค๋ฅผ ์์ํฉ๋๋ค. ์ด ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ 4๊ฐ์ง ์ ํ์ ๋ชจ์ ๋ฐ์ดํฐ๋ฅผ ์์ ํฉ๋๋ค. Acc..
- APNS
- MVVM
- WidgetKit
- OpenSourceLibrary
- async/await
- UserDefaults
- containerBackground
- watchOS
- MOYA
- github
- WWDC22
- urlsession
- Objective-C
- SwiftUI
- CloneCoding
- Notification
- configurable widget
- Algorithm
- 2022 KAKAO TECH INTERNSHIP
- Protocol
- Firebase
- IOS
- rxswift
- RxCocoa
- YPImagePicker
- Widget
- Swift
- WWDC
- ์๋ฒํต์
- projectsetting
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Total
- Today
- Yesterday