일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- library
- Swift
- Python
- Chrats
- 라이브러리
- Xcode
- ui
- Chart
- charts
- modal
- graph
- 어플리케이션
- 개발
- UIKit
- kotlin
- alamofire
- 그래프
- cocoapods
- 개발자
- Android
- UIButton
- Apple
- Storyboard
- TableView
- PyQt5
- ios
- androidstudio
- button
- UITableView
- PyQt
- Today
- Total
목록2024/02 (14)
Jiwift
String Catalog를 사용해서 앱 다국어 지원 완료 String Catalog를 사용해서 앱 다국어를 추가한 모습입니다. 퇴근하고 개발하다 보니 시간이 많이 부족하여 화면과 문구를 특정 문자로 정의하는 부분은 스킵하였습니다. 그래서 Key를 표현하고자 하는 문자 그대로를 사용하기로 했습니다.. 다른 사람들과 공유하는 프로젝트가 아니기 때문에 특정 규칙 없이 문자 그대로를 사용해도 적용해야 하는 위치와 내용을 알 수 있을 것 같았기 때문입니다. (기능이 많아지면 문제가 생길 것 같음) 그럼에도 불구하고 나 혼자서도 혼란이 생길 수 있는 부분은 KEY 문자 앞에 구분을 위해 "태그 그룹", "태그"와 같은 문구를 추가하여 구분 지을 수 있게 했습니다. String Catalog를 사용하면 앱 다국..
이번에는 앱의 다국어 지원을 추가해보려고 합니다. 앱이 기능이 더 추가된다고 생각하면 지금 타이밍에 하는 게 맞는 것 같아서 추가를 해둬야겠습니다. 영어와 한글 두개를 먼저 지원하는 방향으로 가야겠습니다. 다국어 지원을 하기 위해 찾아본 링크만을 위한 글입니다. iOS Localization. Xcode 15 신기능 스트링 카탈로그 | by woozoobro | Medium Swift) Localizing - 다국어 처리하기 (tistory.com) Swift) Localizing - 다국어 처리하기 안녕하세요 :-) 소들입니다 오늘은 Swift에서는 다국어를 어떻게 처리하는지에 대해 공부할 거예여! 다국어 처리가 무엇이냐 하면 우리가 화면에 다음과 같은 Label을 하나 만들고 text를 지정했어 ba..
iOS 앱 데이터 서버 없이 백업과 복원을 무료로 하는 법 (tistory.com) iOS 앱 데이터 서버 없이 백업과 복원을 무료로 하는 법iOS 환경의 앱을 Swift로 구현하면서 앱 데이터 백업과 복원을 무료로 하는 방법과 생각을 공유합니다. 개인이 앱을 만들다 보면 서버 없이 구현하는 경우가 많습니다. 이런 경우 DB는 다양한 라이jiwift.tistory.com 지난번에 위와 같은 글을 작성한 적이 있습니다. 일단 생각한대로 개발을 진행했고 생각한대로 동작하는 것까지 완료했습니다. 하지만 압축 과정에서 사용한 ZIPFoundation 라이브러리가 패스워드를 지원하지 않았기 때문에 압축에 비밀번호는 못 걸었습니다. 더 좋은 백업 방법이 있겠지만 왜 이 방법을 선택했냐면.. 그냥 해보고 싶었기 때문..
애플 Privacy Manifest 관련 메일을 받아보신 분이 있나요?? 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 2023년에 발표된 내용에 Privacy Manifest가 있습니다. 그 발표 후로 문제가 되는 앱에 대해서는 메일을 통해 알려주겠다고 나와있고, 2024년 봄부터는 앱 심사에도 영향이 간다고 공지가 되어있습니다. 혹시 위 내용과 관련해서 메일을 받..
Privacy Manifest를 앱에 추가해 보신 분 있나요?? 앱과 라이브러리에 PrivacyInfo를 추가해야 하는 것으로 알고 있는데, 앱에는 어떻게 추가해야 할까요?? 오픈 소스 라이브러리들이 하는 방식과 동일하게 그냥 추가하면 되는 것인지... 의견을 공유해 주시면 감사하겠습니다.
iOS 환경의 앱을 Swift로 구현하면서 앱 데이터 백업과 복원을 무료로 하는 방법과 생각을 공유합니다. 개인이 앱을 만들다 보면 서버 없이 구현하는 경우가 많습니다. 이런 경우 DB는 다양한 라이브러리가 있다고 해도 사용자의 데이터를 백업하고 복원하는 데는 무리가 있습니다. 일단 서버를 사용하지 않고, 백업과 복원이 가능해야 하고, 돈이 안 들어야 하고, 파일을 안전하게 보관해야 한다는 조건이 있습니다. 이미 알고 있던 것 CoreData 앱 데이터를 백업을 해주지만, 저는 Realm를 사용했기 때문에 생각을 하지 않기로 했습니다. 구글 드라이브 사용자의 구글 로그인을 통해서 드라이브 접근 권한을 받고, 드라이브 안에 앱 저장 공간을 확보하는 것으로 알고 있습니다. 무료라고는 하나 API를 연결하고 ..
fastlane 간단하지만 환경에 따라서 간단하지 않을 수 있습니다. 이럴거면 그냥 archive하지 설정을 이렇게 어렵게해야하나... 했지만.. 적용하고나니깐 알겠습니다. 명령어 돌리고 화장실을 다녀오니깐 확실하게 느껴지더라고요. 일단 저는 Testflight까지만 진행했고 아직 심사까지하는 절차는 하지 않았습니다. Testflight를 기준으로 업로드, 수출 규정 준서 체크까지 알아서 다해줍니다. 사진을 보시면 8분을 절약했다고 나와있네요. 심사 제출까지 해보려고했는데 에러가 발생해서 이 부분을 해결하고 테스트를 해봐야할 것 같네요. # This file contains the fastlane.tools configuration # You can find the documentation at http..
Error uploading '경로/경로/경로.ipa'. Unable to upload archive. Failed to get authorization for username '이메일' and password. ( The call to the altool completed with a non-zero exit status: 1. This indicates a failure. Could not download/upload from App Store Connect! Error uploading ipa file: [Application Loader Error Output]: Error uploading '경로/경로/경로.ipa'. [Application Loader Error Output]: Unable ..
fastlane 적용 법이 아닌 그냥 신세 한탄하는 글입니다.. 요즘 면접이나 우대사항을 보면 CI/CD, fastlane 같은 게 필수적인 것 같다. 그래 사용하면 편리하다는 건 알겠다. 근데 그것을 적용하기 위해서는 팀원들이 공감하고 같이 사용해야 한다. 혼자만 해서 무슨 의미가 있을까.. 근데 앱하나 그냥 만드는 것도 따라오기 벅찬 사람들도 있다. 근데 내가 적용한다고 좋아할까?? 업무외적으로 시간을 더 사용해야 하는 회사라면 더욱더 그렇다. 물론 서비스를 가진 회사이거나, 공부를 좋아하는 사람들이 모인 곳이면 누구 한 명이 적용하는데 시간을 사용하고 나머지 인원들이 업무 서포트해 줄 수 있다. 근데 나는 그런 상황이 아니잖아? 물론.. 사람들을 설득하는 것도 능력이라지만.. 그럴 수 있는 환경이라..
JTAppleCalendar에서 선택과 상관없이 오늘 날짜를 바로 표시하는 방법 지난 글 예제를 사용하면 날짜를 선택하는 기능이 있습니다. 이번에는 선택 없이 현재 날짜를 표시하도록 하겠습니다. 일단 오늘 날짜를 표시하기 위한 View를 Cell 안에 하나 생성합니다. 저는 정사각형으로 생성하였습니다. 그리고 Cell 코드에 IBOutlet을 todayView라는 변수로 연결하였습니다. 생성한 View는 색상을 지정해 주어서 눈으로 확인 가능하게 합니다. // DateComponents를 사용하여 두 날짜의 연, 월, 일 부분을 추출합니다. let components1 = Calendar.current.dateComponents([.year, .month, .day], from: date) let com..
JTAppleCalendar에서 특정 이벤트가 있을 경우 달력의 시작점과 끝점으로 한 번에 이동하는 기능 저는 StartDate 버튼과 endDate 버튼을 생성하였습니다. @IBAction func startDateButton(_ sender: Any) { self.calendarView.scrollToSegment(.start) } @IBAction func endDateButton(_ sender: Any) { self.calendarView.scrollToSegment(.end) } 그리고 위와 같이 코드를 작성하면 시작과 끝으로 한번에 이동이 가능하게 됩니다. 이전 달, 예정 달로 이동하는 방식과 동일하기 때문에 필요한 상황에 잘 사용하면 될 것 같습니다.
JTAppleCalendar를 사용하면서 달력을 지난달로 이동하거나 예정 달로 이동하는 기능을 알아봅니다. 저는 이벤트 발생 조건을 버튼으로 사용하려고 2개를 생성해 주었습니다. @IBAction func next(_ sender: Any) { self.calendarView.scrollToSegment(.next) } @IBAction func previous(_ sender: Any) { self.calendarView.scrollToSegment(.previous) } 그리고 IBAction을 연결해 주고 위와 같이 작성하였습니다. 정말 간단한 방법으로 앞/뒤 달을 이동 가능하게 만들어 저 있습니다. 버튼 혹은 특정 이벤트를 통해서 달력을 컨트롤할 수 있습니다.
JTAppleCalendar에서 스크롤 발생 시 페이징 기능으로 동작하게 하기 Storyboard로 작업하시는 분들은 Scoll View 옵션을 지정해서 페이징을 on/off 하실 수 있습니다. self.calendarView.isPagingEnabled = false 코드로는 이런 식으로 작성하면 on/off가 가능합니다. 그냥 UICollectionView의 기능을 사용하는 것이라서 이미 아시는 분들은 쉽게 찾으셨을 것 같습니다. 동작 모습
JTAppleCalendar는 세로, 가로를 설정할 수 있습니다. 매우 간단하기 때문에 짧게 끝날 것 같습니다. 달력을 보여주는 방법은 지난 글을 확인해 주세요. 위 사진과 같이 Storyboard를 사용하시는 분들은 UICollectionView의 Scroll Direction을 'Vertical, Horizontal' 중에서 선택해 주시면 됩니다. self.calendarView.scrollDirection = .horizontal 코드로 생성하면 이런 식으로 가능합니다. 좀 더 응용해 보면 위와 같이 버튼을 두 개 만들어서 방향을 원하는 순간에 변경할 수 있습니다. @IBAction func horizontalButton(_ sender: Any) { self.calendarView.scrollDi..