일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Storyboard
- Chrats
- kotlin
- cocoapods
- UIButton
- Apple
- 그래프
- PyQt5
- 개발
- Python
- 개발자
- graph
- androidstudio
- library
- charts
- modal
- button
- 라이브러리
- TableView
- UITableView
- Xcode
- alamofire
- Android
- ios
- Swift
- UIKit
- 어플리케이션
- PyQt
- Chart
- ui
- Today
- Total
목록전체 글 (320)
Jiwift

iOS 뉴비 개인 앱 만들기 시작 (tistory.com) iOS 뉴비 개인 앱 만들기 시작 오래간만에 나만의 어플리케이션을 만들고 있다. 회사에서 배운 경험과 스택으로는 남들보다 많이 늦어진다는 생각이 항상 있기 때문에 집에서 공부를 하다가… 앱을 만들고있다. 적용하지 않 jiwift.tistory.com 앞전에 개인 앱 만들기 시작이라는 글을 올린 적이 있습니다. 그리고 출시를 완료했습니다. 이로서 개인적으로 진행하고 공개한 프로젝트가 3개가 되었습니다. 1. 사진에 숫자 입력 -> 아는 지인이 필요해서 출시한 앱(앱 주제를 고르기가 어려워 개인 맞춤으로 제작해 줌 ㅎㅎ) 2. MAutoClick -> SwiftUI를 공부할 겸 맥용으로 만든 오토마우스 앱! 오픈 소스이니 많은 기여 부탁드립니다. 3..

Privacy Manifest에서 NSPrivacyTracking와 NSPrivacyTrackingDomains를 확인하기 위해서 애플에서 알려준 방법입니다. 원하는 프로젝트에서 Product -> Profile 선택해 주세요. 이러면 앱 빌드를 진행하고 완료되면 창이 하나 뜨게 됩니다. 여기서 Network를 선택해주세요. Network를 선택하면 창이 바뀌고 녹화하는 버튼을 선택할 수 있습니다. 여기서 녹화는 로그를 기록하는 것입니다. 결과를 저장할 수 있습니다. 이미 다른 녹화가 진행 중이라면 끝내고 실행할 수 있습니다. 녹화를 진행하면 문제가 되는 지점에서 표시가 됩니다. 사진을 보면 기록 화면 왼쪽에 'HTTP Traffic', 'Network Connections', Points of Inte..

생각보다 중요한 내용인 것 같지만 경험해 본 자료도 없고 아직 PrivacyManifest를 제대로 하지 않았을 경우? 어떤 식으로 심사 과정이 진행되는지는 정보가 없어서 적용에 대한 방법들과 범위가 너무 궁금한데요… NSPrivacyTracking, NSPrivacyTrackingDomains, NSPrivacyCollectedDataTypes, NSPrivacyAccessedAPITypes 중에서 접촉되는 게 없는 타사 라이브러리도 PrivacyInfo를 추가해야하는 것인가?? https://developer.apple.com/support/third-party-SDK-requirements/ 에서 애플이 언급하지 않는 타사 라이브러리도 PrivacyInfo를 추가해야하는 것인가?? 내가 만든 정적 ..

[iOS/Swift] 'authorizationStatus()' was deprecated in iOS 14.0 초간단 해결 저는 위와 같이 코드를 사용해서 위치 권한 상태에 따른 팝업을 보여주도록 하였습니다. 하지만 iOS 14부터는 authorizationStatus()가 Deprecated 되기 때문에 수정을 진행하려고 합니다. 앱 최소 지원 iOS가 15이기 때문에 OS에 따른 분기는 없이 처리할 수 있습니다. CLLocationManager.authorizationStatus() 기존에는 이렇게 사용하던 코드를 CLLocationManager().authorizationStatus 이렇게 변경하면 됩니다. 소괄호를 CLLocationManager로 옮겨주기만 하면 됩니다. 아래는 사용 예시입니다..

제목 그대로 iOS 앱을 FSCalendar를 사용해서 출시하신 분이 있나요?? FSCalendar는 달력 라이브러리입니다. 많은 기능과 많은 커스텀을 제공하기 때문에 여러 디자인에 활용하기 좋은데요.. 스타와 포크 수만 봐도 많은 인기가 있는 라이브러리라는 것을 알 수 있어요. 깃허브에서 릴리즈는 2021(2.8.3)년이 마지막이지만 머지 내역을 보면 2.8.4가 가장 최신입니다. 저는 이 라이브러리도 PrivacyManifest가 적용되어야 한다고 생각이 드는데... 코드 기준으로는 문제가 없지만 써드파티 라이브러리니깐 PrivacyInfo 파일을 추가해야 한다고 생각되거든요.. 문제는 제작자가 중국인이고.. 응답도 느리다고 표시를 해두었네요. 제가 실제로 메일을 보냈는데, 한번 응답이 있고 그 후로..

오래간만에 나만의 어플리케이션을 만들고 있다. 회사에서 배운 경험과 스택으로는 남들보다 많이 늦어진다는 생각이 항상 있기 때문에 집에서 공부를 하다가… 앱을 만들고있다. 적용하지 않으면 솔직히 의미가 없다고 판단. 기능은 대단하지 않다. 그리고 이미 비슷한 기능을 가진 몇몇 앱들이 존재한다. 하지만 아이디어만 5번 갈아 엎고나서 그냥 만들기로했다. 시작한지는 한달이 좀 지났고 기능 정리는 거의다 끝내서 개발만 진행하면된다. 개발은 70%한 것 같은데,,, 디자인이 역시 꽝이다. 일단은 기능 중심으로 개발을 끝내 1차로 출시하고 디자인을 바꿔가는 유지보수를 진행할 예정이다. 아직은 배포 버전이 나오지 않고 기능과 디자인도 쉽게 변경되고 있어서 어차피 개인앱 커밋 내용은 중요하지 않아 보여서 '기본 다지기 ..

사진과 같이 화면 전체를 덮는 TableView를 생성하겠습니다. 간단한 코드 몇줄로 끝내기. lazy var tableView: UITableView = { let tableView: UITableView = UITableView() tableView.backgroundColor = .orange return tableView }() 우선 테이블 뷰를 선언해줍니다. self.view.addSubview(self.tableView) self.tableView.snp.makeConstraints { $0.top.leading.trailing.bottom.equalToSuperview() } 그리고 원하는 위치에서 선언과 제약 조건을 걸어줍니다. 이러면 기본적으로 화면에 표시됩니다. lazy var tabl..

‘스타트업’이라는 단어를 생각하면 떠오르는 이미지는 복지, 젊음, 도전, 실패를 두려워하지 않는 모습을 많이 떠올리게 된다. 드라마와 학원 광고에서 그렇게 묘사되는 경우가 많고, 성공한 스타트업들은 그런 모습이기 때문이다. 그래서 많은 사람들이 개발자, 스타트업하면 좋아 보이는 이미지를 같기도 한다. 하지만 사전적 의미로는 아래와 같다. 스타트업(Start-up)은 설립한 지 얼마 되지 않은 '신생 창업기업'을 뜻합니다. 1990년대 후반 인터넷 관련 분야가 성장하면서 창업 붐이 일었을 때 미국 실리콘밸리에서 처음 생겨난 용어라고 합니다 https://www.jobaba.net/thema/exprcDtl.do?seq=3807&cntntsSeCd=01 [어알정알] “다 똑같은 신생기업 아니야?” ‘스타트업..

그래프의 값을 표시한느 선을 빼고는 모든 것을 지우고 싶은 경우에 사용. 아마 Bar Graph도 동일 적용될 것입니다. // 범례 삭제 chart.legend.enabled = false // x축 Grid chart.xAxis.drawGridLinesEnabled = false // x축 라벨 chart.xAxis.drawLabelsEnabled = false // x축 선 chart.xAxis.drawAxisLineEnabled = false // 왼쪽 값 표시 제거 chart.leftAxis.enabled = false // 오른쪽 값 표시 제거 chart.rightAxis.enabled = false 위 옵션을 적용하면 그래프 값을 나타내는 선 말고는 모두 제거될 것 입니다.

원래 이런 글을 싫어하지만 요즘 번아웃이 조금 온 것 같아서 나를 되돌아보기 위해서 작성합니다. 회고? 일기? 내 생각? 글이기 때문에 반말로 진행하는 점이 양해 부탁드립니다. 지금 나는 약 3년 차 개발자이다. 3년을 다니면서 이직은 2번으로 3개의 회사를 다녔다. 첫 1년은 첫 번째 회사에서 Python으로, 그리고 나머지 2개의 회사에서 2년은 iOS 개발자로 보냈다(지금도 진행 중). 회사에서 진행했던 프로젝트는 단순하게 세 보면 6개이다. 첫 번째 회사에서 Python을 사용해서 정부 과제와 회사의 솔루션을 사용하기 위한 클라이언트를 만들었다. PyQt를 사용했고, 클라이언트를 개발하면서 재미가 있었고, 나도 개발자로 가능성이 있다고 스스로 판단하였다. 이후 iOS 개발로의 전환을 고려하게 되었..

오늘은 깃 허브 오픈소스를 기여하는 방법을 알아보도록 하겠습니다. 제가 이걸 하게 된 이유는,,, 기다리는 게 답답하고 내가 기여를 하면서 다른 사람들에게 의견을 들어볼 수도 있기 때문입니다. 우선 기여하고 싶은 오픈소스 깃허브를 찾아갑니다. 여기에 들어가면 Issue와 Pull Requests(PR)들을 볼 수 있습니다. 이슈를 직접 해결하거나 내가 원하는 기능을 추가해서 PR 하게 되면 오픈소스의 Contributor가 될 수 있는 것입니다. 1. 라이브러리 Fork 2. 라이브러리 수정 + Push 3. 라이브러리 PR 단계는 크게 3단계로 생각할 수 있습니다. 이것만 알아도 깃허브를 사용하시는 분들은 이미 어떻게 해야 하는지 감이 오실 겁니다. 그래도 한번 작성하도록 하겠습니다. 캡처된 사진은 서..

아주 간단하게 javascript를 통해서 띄우는 방법입니다. 각각 환경에 맞게 변경이 필요할 것 같습니다. 위 코드를 사용하면 무조건 버튼이 하나 생성되게 됩니다. 그리고 웹페이지가 열리게되는데, 부족한 부분이 있으면 에러 코드가 발생합니다. index.html 파일 하나 생성해서 안에 코드를 붙여넣고 실행해보세요. appleid-signin-client-id 로그인 서비스를 위해 생성된 Service Identifier를 입력해야합니다. 애플 개발자 ID가 필요하며 개발자 센터에서 가능합니다. appleid-signin-scope 요청할 Scope 이름(name)과 이메일(email). 띄어쓰기를 기준으로 구별하며 필요한 것만 입력하고, 둘다 필요하면 위 코드 예제처럼 "name email"하면 됩니..

Nams님의 프로젝트를 기반으로 수정을 진행한 코드입니다. [Swift] Multi Line Tag View 그리기 (tistory.com) [Swift] Multi Line Tag View 그리기 SwiftUI만 하다가 UIKit을 하게될 일이 생겼는데 요구사항중하나가 뷰를 크기에 맞게 여러줄로 표현해주는 뷰에요 테그를 표현하는 뷰같은 곳에 많이 쓰이는 UI로 알고있어요 결과물 부터 보시죠! nsios.tistory.com wlxo0401/MultiLineTagView: A Multi Line Tag View for iOS(Swift) (github.com) GitHub - wlxo0401/MultiLineTagView: A Multi Line Tag View for iOS(Swift) A Multi ..

SnapKit/SnapKit: A Swift Autolayout DSL for iOS & OS X (github.com) 2023년 12월 31일자로 PrivacyManifest 추가됨. 아래는 읽을 필요 없는 내용입니다. GitHub - SnapKit/SnapKit: A Swift Autolayout DSL for iOS & OS X A Swift Autolayout DSL for iOS & OS X. Contribute to SnapKit/SnapKit development by creating an account on GitHub. github.com Privacy Manifest를 필수 적용해야하는 대상들 중 하나는 SnapKit이다. 근데 이 라이브러리 마지막 업데이트는 2022년 4월이다. 인..

[iOS/Swift] 앱 스토어, 테스트플라이트 여러 개의 버전을 동시에 심사할 때 조심할 점 안녕하세요. 이번에는 필수적으로 알아갈 필요는 없지만 제가 겪은 일을 공유하려고 합니다. 우선 상황을 설명시켜 드리도록 하겠습니다. 저는 앱을 각각 3개의 버전을 준비하고 빌드와 제출 정보는 위와 같이 진행하였습니다. 하지만 애플 심사 과정에서 '2.0.1', '3.0.1'의 테스트 서버 ID가 로그인이 되지 않는다고 심사 반려를 당하였습니다. 처음에는 내가 빌드를 실수한 건가 생각하고 다시 빌드를 진행하고 깃에 태그도 남기고 브랜치도 따로 옮겨서 해당 빌드를 완전하게 기록했습니다. 그런데 다시 제출한 버전의 앱도 로그인이 되지 않는다고 합니다. 제 앱은 PROD, QA, DEV 이렇게 나누어진 상태인데,,, ..

[iOS/Swift] 앱 스토어, 테스트플라이트 여러 개의 버전을 동시에 심사 제목은 위와 같이 적어 두었지만 상황을 다시 설명하자면.. 앱 스토어에 정식 버전을 제출한 상태에서 외부 테스트플라이트를 사용하기 위해 다른 버전들도 심사를 태워도 되는가?입니다. ChatGPT에게 물어본 결과 앱 스토어 심사와 테스트플라이트 심사는 따로 진행되는 것이라고 합니다. 그리고 이렇게 하시는 분들도 있다고 하여 저도 테스트를 해보았습니다. 위 사진과 같이 동시에 준비를 하였습니다. 동시에 제출 가능하다! 앱 스토어 심사는 제출을 완료하는 순간 '심사 대기 중'으로 변경되고 테스트플라이트는 외부 그룹에 넣는 순간 '심사 대기 중'으로 변경됩니다. 이로서 동시에 모두가 가능하다는 것도 알 수 있습니다. (안되면 이미 기..

아는 게 없어서 찾아본 내용을 정리하기 위해 작성합니다. 틀리거나, 새로 추가해야 할 내용이 있으면 댓글로 알려주시면 감사하겠습니다. 2023년 12월 25일 기준 글입니다. 현재 라이브러리들을 찾아보면 Privacy Manifest가 적용되어 있는 라이브러리들이 있습니다. 위와 같이 발빠르게 적용해 준 라이브러리들이 있습니다. 하지만 깃 커밋을 보고 제대로 되어있다고 방심하면 안 됩니다. 우선 제대로 적용이 되고있는지 확인하는 방법을 알아봅시다... 1. 프로젝트에 라이브러리를 설치하고 Archive 한다. 2. Organizer 화면에서 방금 Archive 한 빌드를 우클릭한다. 3. Privacy Report를 확인해 본다. MarqueeLabel 라이브러리 같은 경우는 깃에 커밋을 보고 설치를 했..

아는 게 없어서 찾아본 내용을 정리하기 위해 작성합니다. 틀리거나, 새로 추가해야 할 내용이 있으면 댓글로 알려주시면 감사하겠습니다. 2023년 12월 24일 기준 글입니다. Upcoming third-party SDK requirements - Support - Apple Developer Upcoming third-party SDK requirements - Support - Apple Developer Feedback Assistant Submit feedback, report bugs, and request enhancements to APIs and developer tools. Send us feedback developer.apple.com Privacy Manifest와 함께 서명을 추가해..

아는 게 없어서 찾아본 내용을 정리하기 위해 작성합니다. 틀리거나, 새로 추가해야 할 내용이 있으면 댓글로 알려주시면 감사하겠습니다. 2023년 12월 24일 기준 글입니다. [iOS/Swift] Privacy Manifest Describing use of required reason API Describing use of required reason API | Apple Developer Documentation Describing use of required reason API | Apple Developer Documentation Ensure your use of covered API is consistent with policy. developer.apple.com 이것은 무엇인가.. Priv..

아는 게 없어서 찾아본 내용을 정리하기 위해 작성합니다. 틀리거나, 새로 추가해야 할 내용이 있으면 댓글로 알려주시면 감사하겠습니다. 2023년 12월 24일 기준 글입니다. Alamofire 깃 허브 이슈를 보던 중에 Privacy Manifest라는 것을 보았다.. 이게 뭘까 뭔지 몰라도 귀찮고 어떻게 보면 큰 일일수도 있을 것 같은 녀석이다.. Get started with privacy manifests - WWDC23 - Videos - Apple Developer Get started with privacy manifests - WWDC23 - Videos - Apple Developer Meet privacy manifests: a new tool that helps you accuratel..
iOS 16.4 이상 부터는 WebKit에서 로그를 확인하려면 옵션을 변경해야합니다. if #available(iOS 16.4, *) { self.webkit.isInspectable = true } 원하는 웹킷에 해당 코드를 적용하면 Safari를 통한 로그 확인이 가능해집니다.

iOS 프로젝트를 개발하면서 웹킷에서 정적웹이라도 보여야하는 경우가 있습니다. 상황마다 다를 수 있겠지만.. 쉽게 말하면 웹 서버 없이 HTML 파일을 가지고 웹킷에서 바로 사용 가능한 경우에 쓰입니다. 우선 웹을 띄운다는 소리는 웹의 구성 파일들이 있을 것입니다. 저는 web이라는 폴더 안에 폰트, 이미지, index 등을 넣어두었습니다. 이제 이 폴더를 iOS 프로젝트로 옮겨야합니다. - Copy items if needed - Create folder references ("Create groups"는 하면 안됩니다.) - Add to targets 위의 옵션으로 폴더를 가지고 옵니다. . └── TestEx/ └── TestEx/ ├── web/ │ ├── index.html │ ├── imag..

UITextField의 글자수를 제한하고 개수를 표시하기 위한 로직 작성 20 자리를 기준으로 작성한 코드 self.nameTextField.delegate = self 글자수를 세기 위한 Textfield의 delegate를 설정 extension ViewController: UITextFieldDelegate { func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { // 기존 글씨 + 입력된 글씨 = text길이 guard let text = textField.text else { return false } let newLength..

이번에는 코드를 이용해서 UIButton을 만들어 보도록 하겠습니다. 사실 매우 간단하지만, 처음에는 왜 사용하는지 모를 수도 있을 것 같긴 합니다. 제가 사용하는 이유는 버튼 색상, 폰트와 같이 공통적으로 많이 사용되는 버튼을 Class로 만들어서 관리하고 있습니다. 이렇게 Class로 버튼을 만들면 변경이 생길 경우 유지보수하는데 좋다는 점이 있습니다. 예시는 많은 내용을 담지는 않겠습니다. 기본적인 방법을 익히시고 프로젝트에 맞는 버튼을 만들어보세요. // 버튼 class PrimaryButton: UIButton { // 코드를 통해 인스턴스를 생성할 때 사용되는 이니셜라이저 override init(frame: CGRect) { super.init(frame: frame) self.commonI..

이번에는 iOS에서 주소 검색 기능을 구현하도록 하겠습니다. 무료 사용을 위해서 다음(카카오)에서 제공해 주는 API를 사용하도록 하겠습니다. [Open API] 카카오(다음) 주소 검색 API 사용 (tistory.com) [Open API] 카카오(다음) 주소 검색 API 사용 서비스에서 주소 검색이 필요한 경우에 사용하기 좋은 무료 API를 소개합니다. 다음에서 제공해 주는 API를 사용하면 쉽게 웹과 앱에서 주소 검색 기능을 구현할 수 있습니다. Key를 발급받을 필요 jiwift.tistory.com 우선 위에 글을 통해서 다음 주소 검색 API를 사용하기 위한 웹을 준비합니다. 위 글에는 iOS에서 사용하기 위한 다음 주소 검색 웹 코드와 적용법이 있습니다. // 네이티브 앱 코드 호출 let..

해당글은 iOS를 위한 글입니다. 서비스에서 주소 검색이 필요한 경우에 사용하기 좋은 무료 API를 소개합니다. 다음에서 제공해 주는 API를 사용하면 쉽게 웹과 앱에서 주소 검색 기능을 구현할 수 있습니다. Key를 발급받을 필요가 없습니다. 사용량에 대한 제한이 없습니다. 기업용이든 상업적 용도이든 상관없이 무료로 사용 가능합니다. 기초구역번호가 발급된 도로명 주소, 영문 주소를 확인 가능합니다. 행정안전부에서 제공하는 "도로명 주소" DB를 직접 업데이트받고 있으므로 가장 최신의 데이터를 이용하실 수 있습니다. 위에 설명만 봐도 너무나도 좋은 API란 것을 알 수 있습니다. 로고를 가리지 않고 사용한다면 문제가 생기지 않는다고 합니다. Daum Postcode Service User Guide Da..

개발자를 하면 야근이 많을까요? 아닐까요? 궁금해하시는 분들이 많습니다. 하지만 정답이 있는 것이 아니기 때문에 너무 많은 상황에 따라서 다를 것 같습니다. 하지만 "개발자"라고 야근이 많은 것은 아닙니다. 한 줄 요약을 먼저 하고 시작하자면,,, 상황, 인원, 프로젝트에 따라 너무 다름으로 회사의 전체적인 모습을 보고 방향을 정하자 정말 정말 개인적인 생각입니다. 정답도 아니고 각자 경험한 직장이 다르니 재미로 봐주세요. 개발자는 매일 문제를 풀어가는 직업입니다. 경력이 쌓이고 계속 공부를 한다면 해결 능력이 빨라지고 업무 효율이 늘어나 속도는 빨라지게 됩니다. 하지만 속도가 빨라진 만큼 새로운 문제들은 계속 들어옵니다. 단순하게 암기 정리만 하고 끝내는 게 아닌 수학 문제를 계속 푼다고 생각해야 합니..

트레일러 공개 한국 시간 2023년 12월 5일 오후 11시 GTA5가 출시되고 벌써 10년이 지났습니다. 그 사이에 레드데드리뎀션 2도 나오고 콘솔은 벌써 XboxOne, XboxOne X, Xbox Series X 등 많은 발전을 이루었습니다. 많은 사람들이 다음 작은 언제 나오는지 기다리고 있는 와중에 2022년 개발 단계 사진과 영상 유출 사건과 함께 GTA6 개발이 되고 있다고 공식화가 되었습니다. 락스타가 트위터에 글을 올리고 벌써 1년이 좀 더 지난 시점에 트레일러 공개를 발표하였고 사람들은 많은 기대감을 품고 트레일러가 나오기만을 기다리고 있습니다. 최근 수많은 AAA 타이틀들이 출시하고 많은 버그와 유저들의 기대감을 채워주지 못하고 금방 인기가 사그러지는 일이 많았습니다. 과연 락스타는 ..

급하게 작성하는 글... 불과 몇 시간 전에 [iOS/Swift] 색상 정의하고 관리하기 Assets, Enum, Extension (tistory.com) [iOS/Swift] 색상 정의하고 관리하기 Assets, Enum, Extension 앱 개발을 하다 보면 색상을 매번 적용할 수 없기 때문에 정의를 해서 사용하는 게 좋습니다. 제일 기본적인 방법으로는 다양하게 있습니다. 코드로 할 수 있고, Asset을 통해서도 가능합니다. 한 jiwift.tistory.com 위 글에서는 애셋과 extension을 통해서 UIColor를 다루는 방법을 소개했었습니다. 근데 작성하면서 새로운 기능을 알게 되었습니다. (기존 방법이 궁금하신 분들은 위 글을 참고해 주세요.) 위 코드를 보시면 저는 애셋에 맞게 변..

[iOS/Swift] Xcode 15 신기능 Assets 바로 사용하기 이미지, 색상 정의 (tistory.com) [iOS/Swift] Xcode 15 신기능 Assets 바로 사용하기 이미지, 색상 정의 급하게 작성하는 글... 불과 몇 시간 전에 [iOS/Swift] 색상 정의하고 관리하기 Assets, Enum, Extension (tistory.com) [iOS/Swift] 색상 정의하고 관리하기 Assets, Enum, Extension 앱 개발을 하다 보면 색상을 매번 적 jiwift.tistory.com Xcode 15 이상 버전을 사용하시는 분들은 최신 기능을 사용해보세요. 위에 글에서 정리되어있습니다.!! 기존에 방법이 궁금하신 분들은 아래 내용을 끝가지 읽어주세요.!! 앱 개발을 하다..