본문 바로가기

개발

[무료 어플] 소중한 하루를 알차게 보내는 방법 - 하루 일정 관리 날마다 반복적으로 해야 하거나 또는 하기를 희망하는 일들이 있다. 매일 아침 하루를 시작하기 전에 오늘 마쳐야 할 일들에 대해서 차분히 생각하는 시간을 갖고자 하지만 그게 잘 안된다. 매일매일 일본어 공부를 하고 싶지만 매번 건너뛰기 일쑤고 운동은 하루하루 미루다 보니 일 년 가까이 체육관을 가지 않게 되었다. “ 거창한 일정관리까지는 필요 없고 그날그날 해야 할 일들만 기록하고 관리하는 앱은 없을까? 게다가 매일 반복해야 하는 일정이라면 한 번 등록에 알아서 매일 리셋이 되면 좋을 텐데.. “ 하는 생각에 이르러 아예 내가 만들어 보게 되었다. “원데이루틴”은 이러한 소망을 담아 내가 사용하려고 직접 개발하게 되었다. 아래는 앱스토어에 등록하면서 적은 소개 글이다. 오늘 하루를 소중하게 보내고 계십니까.. 더보기
[Swift 4] 구글 애드몹 광고 아이폰에 설정 / Google AdMob banner ads and interstitial settings for iOS 구글 애드몹의 배너 광고와 전면 광고 설정을 간단하게 정리해봤다. 순서는 기본 셋팅 광고 노출 여부 판단 광고 노출 다음 광고 노출을 위한 준비 로 말로 하면 아주 심플하기 그지없지만 처음 해보는 사람은 당연 헤매기 마련이다. 나도 처음 몇 번은 헤맸지만 이제는 반 자동적(자동적으로 되는 건 좀 오버스러워서..)으로 코딩을 하게 되었다. 간혹 광고가 안 나온다고 당황하는 경우가 있는데 특별히 에러 내용이 없다면 구글에서 준비된 광고가 없는 경우가 대부분이다. 광고 자리는 준비되었지만 광고를 보내려고 하는 광고주가 없다고 이해하면 된다. 그러니 그냥 광고 자리가 허옇게 나올 수밖에... 처음에는 이런 걸 모르고 마냥 광고 안 나온다고 찡찡 거렸었다. 지금은 그런 경우를 대비해서 내가 만든 다른 앱들을 하우.. 더보기
[Swift 4] 커스텀 피커뷰 Custom PickerView iOS 알람 시간을 설정해야 하는데 기본 피커뷰 사용하긴 싫고 팝업으로 띄우는 것도 귀찮을 때 사용할 간편한 커스텀 피커뷰 나는 매일 동일한 시간에 반복해서 알림을 할 것이라 날짜는 필요 없어서 빼버렸다. 여러 번 사용해왔던 거지만 역시나 매번 까먹어서 정리 차원에서 올려둔다. let picker = UIDatePicker() let toolbar = UIToolbar() func createDatePicker() { // toolbar toolbar.barTintColor = UIColor(hex: "F8F8F8") toolbar.clipsToBounds = true toolbar.sizeToFit() // done button for toolbar let flexibleSpace = UIBarButtonIt.. 더보기
[Swift 4] 간단한 내용 저장할 때 UserDefaults 설정 유저디폴트, 이 간단한 걸 매번 까먹는다. ㅡ.ㅡ let userDefault = UserDefaults.standard // 유저디폴트 셋팅 self.userDefault.set(true, forKey: "IsBuyAd") self.userDefault.removeObject(forKey: "IsBuyAd") // 유저디폴트 싱크 self.userDefault.synchronize() 더보기
[Swift 4] 노티피케이션을 이용한 간단한 날짜 변화 체크 앱을 사용 중 날짜가 변하면 노티피케이션이 감지하고 해당 작업을 실행한다. NotificationCenter.default.addObserver(self, selector: #selector(self.dayDidchange), name: NSNotification.Name.NSCalendarDayChanged, object: nil) @objc func dayDidchange() { // 날짜 변화가 있으면 실행할 코드 getToday() print("데이디드체인지:\(todayInt) :: \(year)\(month)\(day)\(weekday)") getLastLogin() } 더보기
[Realm] Realm 에서 primaryKey id 이용해서 가장 마지막 데이터 가져오기 Realm db 사용 중에 가장 최근에 생성된 마지막 데이터를 가져와야 할 때가 있는데 번번이 까먹어서 정리해둔다. if let lastDate = self.realm?.objects(PlanModel.self).max(by: { $0.id 더보기
[Swift 4] Custom Segue로 화면 전환을 가로 방향으로 하는 법 앱 제작시에 일반적인 화면 전환 방법으로는 내비게이션 컨트롤러와 세그를 이용하는 방법이 주로 사용되는데 내비게이션 컨트롤러의 경우 화면 전환은 가로 방향으로 오른쪽에서 나타나서 왼쪽으로 이동하고 세그인 경우에는 세로 방향으로 아래에서 위로 이동한다. 내비게이션 컨트롤러를 이용하지 않고 세그를 이용하면서 화면 전환 방향을 가로방식으로 하려면 커스텀 세그를 만들어 사용해야 한다. CustomSegueClass 만들기 // CustomSegueClass.swift import UIKit // RightViewController 뷰 이동 class right: UIStoryboardSegue { override func perform() { let src = self.source as UIViewControll.. 더보기
일정관리 앱에서 많이 사용하는 스트라이크 라인 설정법 일정관리 앱에서 흔히 볼 수 있는, 완료 항목에 줄을 긋는 방법 cell.planTitleLabel.text = plans![indexPath.row].title if plans![indexPath.row].check == true { cell.planCheckImage.image = UIImage(named: "ico_checkOn") cell.planTitleLabel.textColor = UIColor(hex: checkOnTextColor) let attributedString = NSMutableAttributedString(string: plans![indexPath.row].title) attributedString.addAttribute(NSAttributedStringKey.striket.. 더보기
화면의 세로 사이즈로 디바이스 구별 좀 더 복잡하고 기능이 많은 API들이 있지만 그냥 간단하게 아이폰과 아이패드만 구별하면 익스텐션이다 화면의 가로 사이즈로 구별하기에는 동일한 사이즈를 사용하는 기기가 있어서 세로 사이즈를 기준으로 구별했다. extension CGFloat { //MARK: - 화면 리사이즈 /* 375 * 812 X @3x 1125px × 2436px 2436px × 1125px 414 * 736 6+, 6s+, 7+, 8+ @3x 1242px × 2208px 2208px × 1242px 375 * 667 6, 6s, 7, 8 750px × 1334px 1334px × 750px 320 * 568 5s, SE 640px × 1136px 1024 x 1366 iPad Pro 12.9-inch (2nd generation.. 더보기
[일본어 무료 어플] 1,006개 일본어 한자 - JLPT 3급 대응 일본어 공부와 한자의 관계는 이전 글을 참고해주시길 바란다. [일본어 공부 무료 어플] 요미가나 - JLPT 5급 일본어 한자 읽는 법 이전 글에서 한자의 읽는 법에 익숙해지기 위해 필요한 앱을 소개했는데 이번에는 시험을 위한 한자를 말해볼까 한다. 이전에는 어휘를 기준으로 사용된 한자의 읽는 법을 공부하기 위한 앱이었다면 이번에는 일본 정부에서 공인된 소학교 (초등학교) 상용 한자 1,006자를 앱으로 만들어 봤다. 초등학생 한자라고 마냥 쉽지만은 않다. 전체 6개의 레벨(학년별)으로 이루어졌는데 고학년으로 올라갈수록 모르는 한자가 늘고.. 그놈이 그놈인 것 같아서 헷갈리기 시작한다. 그래도 1,006자를 모두 마스터한다면 JLPT 3급 정도는 만점은 못 받더라도 넉넉한 점수로 합격할 것으로 예상한다... 더보기