일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 감사일기
- 알려줌
- Android
- S3
- node.js
- hybrid
- angular4
- AWS
- https
- Route53
- cors
- fanzeel
- 도메인
- Elastic Beanstalk
- react
- 카카오톡
- 네이티브
- NeXT
- 안드로이드
- angular
- 페이스북
- beanstalk
- TypeScript
- php
- node
- 웹뷰
- nextjs
- swift
- JavaScript
- ios
- Today
- Total
목록개발 일지/iOS & Android (18)
쪼렙 as! 풀스택
NotificationCenter.default.publisher(for: UIResponder.keyboardWillHideNotification) .receive(on: RunLoop.main) .sink { [weak self] (notification) in let curve = notification.userInfo?[UIResponder.keyboardAnimationCurveUserInfoKey] as! UInt let duration = notification.userInfo?[UIResponder.keyboardAnimationDurationUserInfoKey] as! Double; let curveOpt = UIView.AnimationOptions(rawValue: curve
안드로이드 웹뷰에서, window 객체를 통해 안드로이드 네이티브 함수를 호출 할 수 있다. MainActivity.kt ... class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val webView = findViewById(R.id.webview) val settings = webView.settings; settings.javaScriptEnabled = true settings.javaScriptCanOpenWindowsAutomatically =..
출처 : https://stackoverflow.com/a/33244365 스토리보드에서 바로 값을 설정할 수 있어서 매우 편리하다. // // PaddedLabel.swift // TrainCentric // // Created by Arsonik // https://stackoverflow.com/a/33244365/337934 // import UIKit @IBDesignable class PaddedLabel: UILabel { @IBInspectable var inset:CGSize = CGSize(width: 0, height: 0) var padding: UIEdgeInsets { var hasText:Bool = false if let t = self.text?.count, t > 0 { ..
약간 복잡한 TableViewCell 인 경우, Storyboard 안에서 모두 구현하기 보다는, XIB 를 따로 만들어서 관리하는걸 선호한다. 그런데 XIB 로 따로 만든 셀에서, DynamicHeight 가 적용이 안되잖아!! 한참 헤매다 해결 한 방법. 내가 만든 TableViewCell 에다가 self.translatesAutoresizingMaskIntoConstraints = false ViewController.swift let nib = UINib(nibName: "TestCell", bundle: nil) tableView.register(nib, forCellReuseIdentifier: "TestCell") class TestCell : UITableViewCell override f..
WKWebView 가 있는 ViewController class ViewController: UIViewController, WKUIDelegate, WKNavigationDelegate, WKScriptMessageHandler { @IBOutlet weak var webView: WKWebView! private let HOME_URL = "https://MYWEB.URL" override func viewDidLoad() { super.viewDidLoad() webView.uiDelegate = self webView.navigationDelegate = self // webView.configuration.websiteDataStore = WKWebsiteDataStore.default() //..
이때까지 소셜로그인 하면, AppDelegate 에, 이것저것 설정해 두었었다. 근데 iOS13 에서, 아무리 해도, 카카오 로그인 핸들러가 안불러지는것이다. 알고보니, SceneDelegate 에도 적용을 해줘야 한다....;; SceneDelegate.swift func sceneDidEnterBackground(_ scene: UIScene) { KOSession.handleDidEnterBackground() } func sceneDidBecomeActive(_ scene: UIScene) { KOSession.handleDidBecomeActive() } func scene(_ scene: UIScene, openURLContexts URLContexts: Set) { if let url = U..
이번에 매일감사 매일기도 앱을 2.0.0으로 업데이트를 하면서, okhttp 라이브러리 버전을 3.12 에서 3.14로 업데이트 했다. 오늘 갑자기 Firebase - Crashlytics 에서 에러 빈도수가 갑자기 많아졌다고 메일이 날라오는게 아닌가. 내 앱의 최소 지원버전은 4.4 인데, okhttp 에서 막상 4.4는 지원하지 않는다는 에러를!!! 바로 okhttp change log 를 살펴봤다. https://square.github.io/okhttp/changelog/#version-3130 3.13 버전부터 최소 안드로이드 5.0으로 판올림을 했다 ㅠㅠ 일단 부랴부랴 다시 3.12 버전으로 다운시켜서 빌드해서 앱 업데이트를 했다. 나중에는 내 앱에서도 안드로이드 4.4를 지원하지 않을 생각을..
RecyclerView 를 이용해서, 아이템간 마진을 이용하려면, ItemDecoration 을 이용해야 한다. 보통은 DividerItemDecoration 을 이용하는데, 내 경우에는, Horizontal 방향을 사용해야 했고, 그래서 양쪽 끝에도 동일한 마진이 들어가길 원했다. 보통의 DividerItemDecoration 을 이용하면, 첫번째 아이템 전에는 마진이 들어가지 않기 때문에, 직접 ItemDecoration 을 서브클래싱 해서 사용해야 했다. SpaceDecoration.kt class SpaceDecoration(private val size: Int) : RecyclerView.ItemDecoration() { override fun getItemOffsets(outRect: Rec..
코틀린에서 Glide를 사용하려고 했더니, Failed to find GeneratedAppGlideModule. You should include an annotationProcessor compile dependency on com.github.bumptech.glide:compiler in your application and a @GlideModule annotated AppGlideModule implementation or LibraryGlideModules will be silently ignored 이런 워닝이 뜬다. GlideAppModule을 서브클래싱해서 만들고, GlideApp을 이용하면, 이 워닝이 없어진다. 1. build.gradleapply plugin: 'kotlin-kap..
사용자들이 내가 만든 앱의 최신버전으로 유지하게 만드는것은 참 중요한 일이다.난 앱 업데이트를 굉장히 게으르게 하는 편인데, 나같은 사람에게 최신버전의 앱을 사용하게 하는것은 참 어려운 일이다. Firebase Analytics 를 보면, 사용자들이 어떤 버전을 사용하는지 통계로 볼 수 있어서 참 좋다. 이건 내가만든 iOS 앱의 사용하는 버전 통계 인데, 아직도 거의 세달전에 출시한 버전을 아직도 사용하는 사람들이 있구나 ㅠㅠ - 실제로 앱을 만들고 서비스를 하다보니, 앱 업데이트를 크게 두 부류로 나눌 수 있겠더라.1. 굵직한 필수 업데이트.2. 자잘한 마이너 업데이트. 스토어에 출시된 앱의 버전을 Parsing 해서, 자동으로 앱 업데이트 알림 기능을 구현하는 방법들이 흔히 많이 들 쓰이는데, 나는..