앱 개발하다보면 알람 기능이 필요할 경우가 많습니다. 제가 구현한 기능은 "시간 설정" 을 통한 "Notification" 호출 입니다. 스위프트에서는 Local Notification 제공하고 있습니다. FCM을 구현하다보면 인증서를 등록해야하지만, 로컬에서 알림을 알려주기에 생략 가능합니다. 1. 알림 기능 사용 유무 표시 및 델리게이트 등록 (AppDelegate.swift)Application에 Notification(알림) 기능을 사용할지 사용자에게 알려주는 기능을 넣습니다. 그리고 델리게이트도 같이 넣습니다. 123456789101112131415161718192021222324252627282930313233func application(_ application: UIApplication, ..
프로젝트 진행하면서 Local에 저정된 Json 파일을 가져올 때가 있습니다. 이때는 다음과 같은 방식으로 작업하면 됩니다. forResource에는 Json 파일명 들어가는 것만 주의하시면 사용하는데 어려움이 없을 것입니다.Json 파일 가져오기 1234567891011121314151617181920212223242526// DB Data load Json Filefunc loadJsonFile() -> Array{ var dbData: Array = Array() do { if let file = Bundle.main.url(forResource: "DBData", withExtension: "json"){ let data = try Data(contentsOf: file) let json = tr..
CallKit 에 번호 저장을 할 때마다 앱을 배포하는 것에 대해서 설명하였습니다. CallKit 구현(수신자 확인) 페이지로 이동 이어서 앱 배포 없이 앱 접속 시 정보를 CallKit에 전달하여 전화번호 데이터 갱신하는 방식에 대해서 공유 하겠습니다. [1] App Group 설정프로젝트 파일 > 앱(Callkit 각각) TARGETS 클릭 > Capablities > App Groups [그림1] Group Name 추가 방법 1. [그림1]에 보이는 화면으로 이동 하여 App Groups을 "On"으로 변경합니다. 2. App Groups의 '+ 버튼'이 보입니다. '+' 버튼을 클릭하여 App Group에 사용할 이름을 추가 합니다. [그림 2] CallKit Group 설정 화면 [그림3] A..
CallKit 을 json 을 읽어와서 업데이트하는 방식에 대해서 공유하겠습니다. 1. 3개 이상의 데이터를 CallDirectory에 업데이트하는 방법 CalDirectory.swift의 addIdentificationEntry(_) 에 등록하는데 있어서 3개 이상 등록하는데 이슈를 쉽게 발견할 수 있습니다. 1) 3개 이상 수신자 확인 데이터 등록 2) 설정 > 전화 > 전화 차단 및 ID 진입 3) 해당앱 On 시도 위의 방식으로 수행 시 무한 로딩 화면 또는 "알림" 메시지로 "개발자에게 문의하세요." 라는 문구가 나옵니다. 해결 방안으로 두 가지 대안을 생각하였습니다. 1) 쓰레드로 별도로 돌려야 하는가? 2) 데이터 넣을 때 마다 1초 딜레이를 주고 넣어야하는가? 위 두가지 방안을 시도하였으나..
스팸전화는 모든 사람이 피하고 싶은 전화이다! 위 정의는 모든 사람이 동의할 것입니다. 모두가 피하고 싶은 스팸전화를 이미 여러 앱에서 모르는 번호에 대한 정보를 알려주는 기능을 제공하고 있습니다. 위 기능은 IOS 10.0 미만에서는 수신자의 번호를 알 수 없어서 구현이 힘들었습니다. IOS 10.0 이상부터는 callKit을 지원하면서 수신 시 수신자의 번호를 얻어올 수 있도록 하였습니다. 제가 테스트한 앱의 최종 결과 화면을 보면 앱 이름 옆에 미리 설정한 번호에 해당하는 Label을 표시하고 있습니다. 이런 기능은 Call Directory Extension에서 전화번호 일치 유무를 검사하여 누구로부터 전화가 오는지 확인 할 수 있습니다. 제가 구현한 방식과 구현 하면서 어려웠던 점을 나누겠습니다..
JavaDoc을 활용하기 위해 package-info.java에 주석을 넣으려고 시도하였으나 Android Studio에서는 찾아볼 수 없었습니다. 선언은 되어 있으나 찾지 못한 package-info.java 이 이슈에 대해서 이미 고민하신 분이 계셨습니다. https://www.intertech.com/Blog/whats-package-info-java-for/ 간단히 요약하자면, 단순히 패키지쪽에서 강제로 package-info.java 로 File을 생성하여 그 안에 패키지 이름을 넣고 주석을 넣어주면 됩니다. 정리패키지 주석에 대해서 알아봤습니다. JavaDoc에서 패키지 주석도 추가하여 좀 더 친절한(?) 문서를 제공해 줄 수 있습니다. [패키지(Package) 주석]1. 패키지(package..
싱글톤(Singleton)이란 무엇일까? 간단히 말해 1개의 Class에 1개의 Instance를 말합니다.다르게 표현하면 Instance가 사용될 때 똑같은 Instance을 만드는 것이 아니라, 동일 Instance 을 사용하도록 합니다. 기본적으로 사용하는 Singleton은 다음과 같습니다. 12345678public final class Singleton(){ private static final Singleton instance = new Singleton(); private Singleton(){} public static Singleton getInstance() { return instance; }} Lazy initialization인스턴트가 사용하는 시점에 인스턴스 생성하는 방식도 있..
DatePickerView는 다양한 분야에서 사용되는 기능입니다. 이번 포스트는 이 DatePickerView 스크롤 시 다른 기능을 방지하는 것을 소개하려고 합니다. DatePicker Scrolling 상태에서 DatePicker의 값을 가져오려고 시도 시 Scrolling 되어 있는 값이 아니라 초기값 또는 Scolling 이 완료되었을 때는 값을 가져오게 됩니다. 사용자 입장에서는 오류로 보일 수도 있기에 위의 동영상과 같이 스크롤 되고 있을 경우 버튼 클릭 방지 등 다른 작업을 할 수 없도록 방지하였습니다. 여기서 사용한 기능은 Guesture 기능과 UIScrollView의 Dragging Check Function 입니다. * 소개할 예제는 DatePicker 가 Scrolling 시 "버튼..
- DI
- view
- 안드로이드
- 선교
- 임용고시
- Android Studio
- Android
- flutter
- 코틀린
- swift
- issue
- 스코어헬퍼
- missioon
- 고시문헬퍼
- 미션차이나센터
- IOS
- 점수판
- IT
- 디자인패턴
- RXjava
- MCC
- java
- missionchina
- 고시문
- 탁구
- Kotlin
- 알고리즘
- 패턴
- push
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |