본문 바로가기

모바일앱192

Swift - 참조(Strong, weak, unowned) 아주 간단한 예로 설명하자면.. 엄마와 나를 예로 들어보자.Strong엄마와 아이가 손을 꼭 잡고 있다고 가정해보자.엄마가 어디로 가든지 아이도 따라가야한다.엄마가 아이 손을 잡고 있으면, 아이는 어디에도 가지 않고 엄마와 함께 있는 것이다.Weak엉마와 아이가 손을 잡고 있다고 가정해보자.아이가 다른 곳에 가고 싶어하면 손을 놔줄 수 있다고 한다.아이가 어딘가 가고 싶다고 결정하면, 아이는 자유롭게 이동할 수 있고, 엄마와 아이가 잡은 손은 자연스럽게 분리된다.아이가 손을 놓고 이동하면, 엄마와 아이는 연결되어있지 않게 된다.Unowned엄마와 아이는 항상 같이 다닌다.엄마 없이는 절대 집을 나서지 않는다.만약 엄마가 여행을 가서 집을 비우면, 아이도 함께 가야한다.엄마가 없으면, 아이도 어디에도 갈 .. 2024. 6. 8.
swift signum() 메서드 이용하기 빠르게 양수와 음수 여부를 체크하는 경우,x > 0 처럼 체크하는 경우도 있지만x.signum() 으로 체크하는 방법 도 있다.signum() 메서드는 주어진 숫자의 부호를 나타내는 메서드다. 이 메서드는 수학적으로 숫자의 부호를 판별하여 그 결과를 반환한다.대부분의 프로그래밍 언어에서 사용할 수 있으며, 특히 수치 연산이 중요한 경우 유용하게 사용할 수 있다.signum() 메서드의 작동 방식:숫자가 양수일 경우, 1을 반환.숫자가 음수일 경우, -1을 반환.숫자가 0일 경우, 0을 반환.이 메서드는 숫자의 절대값을 확인하지 않고 오직 부호만을 고려하기 때문에, 부호에 따라 분기 처리를 해야 할 때 특히 유용하게 사용된다. 2024. 5. 30.
ios 개인정보 보호 매니페스트 PrivacyInfo.xcprivacy 만들기 애플에서 공지한 게시글 (23.12.7)App Store 앱 제출을 위한 개인정보 보호 관련 업데이트와 (24.2.29)App Store 앱 제출을 위한 개인정보 보호 관련 업데이트 를 살펴보면 아래와 같은 부분이 있다. 2024년 봄부터 App Store Connect에 새로운 앱 또는 앱 업데이트를 업로드하려면 앱의 개인정보 보호 매니페스트에 앱이 API를 사용하는 방식을 정확하게 반영하는 허용된 사유를 포함하고 있어야 한다 이 글에서 서드파티 SDK는 앱에 탁월한 기능을 제공하지만 개발자 / 사용자도 모르는 사이에 사용자 개인 정보 보안을 취약하게 만든다고 한다. 여기서 말하는 Third-party SDK privacy manifest and signatures 가 뭘까? 이 내용에 앞서 애플에서 .. 2024. 3. 8.
iOS - 수출 규정 준수 정보에 대하여 최초로 앱을 테스트플라잇에 올렸을 때, AppStoreConnect에서 테스터 등록 등등의 일을 처리해야 한다. 그런데 테스트플라잇에 업로드된 앱을 보면, 아래처럼 수출 규정 관련 문서 누락이라는 문구가 있는 경우가 생긴다. 아마 최초에는 누구나 생길 것이다. 여기서 파란색 관리 를 눌러보면 아래와 같은 화면이 발생하게 된다. 여기서 하단의 추가 정보를 클릭하면 애플 문서로 자세한 내용을 확인할 수 있다. 추가정보 Complying with Encryption Export Regulations | Apple Developer Documentation Declare the use of encryption in your app to streamline the app submission process. dev.. 2024. 2. 13.
APN 인증키(.p8) 발급받기 Integrity - APN 인증키(.p8) 발급받기 푸시 서비스를 이용하기위해서 애플에서는 기본적으로 Apple 서버로부터 인증을 받아야한다. 이때 필요한 것이 APN 인증키이다. Apple Developer Member Center 사이트로 한다. Apple Developer 로그인 - Apple idmsa.apple.com 프로그램 리소스 > Certificates, Identifiers & Profiles > 키 메뉴를 선택한다 Keys 메뉴로 이동 후 인증 키를 발급한다. 인증 키는 최대 2개까지 생성할 수 있다. 🍊 기존에 이미 생성되어있는지 확인하기 프로젝트에 따라 기존에 이미 생성되어있을 가능성도 있다. 최초 생성이면 하단의 "최초생성하기"를 참고하자. 1. 기존에 생성되어있는 키를 살펴보.. 2024. 1. 29.
인증서와 프로비저닝 프로파일관리하기 (Certificate & Provisioning Profile) Integrity - 인증서와 프로비저닝 프로파일 (Certificate & Provisioning Profile) 관리하기 인증서, 앱개발을 하면서 가끔씩 만나게 되는 요소 중 하나다. 인증서의 종류는 여러 개가 있는데, 정상적으로 앱을 빌드를 할 수 있도록, 정상적으로 앱을 앱스토어 커넥트에 (출시전 심사 및 테스트를 담당하는 곳) 업로드 할 수 있도록 인증하는 것이 인증서의 역할이다. 더욱이 Xcode15가 출시된 시점 부터는 인증서가 말썽이면 이제 빌드조차 할 수 없게 된 프로젝트도 있다. 이건 어디서 사용할까? 보통 앱 타겟에서 Automatically manage signing에 체크가 되어있다. 배포방법에 따라 앱을 Re-sign 할때도 Automatically manage signing에 .. 2024. 1. 11.
플러터 - 삼각형 모양 View 그리기 Flutter에서 삼각형을 그리는 방법은 여러 가지가 있는데 그중 가장 일반적인 방법 중 하나는 CustomPaint 위젯과 CustomPainter 클래스를 사용하는 것이다. 결과화면 전체코드 import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: Text('Triangle Example'), ), body: Center( child: TriangleView(), ), ), ).. 2023. 6. 11.
iOS - 코드로 UI를 짜다가 Storyboard파일의 VC 에 연결하기 present - CodeUI to StoryBoard 이번에 빠르게 작업을 했었던 사례였다. 첫번째 페이지: ViewController1 - 코드 UI 두번째 페이지: ViewController2 - 스토리보드 UI 두번째 페이지같은 경우는 반복사용해야하는 경우도 많고 시간이 촉박하기때문에 스토리보드를 선택하게 되었는데 문제는 화면전환에서 발생했다. 일단 세팅을 따로 하지않으면 ViewController.swift에 구현한 상태로 연결이 되기 때문에 텅텅빈 두번째 페이지를 만나게 된다. 구현방법 Step1. ViewController2.swift 에서 구분용 변수 세팅 storyboardName storyboardID // ViewController2.swift import Foundation impo.. 2023. 4. 28.
iOS - 배포된 앱을 삭제하는 2가지 방법 앱삭제는 아래처럼 두가지 종류 삭제가 있다. 판매 중단 : Remove from Sale 앱 삭제 : Remove App 공통부분 STEP.1 앱스토어 커넥트 사이트 접속 앱스토어 커넥트 사이트로 이동한다 : https://appstoreconnect.apple.com/ 개발자 계정 로그인 나의 앱이 보이는 목록으로 이동 STEP.2 삭제할 앱 선택 판매 중단할 앱을 선택 주의사항 앱 목록에는 판매가 되고 있는 앱도 있고, 심사가 거절된 앱들도 있다. 판매가 준비됨으로 표시된 앱만 삭제가 가능. 심사가 거절되어 출시가 되지 않는 앱은 삭제가 되지 않는다. 판매 중단 : Remove from Sale STEP.3 가격 및 사용가능 여부 선택 ㅡ왼쪽 카테고리에서 [가격 및 사용가능 여부]메뉴를 선택. STE.. 2023. 4. 18.
ReactorKit - CountApp ReactorKit - 예제: CountApp RxSwift에 대한 자세한 개념은 다른 글에서 소개하려고 한다. 일단 MVVM에 대해 설명을 해야할 것 같다. 기존 MVC에서 MVVM으로 확장하면서 데이터바인딩이라는 개념이 등장하게 된다. Model과 View, ViewModel을 사용하는 MVVM구조는 특정 View의 속성과 ViewModel의 속성을 연결한 뒤 ViewModel 속성이 변경되면 자동으로 View를 업데이트하게 하는 구조이다. 이때 연결한다는 것이 데이터 바인딩이다. ViewModel에 선언된 값이 변할 때를 didSet이나 willSet같은 PropertyObserver를 통해 다음 동작을 선언해주는 것이다. 이걸 RxSwfit를 사용하면 어떤 동작이 시작되고 끝나는 것을 하나의 St.. 2023. 2. 13.