전체 글
-
ReactNative에서 A/B Test 하기프로그래밍/ReactNative 2024. 11. 30. 19:26
Firebase Remote Config를 사용해서 A/B Test 세팅 정리 1. Remote Config 설치https://rnfirebase.io/remote-config/usage Remote Config | React Native FirebaseCopyright © 2017-2020 Invertase Limited. Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 3.0 License, and code samples are licensed under the Apache 2.0 License. Some partial documentation, under thern..
-
-
-
(3) Decorator Pattern프로그래밍/Design Pattern 2023. 3. 13. 00:42
여러 종류의 음료 가격을 계산하는 부분을 구현하려고 합니다. 음료별 종류뿐만 아니라 커피처럼 토핑 옵션이 있을 때, 음료 메뉴들의 부모클래스를 선언하고 각 메뉴별로 상속하여 옵션별로 가격을 반환하는 구조로 만들 수 있습니다. class Beverage { func cost() -> Int { return 2500 } } class Espresso: Beverage { override func cost() -> Int { return super.cost() } } class TwoShotEspresso: Beverage { override func cost() -> Int { return super.cost() + 1000 } } class ThreeShotEspresso: Beverage { overri..
-
(2) Observer Pattern프로그래밍/Design Pattern 2023. 3. 5. 17:27
새로운 알림이 올 때마다 하단 탭의 badge 숫자들이 갱신되어야 한다고 합니다. 이때 알림이 올 때마다 FCM 라이브러리의 특정 함수가 불려진다고 한다면 아래처럼 구현할 수 있을 것입니다. class ReceiveData { var 채팅탭_뱃지카운트: Int var 알림탭_뱃지카운트: Int var 전체_뱃지카운트: Int ... } class FCM { let chattingTab = ChattingTab() let alarmTab = AlarmTab() /// 라이브러리에 의해서 새로운 알림이 올 때마다 호출되어지는 함수 func receiveNewAlert(data: ReceiveData) { let (채팅탭_뱃지카운트, 알림탭_뱃지카운트, 전체_뱃지카운트) = data chattingTab.up..
-
(1) Strategy Pattern프로그래밍/Design Pattern 2023. 3. 5. 02:43
설명 1. 새로운 기획에서 앱 화면에 오리(duck)를 그려달라고 하여, 오리 클래스를 만들게 되었다고 가정합니다. 또 오리를 눌렀을 때 오리가 꽥꽥 내는 소리와 나는 동작을 표현해야 한다고 하면 코드 짰을 때 대략 다음과 같을 것입니다. class Duck { func quack() { // 꽥꽥 } func fly() { // 나는 동작 } ... } 2. 그 다음주 기획에서 타겟A군의 유저에게는 청둥오리, B군에는 검은오리가 있어야 한다고 합니다. 또한 이 오리들의 우는 소리와 나는 효과가 달라야 한다고 합니다. 이 경우 개발자는 간단히 오리 클래스를 상속하여 각 오리 클래스를 구현하는 선택을 할 수 있습니다. 구체적으로 다음과 같습니다. (1) 상속을 사용 - Duck 클래스를 상속받은 Malla..
-
좋은 동료가 되는법카테고리 없음 2022. 1. 5. 03:48
1. 10배 뛰어난 개발자가 되는법 https://muchtrans.com/translations/10xdeveloper.ko.html 10배 뛰어난 개발자 되기 Recently I met with a friend of mine, James, who was a football player in college. He’s now the COO of a startup, and he mentioned that he was spending a lot of his time teaching what he considered basic teamwork to employees, especially around accountab muchtrans.com - 정서적 안정감이 있는 환경을 만들기 - 정서적 안정감이 있는 환경..
-
[부스트캠프 웹·모바일 6기] 멤버십 수료 후기프로그래밍/부스트캠프 2021. 12. 8. 00:18
1. 어제 네트워킹데이의 최종발표를 마치면서 14주간 진행되어온 멤버십이 끝났다. 챌린지때만큼이나 멥버십 과정도 정말 바빴다... 기업설명회나 네트워킹데이도 있지만 이 글에서는 스프린트와 그룹 프로젝트에 대해서만 작성함. 2. 스프린트 8주와 그룹 프로젝트 6주로 이루어져있는데, 스프린트 기간에는 비교적 시간적 여유가 많아서 따로 공부할 시간도 충분히 있었지만 그룹 프로젝트가 시작되고나서는 대부분의 시간을 팀플에 집중하는데 썼다. 3. 스프린트 기간에 확실히 많은 것을 얻어갔다. 수업 주제도 정말 좋았고 잘 이해가지 않을 때 직접 자유롭게 마스터와 별도로 현업자에게 직접 물어볼 수 있었던 점이 좋았다. 내가 처음 앱을 출시했을 때 고민했던 부분을 하나씩 질문해보았고 전혀 생각하지도 못했던 점도 많이 얻어..
-
[iPadOS] 가로방향으로 multiple scene이 안될 때프로그래밍/iOS 2021. 9. 24. 13:47
문제상황 가로방향인 상태에서, Support multiple windows 를 활성화 했을 때 Exposè로 같은 앱을 여러개 실행해서 띄울 수는 있지만, 한 화면에 2개의 앱을 띄울 수 없는 상황임 해결방법 세로방향 옵션을 껐던 것이 원인이었음 세로방향을 켜주고 다시 해보면 정상적으로 2개의 화면을 띄울 수 있게됨 - 가로방향에서만 작동하는 앱을 고려했더라도 multiple scene을 지원하게 될 때가 있으므로 세로방향을 고려해야하는 것 같음 - 기본적으로 2개의 화면을 동시에 띄울 수 있는 앱은 무조건 세로방향 옵션인 window으로 돌아가는 것 같음 - 기존에 가로방향에 있던 window도 세로방향으로(화면회전을 한 것 처럼) 재구성 되는 것 같음
-
[iOS] UI 계층 구조 정리프로그래밍/iOS 2021. 9. 23. 23:17
UIScene 앱의 ui의 하나씩의 instance를 의미함 앱을 실행하고 Debug View Hierarchy 를 실행하면 나오는 계층에서, 맨 위에 있는게 UIWindowScene인데, 이게 사실 UIScene이라고 보면 될 것 같다. 사진처럼 실제로는 이걸 상속한 UIWndowScene 객체를 직접 사용하는듯 UIWindowScene 이것의 delegate가 SceneDelegate임(UIWindowSceneDelegate) UIScene의 서브 클래스 App의 하나 이상의 Window를 관리한다. 직접 만드는 객체가 아님(OS가 생성) UIWindowSceneDelegate UISceneDelegate에서 확장된 프로토콜 UIWindowScene의 lifcycle 이벤트별로 호출되는 함수를 사용할..
-
[iPadOS] iPadOS에서 multiple scene을 구성하기프로그래밍/iOS 2021. 9. 22. 03:32
새로운 scene을 생성하는 방법을 이해하기 scene과 그 구체적인 코드를 알아보기 전에, project settings에서 Supports Multiple Windows 체크박스를 활성화 했을 때 scene들을 생성할 수 있는 여러 방법들을 알아봅시다. 우리는 기본으로 제공되는 기능을 살펴보는 것뿐만 아니라, 실제 유저들이 app이 multiple window를 지원할 때 어떤 동작들을 기대하는지 보여드리고자 합니다. 그 뒤에 우리의 app에 어떻게 multiple window를 구현하는지 살펴보겠습니다. 새로운 scene을 여는 기본적인 방법 iPadOS에서는 새로운 scene을 여는 2가지 방법이 있습니다. 첫번째로 앱이 이미 실행중인 상태에서 dock에 있는 앱 아이콘을 위로 끌어올려서 새로운 ..
-
NSCoding, Codable 사용 방법 정리(코드)프로그래밍/iOS 2021. 9. 20. 19:50
이렇게 사용하는게 맞는진 모르겠지만, 일단 해결했던 방법을 정리해본다 1. func encode(with:)에서 key값과 함께 encode할때 방법들 클래스 안에 구조체 프로퍼티가 있어서 NSCoding + Codable을 섞는 상황임. 이때 최종 목적은 우선 객체를 Data 로 만들고, 그 Data를 func encode(_ object: Any?, forKey key: String) 함수를 사용하여 키 값과 함께 encode 하는 것이다. 방법1: JSONEncoder, JSONDecoder를 사용 func encode(with aCoder: NSCoder) { print(#function, #line) aCoder.encode(name, forKey: "name") aCoder.encode(age..
-
NSCoding 쓸 때 does not implement methodSignatureForSelector: 에러가 나는 경우프로그래밍/iOS 2021. 9. 17. 01:15
해결방법 1. 인코딩할 클래스가 NSObject를 상속했는지 확인. 이때 CustomStringConvertible 프로토콜을 사용할 수 없게 됨 2. 클래스의 프로퍼티로 enum을 가지고 있으면 안된다. (enum 타입을 가지고 있다면 원시형 값으로 치환해서 하던가 해야함) // // Player.swift // MultiSceneWithUserDefaultTest // // Created by turu on 2021/09/17. // import Foundation class Player: NSObject, NSCoding { enum Gender: String { case man case woman case other } func descriptionToPrint() -> String { retur..
-
UserInterfaceState.xcuserstate 변경사항이 계속 뜰 때프로그래밍/git 2021. 9. 7. 21:24
문제 상황 Xcode에서 파일만 훑어보기만해도 UserInterfaceState.xcuserstate 파일의 변경사항이 계속 뜨는 문제 아마 변경사항이 있고 커밋하지 않는 상태인 feature브랜치에서 main브랜치로 rebase를, 그러니까 git rebase main git checkout main git rebase feature 이런순으로 하다가 발생한 것 같았는데 정확히 상황은 모르겠음 gitignore에 추가해도 계속 변경사항이 뜨고 있었음 해결 방법 git rm --cached [Project Name].xcworkspace/xcuserdata/[User Name].xcuserdatad/UserInterfaceState.xcuserstate git commit -m 'Removed file ..