- Total
목록오뚝이 개발자 (178)
꿈꾸는리버리
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/xAPy0/btrPgLfnid2/vUl0LVo5vGKrcKZsnSgeok/img.png)
OAuth 2 이란? 앱을 사용하다보면 앱 로그인을 카카오나 apple로 하는 경우가 발생하는데, 이런 경우가 OAuth를 사용해서 구현한 내용이다. 나무위키에 따르면 OAuth의 정의는 다음과 같다. 정의만으론.ㄴ.. 뭔 소린지 모르겠으니... 더 살펴보자. " OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다. " 1) 연합된 신원(federated identity) OAuth는 어느 앱이나 웹에서 직접 회원가입을 하는 것이 아닌, 믿음직스러운 기업의 로그인을 통해 서비스를 이용할 수 있도록한다. 이 때문에 사용자는 Google 계정 하나..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b40vTA/btrPeIRxO1z/xLO7JS2Q7RoZxfFJlrjbyK/img.png)
.yml ..?? 깃헙 이슈 템플릿을 만들 때 기존대로라면 이렇게 헥엠디로 입력할 수 있다. 하지만 .yml 을 사용하면 아래와 같이 깔꼬롬하게 issue를 남길 수 있다구~~ 만드는 방법 1) Create new file 클릭 2) .gitignore/ISSUE_TEMPLETE/이슈템플릿명.yml 작성 ( /를 입력하면 forder가 생성된다 ) 3) 하단에 내용 입력 name과 description은 이슈 생성할 때 설명란으로 보이고 title은 이슈 제목으로, lables는 우측처럼 라벨로 자동 설정된다. 예시 EX) Feature Template name: Feature Template description: 기능 추가할 때 쓰는 템플릿 title: "[Feature]: Feature Title"..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/QvcWJ/btrOfafpXWH/0n6oPoPyFc7iNtq4e8tmz0/img.png)
합격한 직후 블로그를 작성했더라면, 좀 더 생생하고 자세한 이야기를 전달할 수 있었을 텐데, 이제서야 블로그를 적게 되어 아쉬운 마음이 가득하다. 하지만 그때가 아닌 지금에서야 할 수 있는 이야기들을 추가하여 많이 다뤘으니 누군가에게 조금이나마 더 도움이 될 수 있는 글이 될 거라 믿는다. 우선 공식 홈페이지를 안 본 사람들은 우선 애플 디벨로퍼 아카데미 지원 공식 홈페이지를 훑고 오길 바란다 ! Apple Developer Academy @ POSTECH 이란? 어디에서 ? 포항 포스텍 기간은 ? 03월 ~ 12월 무엇을 지원해주는가 ? 수강료 X 아이폰, 맥북 대여 해줌 매달 장학금 나옴 기숙사 및 포스빌(포스텍 빌라) 거주 가능 무엇을 배우는가 ? 코딩, 디자인, 앱 비즈니스, 마케팅 등을 배움 !..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cC0rKr/btrMUeQSSLU/srLjBntOUThMhkPXkCEeGk/img.png)
Async Swift 002 세미나 이전에 Async Swift 001 세미나를 애플 개발자 아카데미에서 만난 지인을 통해 알게되어 참석하게 되었다. 유익한 강연들과 함께 너무 좋은 에너지들을 받아올 수 있어서, 다음 세미나도 참석하고 싶다는 생각을 많이 했었다. 계속 호시탐탐 기다리다 LinkedIn에서 공지가 뜬 것을 확인하고 바로 신청을 하게 되었다. ( 혹시나 못 보신 분들은 이전 세미나들을 해당 유튜브에서 확인 가능합니다!) 너무 유명한 곳에서 연사자 분들이 오셔서 많은 기대를 안고 세미나를 참여하게 되었다. 입구에서부터 끝날때까지 준비 위원회 분들이 많이 고생하신 흔적들을 느낄 수 있었다 :) 좋은 세미나 열어주신 분들에게 감사합니다는 말씀을 전하고 싶다 .. 세션은 다음과 같은 순서로 진행이..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cCVwoO/btrMt43jsLa/wUtjFBwA1pqlXMxPbekbAK/img.png)
이번 팀에서 슬랙으로 소통하기로 해서 슬랙 리마인더에 대해서 알아봤다. 우리는 데일리 스크럼이 매일 아침 자동적으로 생성되도록 활용했다 ! I want... ex) 주중 점심 12시 마다 식탁 채널에 "점심먹자" 스레드 올리기 리마인더 설정 방법 1. 식탁 채널 댓글에 "/"를 입력 2. remind를 검색하면 미니 템플릿이 나옴 ! 3. 원하는 대로 입력 /remind [누구] [스레드 이름] [시간] 날짜 설정 관련 정리 블로그 4. 리마인더 설정 완료 -> 이제 주중 12시에 스레드가 자동적으로 생성된다 ! 설정한 리마인더 목록을 보거나 리마인더를 삭제하고 싶다면? 해당 채널에 /remind list 를 입력하면 아래와 같이 전체 remind 목록을 확인 가능하고, 우측에 보면 삭제 버튼이 있다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/OdyhH/btrMlUzuKbL/IyVuSYkGKOsXRKLfchkF5K/img.png)
cherish 앱 보러가기 cherish cherish는 이런 기능들을 제공해요 # 요즘 나에게 하는 한마디 나에게 해주고 싶은 한 마디를 적어보세요. 매일 이 한마디를 읽는 것만으로도 많은 힘이 될 거예요. # 음악과 함께하는 시간 잔잔 apps.apple.com 일기를 좋아하는 사람들을 위한 앱 내가 처음 일기를 적게 된 계기는 중학교 3학년 같은 반의 한 친구 때문이었다. 그 친구는 항상 뭉뚱한 연필로 자신의 생각을 날려적은 흔적들이 가득한 노트 한 권을 끼고 다녔다. 나는 그런 친구의 모습이 너무나도 멋져보였다. 남들과 다른 취미를 가지고 있던 모습뿐만이 아니라, 그 친구의 견고하면서도 현명한 생각들이 그 마법의 노트에서 흘러나오는 듯했기 때문이었다. 그래서 나도 그 친구처럼 자신만의 멋을 찾..
만약 iOS가 14일 때만 foreground를 red로 주고 싶다고 하자. 1. View를 분기 처리 하기 struct ContentView: View { var body: some View { if #available(iOS 14.0, *) { Text("iOS 14.0") .padding() .foreground(Color.red) } else { Text("iOS 14.0 아님") .padding() } } } 2. modifier를 분기 처리 하기 이렇게 View extension에 분기 처리를 할 수 있는 함수를 추가하고, extension View { /// Applies the given transform if the given condition evaluates to `true`. ///..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/tEgf9/btrMd7yOtLu/CvAADx1AIKziHLa9ttOjqk/img.png)
이 위젯 미리보기에 localization 적용이 안 돼서.. 삽질한... 경험 공유 아래의 "이 부분" 이라고 표시되어 있는 두 줄이 윗 이미지처럼 위젯을 설명하는 글을 설정하는 코드이다. @main struct RelaxOnWidget: Widget { let kind: String = "RelaxOnWidget" var body: some WidgetConfiguration { StaticConfiguration(kind: kind, provider: Provider(), content: { entry in RelaxOnWidgetEntryView(entry: entry) }) .configurationDisplayName("Recently Played") // 이 부분 .description("Q..