All

·🍎 iOS & Swift
들어가며 개인 프로젝트였던 오오투두를 출시하기까지의 과정을 3~4편 정도로 가볍게 정리해보려고 합니다. 사실 글을 쓰고 다듬는 과정이 충분하면 좋겠지만 그렇게 되면 시간이 너무 오래 걸릴 것 같고 솔직한 후기를 작성하지 못할 것 같아서 의식의 흐름대로 쓰고자 합니다. 앱 스토어 링크는 https://apple.co/3fvzPlo 과 같으니 편하게 사용해보고 피드백을 주시면 감사하겠습니다. 현재는 1.0.0 버전으로 최소한의 기능만 가지고 출시한 상황이라 업데이트를 조금씩 할 예정입니다. 중간 아이디에이션 중 기존에 아이디에이션을 했던 것을 발췌해왔습니다. 생각을 모두 풀어쓰자면 너무 길어지기에 최대한 요약을 해왔어요. 그렇기에 기승전이 부족하고 결만 보이는 느낌이 들 수도 있습니다. 이 부분은 양해부탁드..
·🍎 iOS & Swift
그동안 너무 나태해졌던 나 자신을 반성하며 다시 공부도 열심히 하고, 글도 다시 꾸준히 써보고자 한다. 오늘은 fastlane을 이용해서 TestFlight에 자동으로 업로드할 수 있도록 세팅을 진행했다. 나 같은 경우 프로젝트 내 빌드 번호 증가시키는 룰을 날짜 + 빌드 횟수(ex. 2210041, 2210042, ..., 22100499)로 하고 있어서 스크립트의 변경이 필요했다. Ruby 문법을 잘 몰라서 서칭을 하다가 감사하게도 잘 쓰여진 블로그를 발견하여 일부만 수정해서 스크립트로 사용하였다. 프로젝트를 하다보면 수동으로 TestFilght에 업로드하는 작업이 너무 귀찮은 작업이 된다. 규모가 작으면 상관이 없겠지만, 규모가 커질수록 자동화라는 작업이 기능 개발 만큼 중요한 부분이 될 수 밖에 ..
·🍎 iOS & Swift
다음 글은 간단한 코드 조각을 남기기 위한 글이다. 알고리즘 문제를 풀거나 개발을 하다 보면 dictionary를 사용하는 순간이 생각보다 많다. (..는 예전에는 array만 주구장창 썼었지.. 적절한 자료구조를 적재적소에 쓰는 것도 실력인 것을 날이 갈수록 느낀다..) 뭐 여튼 dictionary를 사용하게 되는 가장 기본적인 예제가 아마 빈도를 계산하는 부분이 아닐까 싶다. 예를 들어서 다음과 같이 영화 장르가 있다고 생각해보자. let genres = ["comedy", "romance", "comedy" , "comedy" , "action"] 읽어보면 코미디 장르가 3편, 로맨스 장르가 1편, 액션 장르가 1편 있다는 것을 초등학생도 알 것이다. 근데 컴퓨터는 모른다. 알았다면 문제를 좀 더 ..
·🍎 iOS & Swift
문제 상황 UIToolbar 인스턴스를 코드로 생성해주고 레이아웃을 잡아주려고 하면 에러 메시지를 만나게 된다. 나는 기능이 안 되는 것보다 이 메시지 보는 것이 더 싫다. 해결 방법 // ❌ let toolbar = UIToolbar() // 🟢 let toolbar = UIToolbar( frame: CGRect( origin: .zero, size: CGSize(width: 100, height: 44) ) ) Size는 가볍게 아무 값이나 넣어주면 되는 듯 하다.
·🍎 iOS & Swift
URLSession 아래 3가지를 잘 기억해보자 - URLSession - URLSessionDataTask - Response, CompletionHandler URLSessionDataTask - 요청을 하는 하나하나(Task) - 일반 통신, 백그라운드 다운로드, 시크릿 모드 등 목적에 따라 다양한 Task로 종류가 나뉜다. URLSessionDelegate - + å로 무언가를 처리하고 싶을 때 사용한다. - 중간 중간 데이터를 얼마나 받아왔는지 확인하고 싶을 때 사용한다. - ex. 카카오톡 사진 10장 한 번에 저장 (다운로드 버튼을 누르면 한 장씩 다운로드 되는 것을 확인할 수 있다.) - 일반 통신에서는 속도가 굉장히 빠른 편이기 때문에 Delegate까지 사용할 필요가 없다. URLSes..
·🍎 iOS & Swift
URL 분석 구조 URL은 기본적으로 다음과 같은 구조로 이루어져 있다. scheme://[userinfo@]host[:port][/path][?query][#fragment] scheme 해당 부분에는 주로 프로토콜을 사용한다. 우리가 사용하는 프로토콜을 예로 들어보면 주로 http 또는 https 프로토콜이 위치한다. 프로토콜이란 어떤 방식으로 자원에 접근할 것인가를 정한 약속 또는 규칙이라고 할 수 있다. htttps는 http에 강력한 보안을 추가한 것이라고 생각하면 된다. userinfo URL에 사용자 정보를 포함해서 인증을 할 수 있는데, 거의 사용하지 않는다. host 도메인 이름 또는 IP 주소가 위치하게 된다. port http는 기본적으로 80 포트 번호를 사용하고, https는 44..
·🌱 SeSAC
레이아웃 이제 뷰에 대해서 달라지는 것은 거의 없다. 레이아웃 짜는 것은 거의 동일하고, 고려해야 할 부분은 Dynamic하게 들어오는 데이터를 어떻게 처리하고 관리할 수 있을지를 고민하는 것이 더 좋을 것 같다. Realm, TableView 갱신, TableView 로드 Realm 삭제 시 문제 발생 func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? { let favorite = UIContextualAction(style: .normal, title: "삭제") { action, view, completio..
·🌱 SeSAC
백업/복구 개인 정보 문제는 되게 민감한 문제다. 데이터에 대한 책임을 어느 정도 사용자에게 넘긴다. 1. 로컬 - 서버 자체 서버 서드 파티 (google drive, dropbox) : 사용자가 가지고 있는 클라우드 계정에 개인 데이터 업로드, 많이 사용하는 방식, 불편하고 어려운 점이 더 많음 파일 앱 : share activity 이용해서 외부로 백업 파일 전송(mac, kakao, email, ...), 디폴트 기본 앱, 아이폰 유저에게는 100퍼센트 대응 2. 백업 document - archive.zip(image, realm) 생성 - activity view controller 만약에 아이폰에 저장 공간이 없는 경우에는 어떡할까? (사용자에게 알림을 주는 방식으로 대처) 백업 파일이 없는..
taeeekki
'분류 전체보기' 카테고리의 글 목록 (3 Page)