๋ด์ฉ 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..
UILabel ๋ถ๋ถ ๊ธ์ ํฌ๊ธฐ/ํฐํธ/์์/๋ฐ์ค ์ค์ ํ๊ธฐ ํ๋จ์ " QR ์ฒดํฌ์ธ ์์ดํฌ ๊ธฐ๋ฅ ๋๊ธฐ " ๋ฒํผ์ ๋ถ๋ถ ๊ธ์์ ๋ฐ์ค์ ๋ง๋ค์ด๋ณด์. let text = "QR ์ฒดํฌ์ธ ์์ดํฌ ๊ธฐ๋ฅ ๋๊ธฐ" self.switchShakeButton.setTitle(text, for: .normal) let attributeString = NSMutableAttributedString(string: text) // โ ๊ตต๊ธฐ 1์ ์ธ๋๋ผ์ธ๊ณผ ํจ๊ป ์ฒ์๋ถํฐ ๋๊น์ง ๋ฐ์ค ์ค์ . attributeString.addAttribute(.underlineStyle , value: 1, range: NSRange.init(location: 0, length: text.count)) self.switchShakeButton.titleL..
์๋์ ๊ฐ์ด ์๋จ๋ง ๋ฅ๊ทผ ๋ชจ์๋ฆฌ๋ฅผ ๊ฐ์ง ๋ทฐ๋ฅผ(ํ๋๋ทฐ) ๋ง๋ค๊ณ ์ถ์๋ค. (ํ์๋ฐฐ๊ฒฝ์ ๋ทฐ์ ํ๋๋ฐฐ๊ฒฝ์ ๋ทฐ ๋๊ฐ๋ก ๊ตฌ์ฑ) ํ์ ๊ฐ์ผ๋ฉด masksToBounds ํ๋กํผํฐ์ true ๋ฅผ ์ค์ ํด๊ฒฐํ๋ คํ๋๋ฐ ๋ค์ ๊ทธ๋ฆผ์๊ฐ์์ด์ ์๋จ์ข์ฐ์ธก ๋ฅ๊ทผ ๋ชจ์๋ฆฌ์ ๊ทธ๋ฆผ์๋ฅผ ๋์์ ์ค ์ ์์๋ค.(์๋ก๊ฐ ๋ฐ๋์ ํ๋กํผํฐ ๊ฐ์ ์๊ตฌํ๊ธฐ ๋๋ฌธ.) ๊ทธ๋์ maskedCorners ํ๋กํผํฐ๋ฅผ ์ค์ ํ๊ธฐ๋ก ํ๋ค. qrcodeTopView.backgroundColor = .blue qrcodeTopView.layer.cornerRadius = 10 // ์ข์ธก์๋จ, ์ฐ์ธก์๋จ qrcodeTopView.layer.maskedCorners = [.layerMinXMinYCorner, .layerMaxXMinYCorner] ๋ค์์ ์ต์ ์ ํตํด์ ์ค์ ..
๋ด์ฉ shake motion ์ ์ธ์ํด์ ํ๋ฉด์ ํ ์ ์ง๋ ์ถ๊ฐ ์์ ์ ์ง๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ธฐ ์ํด์ vibrate ๋ผ๋ ๊ฐ๋ ์ ๋ํด์ ๊ฐ๋ฐ์ ๋ฌธ์์์ ์ฐพ์๋ณด์๋ค. kSystemSoundID_Vibrate ๋ผ๋ ๋ณ์๋ฅผ ์ฐพ์๊ณ ์์๋ณด์. ๐ kSystemSoundID_Vibrate iPhone ์์ AudioServicesPlayAlertSound(_:) ํจ์์ ํจ๊ป ์ฌ์ฉํ์ฌ ์งง์ ์ง๋์ ํธ์ถํ๋ค. iPod touch ์์๋ ์๋ฌด ์์ ๋ ์ํํ์ง ์๋๋ค. ๊ทธ๋ ๋ค๋ฉด AudioServicesPlayAlertSound(_:) ์ ๋ํด์ ์์๋ณด์. ๐ AudioServicePlayAlertSound(_:) Plays a system sound as an alert. Parameters inSystemSoundID..
ํด๋ก ์ฝ๋ฉ ์คํฐ๋ - ๋ฏธ๋ผํด๋ก ๊ธฐ๊ฐ : 8/23 ~ 9/13 ๊ณํ : 1์ฃผ์ฐจ : ์นด์นด์คํก shake motion 2์ฃผ์ฐจ : SwfitUI, ์นด์นด์คํก QR widget 3์ฃผ์ฐจ : FaceID ๋ชฉํ : view ์ ์ธ ์์๋ณด๋ค ์๋ก์ด ๊ธฐ๋ฅ์ ์ธ ๋ถ๋ถ์ ์ข ๋ ๊ณํํ๊ณ ์งํํด ๋ณด์. ๊ฐ์ธ์ ์ธ ๋ชฉํ code base ํ๋ก์ ํธ SnapKit ์ฌ์ฉ MVVM ์ ์ฉ mvvm foldering โโโ Resource โ โโโ Info.plist โ โโโ Assets โ โโโ Constants โโโ Source โ โโโ AppDelegate โ โโโ SceneDelegate โ โโโ Observables โ โโโ Models โ โโโ ViewModels โ โโโ Views โโโ Swift Package Ma..
ํ๋ก์ ํธ ์ด๊ธฐ ์ค์ ๋ Info.plist ๋ฅผ ์ด๋ํ๊ณ ์ํ๋๋ฐ ์ด๋ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. ๋ค๋ฅธ ํ์ผ์ ๋ฌธ์ ๊ฐ ์์๋๋ฐ Info.plist ๋ฅผ ํด๋๋ง์ ์ ์ฉํ๊ธฐ ์ํด์ ๊ฒฝ๋ก๋ฅผ ๋ณ๊ฒฝํ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ด๋ค. ๋ค์๊ณผ ๊ฐ์ด ์ค์ ๋ ๊ฒฝ๋ก๋ฅผ ๋ฐ๊ฟ์ฃผ๋ฉด๋๋ค. ๋๊ฐ์ ๊ฒฝ์ฐ๋ Resource ํด๋ ํ์์ ์์นํ๊ธฐ ๋๋ฌธ์ KakaoQRcode-iOS-CloneCoding/Resource/Info.plist ๋ผ๊ณ ์ค์ ํด์ฃผ์๋ค.
์ด์ ๊ธ์ ์ฝ๊ณ ์ค๋ฉด ์ดํด๊ฐ ๋ ์ ๋ ๊ฒ์ด๋ค. iOS) Design pattern MVVM(1/2) - MVC, MVVM ์์๋ณด๊ธฐ ์์ ์ ๋์์ธ ํจํด์ ๋ํด์๋ ๋ฌด์์ด ์ ๋ต์ด๋ผ๋ ๊ฒ์ด ์๋ค๊ณ ํ๋ค. ๊ทธ๋งํผ ๋งน์ ํ๋ฉด ์๋๋ค๊ณ ํ๋ค. ๋ฌด์์ด ์ฅ์ ์ด๊ณ ๋จ์ ์ธ์ง์ ๋ํด์ ์๊ณ ์ฌ์ฉํด๋ดค๋์ง๊ฐ ์ค์ํ๋ค๊ณ ํ๋ค. ๋ํ ํ์ ์์๋ ๊ฐ์ ํ๋ก์ ํธ ๋ด์์ ํ๊ฐ์ง ๋์์ธ ํจํด๋ง ์ฌ์ฉํ์ง ์๋๋ค๊ณ ํ๋ค. ๊ทธ๋์ ์ด๋ค ์ํฉ์ ์ด๋ค ํจํด์ด ์ ๋ฆฌํ์ง์ ๋ํด์ ์๋ ๊ฒ์ด ์ค์ํ๋ค๊ณ ์๊ฐ ํ๋ค. ๋ค์ ์๊ฐํ๋ mvvm ํจํด์ ๊ธฐ๋ณธ์ ์ธ mvvm ์ ๊ตฌ์ฑ์์์ ์ถฉ์คํ๊ฒ ์งํํ๋ค. ์ด๊ฒ๋ณด๋ค ๋ ๊ตฌ์ฒด์ ์ธ ๊ตฌ์กฐ๋ ์๊ณ ๊ฐ์ ์ญํ ์ ๋ค๋ฅด๊ฒ ๊ตฌํํ ์ฝ๋๋ ๋ง๋ค. ์ฆ, ๊ฐ์ mvvm ํจํด๋ด์์๋ ํ๋ํจํด์ ์ด๋ป๊ฒ ๊ฐ์ ธ๊ฐ๋์ ๋ฐ๋ผ ๋ค์ํ๋ค. ํ๋..
- OpenSourceLibrary
- rxswift
- Protocol
- UserDefaults
- APNS
- async/await
- IOS
- Swift
- urlsession
- Widget
- WWDC
- CloneCoding
- 2022 KAKAO TECH INTERNSHIP
- configurable widget
- Objective-C
- RxCocoa
- ์๋ฒํต์
- MVVM
- projectsetting
- MOYA
- WidgetKit
- SwiftUI
- Notification
- Firebase
- github
- YPImagePicker
- watchOS
- containerBackground
- Algorithm
- WWDC22
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- Total
- Today
- Yesterday