일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Swift
- alamofire
- PyQt5
- 그래프
- kotlin
- TableView
- 라이브러리
- UITableView
- modal
- graph
- PyQt
- 개발자
- charts
- 어플리케이션
- UIButton
- UIKit
- Chart
- Storyboard
- Xcode
- Chrats
- library
- cocoapods
- Apple
- ios
- button
- 개발
- ui
- Python
- androidstudio
- Android
- Today
- Total
목록전체 글 (276)
Jiwift
[iOS/Swift] Enum을 사용한 TabBar Item 관리 안녕하세요. 이번에는 Enum을 사용해서 TabBarViewController의 TabBarItem을 관리하는 방법을 소개하려고합니다. Storyboard를 사용하면 필요 없을 수도 있습니다. 그리고 더 좋은 방법이 있을 수 있습니다. 읽어보시다 별로면 새로운 방법을 추천해주세요.!! 저는 Storyboard 없이 코드 베이스로 작업을하고있었습니다. import UIKitclass BaseTabBarController: UITabBarController, UITabBarControllerDelegate { override func viewDidLoad() { super.viewDidLoad() sel..
재테크라는 단어를 자주 들어봤지만 사회적인 의미로 이해하는데 문제는 없으나, 사전적인 의미가 궁금하여 찾아보았습니다. 재: 財(재물 재) 테크: Tech 한자와 영어의 합성어다. 어원은 일본이라고 한다. 보유한 자금을 효율적으로 운용하여 재산을 불리는 행위. 자산관리, 재무관리를 뜻하는 용어이다. 쉽게 말해 돈을 관리하는 과정 속에서 재무 상태, 현금 흐름, 앞으로의 계획, 절약, 투자 등이 섞인 행위를 통하여 재산을 불리는 행위를 말한다. 하지만 지금 유튜브나 블로그를 많이 찾아보면 전부 투자만을 중심으로 다루는 것 같다. 투자를 통해 일반인들도 금융 활동에 참여하는 것은 매우 좋은 현상이라고 생각하지만, 관련 전체적인 부분까지 긁어주는 사람들이 있을까? 하는 생각이 든다. 솔직히 내가 ..
금융소득은 소득세법 제16조 및 제17조에서 열거하고 있는 이자소득과 배당소득을 의미한다. 은행, 증권회사, 보험회사, 종합금융회사, 투자신탁회사와 농·수협, 신용협동조합, 우체국 등에서 받는 예·적금, 예탁금 등의 이자소득과 국·공채, 금융채, 회사채 등에서 발생하는 이자와 할인액, 비영업대금이익과 주식 및 출자금에서 발생하는 배당소득(출자공동사업자가 받는 손익분배비율에 해당하는 금액 포함) 등을 말한다. 위는 국세상담센터에 나와있는 사전 정의. 말이 어려워서 그렇지 천천히!! 읽어보면 쉽게 이해되 실 겁니다. 바쁘신 분들을 위해서 제가 자주 사용하는 단어로 요약해 보면 "금융소득이란 이자와 배당금을 의미한다." 소득이라는 단어만 제거해도 우리가 흔하게 접하는 단어로 보인다. 자주묻는Q&A ..
[iOS/Swift] 앱에서 정적 라이브러리(.a)를 사용하는 분들이 있나요?? static library 안녕하세요. 이번에 갑자기 궁금한게 생겨서 글을 남깁니다. iOS 개발을 하면서 동적, 정적 라이브러리들을 사용할 수 있습니다. 그중에서 정적 라이브러리는 .a 파일 형식으로도 사용이 가능하지만 정보들이 많이 부족하여 얼마나 많은 분들이 사용하고 계신지 궁금하네요. framework는 많이 접해도 .a는 접할 일이 많이 없어서 검색해도 많은 정보를 얻지 못하는 단점도 있었던 것 같습니다. 프로젝트를 진행하면서 정적 라이브러리(.a)를 사용하신 경험이나 이유를 같이 공유해 주실 수 있나요?? 1. 이유:2. 사용 장점: 3. 사용 단점: 4. 상용 여부:5. 기타: 혹은 위 문항이 아..
깃허브 이슈에서 RxSwift 관리자(freak4pc)와 여러 사람들(저 포함)이 PrivacyManifest 대화를 나눈 내용을 요약한 글입니다. RxSwift는 애플이 언급한 라이브러리 리스트에 속해있다.mach_absolute_time가 있다.RxSwift 테스트를 위한 것이기 때문에 PrivacyInfo에 추가할 내용은 없다.심사 과정에서 Privacy Manifest 관련 메일은 오지 않는다.애플은 빈 PrivacyInfo를 추가하지 말라고 DTS가 언급한 적 있다.2024년 04월 25일 기준으로 심사에서 RxSwift에 관한 메일은 오지 않았다.RxSwift가 애플이 언급한 라이브러리에 속하지만 추가할 것이 없고 DTS는 빈 info를 추가하지 말라고 언급을 했던 상황이다. 애플에게 그럼에..
safearea의 상단, 하단 insets을 구하는 코드 let scene = UIApplication.shared.connectedScenes.first as? UIWindowScene let topPadding = scene?.windows.first?.safeAreaInsets.top ?? .zero let bottomPadding = scene?.windows.first?.safeAreaInsets.bottom ?? .zero UIApplication을 통해서 top과 bottom의 safeAreaInsets을 구할 수 있다. connectedScenes는 iOS 13부터 사용할 수 있다. How can I get the safeAreaInsets i… | Apple Developer Forums..
시작한 프로젝트에 참여하게 되면 그 틀을 이어서 가면 좋겠지만, 새로 프로젝트를 구성하다 보면 폴더 구조를 어떻게 잡아나갈지 고민을 많이 하게 되는 것 같습니다. 저는 그래서 초반에는 프로젝트를 진행하면서도 구조를 많이 변경했었습니다. 근데 개인 프로젝트를 계속 하다보니 어느 정도 제 손에 맞는 구조를 찾게 되었고 지금은 아래와 같이 사용하고 있습니다. 처음에는 화면별로 구성요소들을 모아서 작업을했었는데, 공통적으로 사용하는 애들이 생기면서 그것을 또 따로 묶게 되고 하다가 각 Class 별로 크게 나누고 그 안에서 세부적으로 더 나누는 것을 선택하였습니다. 더 좋은 구조가 있을거라고 생각하지만 프로젝트를 진행하면서도 계속 변경되기도 할 것이고, 많이 나누는 것이, 적게 나누는 것이 어떤 것이 좋은지는 ..
MapKit에서 사용자가 화면을 드래그해서 이동하거나 핀치 줌을 통하여 확대 또는 축소를 하는 것을 감지해 주는 Delegate가 있습니다. self.mapView.delegate = self Delegate를 원하는 곳에서 채택해줍니다. func mapViewDidChangeVisibleRegion(_ mapView: MKMapView) { print("mapViewDidChangeVisibleRegion") } func mapView(_ mapView: MKMapView, regionWillChangeAnimated animated: Bool) { print("regionWillChangeAnimated") } func mapView(_ mapView: MKMapView, regionDidChange..
애플에서 제공해 주는 MapKit을 추가하는 방법을 기록. 위와 같이 애플 지도를 화면에 띄우는 것이 목적입니다. 단순하게 보여주기 위한 것은 매우 간단하기 때문에 쉽게 따라 하실 수 있습니다. import MapKit 맵을 사용하기 위해서는 MapKit을 import해야합니다. 원하는 위치에 추가해 주세요. let mapView = MKMapView() MKMapView를 선언합니다. 변수는 간단하게 맵뷰로 하겠습니다. self.view.addSubview(self.mapView) 이제 선언된 맵뷰를 원하는 View에 추가를 해주세요. 저는 최상위 View에 추가를 했습니다. // Auto Layout 제약 설정 self.mapView.translatesAutoresizingMaskIntoConstra..
[iOS/Swift] 카카오 공유 SDK 라이브러리 피드(Feed) 탬플릿 간단한 조사 Image, Title, Description, Button 추가 가능합니다. Title이 생략되지 않는 최대 글자 수 숫자, 영문, 한글 길이가 다르므로 사용하시는 제목에 맞춰 테스트 해봐야합니다. Description이 생략되지 않는 최대 글자 수 텍스트 타입으로 메시지 발송하시면 200자까지 가능하나 Feed은 두줄만 가능합니다. 기기 해상도, 글자 크기에 따라서 다르게 보일 수 있지만 최대 두줄까지만 가능합니다. Title과 Description에서 특장 문자를 강조하기 텍스트 커스터마이징은 불가능합니다. ex) 굵기, 강조 등 카카오톡에 정해진 양식을 사용해야합니다. 우리가 JSON 형태를 넘기면 카카오톡 앱..
[iOS/Swift] Charts, DGCharts 차트 라이브러리 그래프를 만들기 위한 라이브러리를 이름을 소개하고 정리하는 글입니다. ChartsOrg/Charts: Beautiful charts for iOS/tvOS/OSX! The Apple side of the crossplatform MPAndroidChart. (github.com) GitHub - ChartsOrg/Charts: Beautiful charts for iOS/tvOS/OSX! The Apple side of the crossplatform MPAndroidChart. Beautiful charts for iOS/tvOS/OSX! The Apple side of the crossplatform MPAndroidChart. - ..
[iOS/Swift] 구조체를 JSON 형태로 변환하기 struct to json 안녕하세요. 오늘은 Codable로 구성된 Struct를 JSON으로 변경해 보겠습니다. struct AllUsersModel: Codable { let users: [UserModel] } struct UserModel: Codable { let name: String let age: Int } 우선 간단하게 Model을 두 개 만들었습니다. 사용자 정보를 담는 UserModel과 사용자를 담는 AllUsersModel로 구성했습니다. Codable을 채택하여 encode 할 수 있게 준비를 합니다. let users: [UserModel] = [UserModel(name: "오바마", age: 34), UserModel..
[iOS/Swift] 카카오 공유(Share) SDK 라이브러리 간단한 조사 KakaoSDKShare, KakaoSDKTemplate, KakaoSDKCommon 설치 필요 필수 라이브러리입니다. KakaoSDKShare만 설치해도 나머지 두개가 같이 설치됩니다. Package에서 dependencies 정보를 통해 추가 라이브러리 자동 설치됩니다. Info.plist 파일 Queried URL Schemes 추가 적용 필요 kakaokompassauth, kakaolink URL Schemes 추가 적용 필요 kakao네이티브Key 추가합니다. 만약 네이티브 key가 ‘1438’ 이라면 ‘kakao1438’로 추가 KakaoSDKShare, KakaoSDKTemplate, KakaoSDKCommon 사..
[iOS] Guideline 4.2 - Design - Minimum Functionality 어플을 만들 때 고민하지 않고 일단 만들기로 결심하고 나서 생각나면 일단 만들고 최소 기능으로 제출을 진행하고 있다. 이번 앱은 불안 불안했지만 역시나 기능이 부족하여 리젝을 받았다. 예상한 결과였지만 회신을 하지 않고 기능을 새롭게 추가하여 다시 제출하였다. 근데 역시나 같은 이유로 반려.. 처음부터 기능이 부족한 앱이었기 때문에 추가를 진행해도 큰 변화가 없었던 이유인 것 같다. 그래서 그냥 이 앱은 제출을 하지 않기로 했다. 다른 아이디어의 앱을 다시 만드는 게 더 빠를 것 같아서 다른 앱 제작을 시작했다.
Kakao SDK를 설치하고 사용하기 전에 간단하게 알아보는 시간입니다. 내용은 문서, 깃, 직접 질문을 통해서 알아보았습니다. https://github.com/kakao/kakao-ios-sdk SDK 다운로드 가능합니다. 개발자 센터 문서에 branch를 master로 설치하라고 되어있지만 Exact Version해도 문제는 없습니다. 2.22.0부터 Privacy Manifest 적용되었습니다. Xcode 15.3부터는 2.21.1 미만 버전에서 AppStore Connect 업로드 에러 발생합니다. ex) KakaoSDKCertCore, KakaoSDKFriendCore 라이브러리 종류가 많기 때문에 잘 골라서 설치를 해야 할 것 같습니다. KakaoSDK를 선택하면 모든 라이브러리가 설치됩니다..
여러분의 Apple Privacy Manifest 관련한 정보를 공유, 경험, 질문 등을 댓글로 남겨주세요. 앞으로 애플에서 적용될 정책 중 Privacy Manifest가 있습니다. 원래는 작년부터 심사 과정에서 Issue 메일을 보내주기로 했으나 별도에 공지를 하지 않고 올해까지 버티다가 3월 13일부터 메일을 발송하고 있습니다. 그리고 5월 1일부터는 애플이 원하는 대로 적용하지 않은 경우 심사에 영향이 미칠 수 있다고 합니다. Privacy Manifest에 입력해야 하는 내용은 아래와 같습니다. NSPrivacyTracking NSPrivacyTrackingDomains NSPrivacyCollectedDataTypes NSPrivacyAccessedAPITypes 위 목록에서 앱과 라이브러리 ..
Privacy Manifest 적용 유무를 확인하기 위해 메일을 받으려면 1. 테스트플라이트 외부 배포를 진행한다. - 외부 테스터에게 배포하는 빌드를 제출하는 경우 계속해서 메일 받을 수 있습니다. 2. 앱스토어 출시 심사 제출 - 출시를 위한 심사를 제출하고 취소하면서 계속 메일을 받을 수 있습니다.
[iOS/Xcode] 정적 라이브러리(Static Library) Privacy Manifest 추가하기 저는 회사에서 사용 중인 정적 라이브러리(Static Library) '.a' 파일이 있습니다. 근데 이번에 애플 뉴스에서는 라이브러리 혹은 앱에서 PrivacyManifest를 추가해야 한다고 했습니다. 이는 xprivacy라는 파일을 추가하고 안에 내용을 추가해야 합니다. 이것은 2024년 3월 13일부터 적용을 시작해야 합니다. 적용을 제대로 하지 않으면 메일을 받게 되고 2024년 5월 1일부터는 심사에 제한을 받게 됩니다. 적용이 필요한 Type - Privacy Nutrition Label Types - Privacy Accessed API Types - Privacy Tracking Do..
테스트를 위해서 '수동 출시' 옵션을 설정하고 애플 심사를 제출하였습니다. 개인앱은 제출하고 1분 정도 지나니깐 문제 되는 항목들을 메일로 받았습니다. 일부러 대응하지 않은 버전을 올렸는데, Privacy Manifest 문제 메일을 원래 이렇게 빨리 보내주는지는 더 확인해봐야 할 것 같네요. 저 같은 경우 총 2개를 테스트했습니다. 개인앱 - 오픈소스만 존재함, - 오픈소스 개발자들이 대응해준게 있으면 일단 최신 버전으로 사용 - 앱에 대한 PrivacyManifest는 그냥 단순하게 PrivacyInfo만 추가만 한 상태, 완벽하게 내용을 채우지 않음 - 제출 후 심사 대기 상태에서 메일이 1분안에 날아왔음. - Privacy Nutrition Label Types도 안했는데 메일에 내용이 없음 결과..
Privacy Manifest 정책 애플 일정 뉴스 App Store 앱 제출을 위한 개인정보 보호 관련 업데이트 2024년 02월 29일 개발자는 자신의 앱에 포함된 모든 코드에 대한 책임이 있습니다. Apple은 WWDC23에서 널리 사용되는 타사 SDK를 위한 새로운 개인정보 보호 매니페스트 및 서명 기능을 발표했으며, 개발자가 앱의 개인정보 보호 매니페스트에서 일부 API 세트를 사용하는 데 대한 허용된 사유(영문)를 선언해야 함을 공지한 바 있습니다. 이러한 변경 사항은 개발자가 타사 SDK의 데이터 사용 방식, 소프트웨어 종속성 보안, 사용자 개인정보를 위해 제공되는 추가 보호 기능 등을 파악하는 데 도움이 됩니다. 3월 13일부터: App Store Connect에 사유가 필요한 API를 사..
앱을 만들면서 설정 메뉴를 어떻게 구성하고 만들어 나가야 하는지 생각을 공유 앱 더 보기(설정) 메뉴는 어떤 것들이 필요할까? with 복붙태그 # '복붙태그' 앱은 출시 목적도 있으나 제가 배운 것들을 배포하여 테스트하는 목적을 가지고 있습니다. 그렇기 때문에 보시기에는 기능을 개발 추가하는 데 있어 계속 돌아 돌아간다는 느낌을 받으실 수 있다는 점 양해 부탁드립니다. 안녕하세요. 앱을 만들다 보면 메뉴는 어떻게 구성하고 설정은 어떻게 해야 하는지 고민할 때가 많은 것 같습니다. 저 같은 경우는 디자인을 잘하지 못하기 때문에 기본적인 구성을 갖춘 앱처럼 보이기 위해서 '더 보기' 메뉴를 추가해서 허전함과 구색을 갖추었습니다. 초기에 메뉴입니다. 하단 탭바는 어느 정도 구성을 갖춘 것 같으나, 설정에서는..
[SPM] Swift Package 라이브러리 02 - Privacy Manifest(PrivacyInfo) 추가 1. PrivacyInfo 파일 추가 배포하려는 라이브러리의 Package에 'App Privacy'를 추가해 줍니다. ' 2. PrivacyInfo 내용 추가 추가된 PrivacyInfo 파일의 이름은 변경하지 않아야 합니다. 그리고 +버튼을 누르면 리스트가 나오는데 추가해 주면 됩니다. '+' 버튼을 눌러서 입력이 필요한 내용을 추가합니다. 자동 완성이 되니깐 일단 추가합니다. 3. Package 설정 package.swift로 이동해서 target의 설정을 변경합니다. 기본적으로는 name만 있을 텐데, 저는 path와 resoureces를 추가하였습니다. path는 설정하지 않아도 되..
[SPM] Swift Package 라이브러리 01 - 생성하는 법 1. Git 생성 및 Clone SPM 라이브러리를 저장하고 배포하기 위한 TestSPM Git을 생성합니다. 원하는 위치에 Clone을 수행합니다. ignore 파일이 필요한 경우 저는 이걸 사용했습니다. 2. Swift Package 생성 swift package init 터미널로 'TestSPM' 폴더로 이동하고 'swift package init'을 해줍니다. 그러면 이렇게 Package 파일들이 생성되는데 이 상태로 깃에 한번 올려봅니다. 3. 코드 작성 public class TestSPM { public init() { } public func sayHello(name: String) { print("\(name) Hello..
[iOS/Xcode] Failed to load Info.plist from bundle 에러 해결하기 Xcode 업데이트 Xcode를 업데이트하고 나서 Failed to load Info.plist from bundle 에러가 발생했습니다. 저는 파이어베이스 버전이 문제였습니다. 파이어베이스를 사용하시는 분들은 한번 확인해 보세요. 10.22.0으로 변경. Firebase Apple SDK Release Notes (google.com) Firebase Apple SDK Release Notes Send feedback Firebase Apple SDK Release Notes Stay organized with collections Save and categorize content based on y..
SPM Privacy Manifest 추가를 까먹지 않기 위해 간단하게 메모한 글입니다. 다음에 더 자세하게 다루겠습니다. Privacy Manifest를 공부하다가 SPM을 통한 라이브러리 배포를 진행하고 Privacy Manifest까지 적용했습니다. 테스트를 위해서 앱을 만들어서 배포를 할 정도로 직접 하지 않으면 만족하지 못해서 간단하게 라이브러리를 하나 만들어서 깃으로 배포하고 테스트를 진행해 보았습니다. 방법을 간단하게 말하면 Package를 열어서 리소스에 xcprivacy만 잘 연결해 주면 적용이 됩니다. 이전에는 Target 설정도 중요한 줄 알았는데, 아니었습니다. 그냥 Package 설정만 잘하면 됩니다. 다음에 더 자세히 다루겠습니다. 테스트를 위한 라이브러리 wlxo0401/JDr..
정적 라이브러리(Static Library, .a) Privacy Manifest 추가에 대한 생각 2024년 03월 13일 이후 최신 내용은 아래 링크 [iOS/Xcode] 정적 라이브러리(Static Library) Privacy Manifest 추가 (tistory.com) [iOS/Xcode] 정적 라이브러리(Static Library) Privacy Manifest 추가 [iOS/Xcode] 정적 라이브러리(Static Library) Privacy Manifest 추가하기 저는 회사에서 사용 중인 정적 라이브러리(Static Library) '.a' 파일이 있습니다. 근데 이번에 애플 뉴스에서는 라이브러리 혹은 앱에서 jiwift.tistory.com 2024년 03월 13일 이전 내용 스태틱..
Xcode15 iOS 앱 이름, 권한 동의, 메뉴 등 현지화를 위한 다국어 지원 앱 현지화를 위해서 String Catalog를 사용합니다. 파일을 생성할 때 이름을 정해주기만 하면 Xcode와 앱이 알아서 언어를 설정해 줍니다. String Catalog 이름은 위와 같이 설정해 주면 됩니다. Localizable: 앱 안에서 사용하는 String Catalog InfoPlist: 권한 동의나 앱 이름에서 사용하는 String Catalog 앱 안에서 사용하기 위한 String Catalog입니다. Key를 사용해서 설정된 언어를 불러옵니다. self.topTitleLabel.text = String(localized: "Key") 위와 같이 Key 자리에 미리 설정한 것을 입력해 주면 앱에서 알맞게 ..
Framework에 Privacy Manifest 추가 실험하기 애플에서 써드파티 라이브러리에 Privacy Manifest를 추가해야 한다는 뉴스를 접했습니다. 그래서 한번 실험 삼아 해보는 글입니다. 자세한 내용을 다루지 않습니다. Privacy Manifest를 추가하는 방법은 App 혹은 Framework 프로젝트에 PrivacyInfo 파일을 추가하고 안에 내용을 채워 넣는 것입니다. 앱에 적용하는 것은 대충 알겠는데 Framework에 추가해도 잘되는지 실험해보고 싶었습니다. 일단 임시로 Framework를 생성하고 PrivacyInfo를 추가하였습니다. 테스트를 진행할 앱 프로젝트에 'MyTest'라는 프레임워크를 추가하였습니다. 추가되었는지 확인하는 방법은 아카이브를 진행하고 Privacy..
Xcode Framework Dynamic과 Static 제일 기본적인 차이 기록 많은 것을 알아보기보다는 기본적인 차이점 조금 알아보도록 하겠습니다. Framework의 빌드 옵션에서 Dynamic과 Static을 나누어서 빌드가 가능합니다. 사용하고자 하는 앱의 프로젝트에서 Framework를 추가하고 import를 통하여 사용 가능합니다. Dynamic이던 Static이던 앱의 빌드는 성공합니다. 하지만 코드를 수행하는 곳에서 차이가 있습니다 Dynamic 프레임워크: [Embed & Sign, Embed Without Sign]으로 설정해야 코드 수행 가능 Static 프레임워크: [Embed & Sign, Embed Without Sign, Do Not Embed] 설정에서 모두 수행 가능 빌드..
Set Xcode Build Settings User-Defined CONFIGURATION_BUILD_DIR 설정 원하는 타겟을 선택하고 Build Setting으로 이동하고 상단에 위치한 '+'를 눌러줍니다. 그럼 이렇게 생긴 메뉴가 추가됩니다. 'Add User-Defined Setting' 선택 메뉴를 선택하면 사진 처럼 'User-Defined' 옵션칸에 새로운 setting이 추가됩니다. 저는 'CONFIGURATION_BUILD_DIR'를 추가하였습니다. ../원하는폴더이름/원하는폴더이름/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 값을 이런식으로 적용하면됩니다. ../폴더이름/라이브러리/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAM..