Firebase는 구글에서 만든 플랫폼으로, 별도의 서버를 만들 필요 없이 사용자 인증 및 관리를 할 수 있도록 해준다. 일반 이메일 인증 부터 구글 이메일, 애플 아이디 등 다양한 소셜 로그인 등을 지원하고, 공식 홈페이지에서 모든 플랫폼에 대한 상세한 사용 메뉴얼도 제공한다. Cocoapods 동명의 개발 팀에서 만든 dependency management 프로그램이다. mac 터미널에서 사용하는 프로그램으로, framework를 관리한다. 예를 들어 프로젝트에서 GoogleSignIn framework를 사용하려고 한다. google이 제공하는 링크를 찾아서 framework를 다운 받고 프로젝트가 있는 위치로 옮긴 뒤, 프로젝트의 의존성 경로와 plist 등을 직접 수정하는 방법과 cocoapod..
서버에 파일을 저장하고 이 파일을 불러와서 이미지로 사용하는 view를 만들어 보려 한다. 먼저 이미지 파일이 서버에 어떤 식으로 저장되어 있는지 알 필요가 있는데, 인터넷에서 아무 사진이나 검색한 뒤 브라우저에서 정확히 이미지만 보일 때 까지 접근하면 주소창에 이미지의 경로 주소가 나온다. 사실 이것 또한 방법의 차이일 뿐 어떤게 정답이라고 할 수는 없는 부분인것 같다. 위처럼 만들면 데이터 베이스에는 파일이 아니라 파일이 저장된 경로를 저장하고, 실제 파일은 서버가 접근할 수 있는 파일 디렉토리에 저장하는 방법을 채택할 수 있다. 현재 서버와 데이터베이스는 데스크탑에서, IOS 프로젝트는 맥북에서 실행하고 있는데, 예상할 수 있는 이미지 파일 저장 및 로드 구조는 대략 이렇게 된다. 데이터 베이스는 ..
최근 다른 카테고리 포스팅에는 개인적으로 느낀 난이도 별로 Beginner, Advenced, Master로 나눠서 작성했는데 IOS는 하나의 애플리케이션을 만드는 과정을 나누어 담다 보니 Training이라는 등급으로 퉁 쳐서 작성하고 있다. 이 등급은 그렇게 큰 의미가 없는 것 같다. 분류 방법을 다시 생각해 봐야겠다. 서버로부터 데이터도 받아 오겠다 끌어내려서 새로고침 되는 기능을 만들어 보자. UITableView, UIScrollView 등 끌어내리는 동작을 할 수 있는 view들은 보통 UIRefreshControl 이라는 view를 가지고 있어서 이걸 통해서 indicator를 보이게 하거나 이벤트를 처리할 수도 있지만 Profile은 sticky header autolayout이 동작하고 ..
프로필 화면을 초기화 할 때 데이터를 코드에서 직접 생성해서 초기화 하고 있다. 로컬 데이터가 있으면 파일을 읽어서 초기화 하도록 만들긴 했지만 프로그램에서 직접 처리한다는 점은 변함이 없다. 이 프로필 데이터를 서버에서 받아올 수 있도록 만들어 보자. 서버 서버 개발을 다루는 포스팅이 아니기 때문에 정말 간단하게 서버를 구축하고 통신하는 부분으로 넘어가자. 먼저 서버를 만들어야 한다. 서버는 어떻게 만들어야 하나.... 서버를 만들기 위한 여러가지 프레임 워크가 있지만 spring-boot가 가장 먼저 눈에 띄어서 spring-boot로 만들기로 했다. start.spring.io 로 들어가서 spring-boot 프로젝트를 생성하고 다운 받았다. 콘솔에서 mvnw라는 wrapper를 실행시켜서 jar..
아 정말 이름이 너무 길다. 이름만 봐도 무슨 일을 하는지 알 수 있어서 좋지만 이렇게 긴 영어단어를 띄어쓰기도 없이 쓰면 줄바꿈이 엉망이 된다. 아무튼 이 전 포스팅에서 UIViewControllerTransitioningDelegate를 사용하면서 animationController 뿐 아니라 interactionController도 있다고 했는데 바로 그 interactionController로 사용할 수 있는 class다. 이 class(protocol이 아니다)를 가지고 버튼을 누를 때 말고 pan gesture를 할 때도 side menu가 보일 수 있도록 만들어 보자. dismiss 할 때는 이전과 동일하게 dimmingView를 탭 하면 dismiss가 일어나도록 하고, present 할 ..
많은 애플리케이션이 SideMenu를 사용하고있다. XCode는 TabViewController, NavigationViewController 등은 제공하지만 SideMenu는 제공하지 않는다. 그래서 직접 만들어보기로 했다. 좌측 상단에 버튼을 추가하고 버튼을 눌렀을 때 새로운 ViewController를 추가할 수 있도록 만들면 될 것 같다. let sideButton = UIButton() sideButton.setImage(UIImage(systemName: "line.horizontal.3"), for: .normal) sideButton.addTarget(self, #selector(presentSideMenu), for: .touchUpInside) scrollView.addSubView(s..
SwiftUI에서 처음 만들었던 예제인 StickyHeader를 UIKit을 활용해서 만들어보자. 이전 포스팅에서 MVC 패턴으로 나누면서 controller 부분을 넘어갔다. 지금까지는 사용자의 입력에 따라 view가 바뀌는 부분이 없었기 때문에 view와 controller를 분리해서 생각할 부분이 없었는데 이번에 StickyHeader를 만들면서 둘을 분리해서 생각해 볼 수 있을 것이다. Header constraints 지금까지 만든 화면을 다시 보면 가장 아래에 UIView부터 UIScrollView, UILabel 등을 추가해서 만들었다. 이 상태로 실행해보면 header가 scroll 상단에 붙어있기는 하지만 아래로 스크롤 할 때 같이 스크롤 된다. sticky header는 아래로 스크롤 ..
Swift4 부터 JSON 데이터를 다룰 수 있는 Codable이라는 protocol이 추가되었다. 정확히 말하면 JSONEncoder, JSONDecoder 라는 JSON parsor가 요구하는 protocold로 JSON으로 작성된 데이터를 읽어서 저장할 수 있는 Decodable, Swift 데이터를 JSON으로 변환할 수 있는 Encodable, 그리고 이 두가지를 모두 가능하게 하는 Codable, 이렇게 세 종류가 있다. Codable은 Foundation에 정의되어 있기 때문에 사용하기 위해서는 Foundation을 import해야 된다. 숫자나 문자열을 저장하려면 Int, Float, String을 사용할 수 있고, 또 다른 codable을 사용할 수도 있다. General 일반적으로 변환..
- Total
- Today
- Yesterday
- Git
- 운영체제
- C/C++
- 데이터베이스
- SHADER
- OS
- 알고리즘
- C
- rxswift
- mongoDB
- Java
- 수학
- Spring
- ue4
- winsock
- 드라마
- scala
- 국내여행
- swift
- machine learing
- JSP
- SwiftUI
- database
- ios
- Cocos2d-x
- game
- SOCKET
- 자료구조
- DesignPattern
- C++
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |