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 할 ..
SwiftUI에서 처음 만들었던 예제인 StickyHeader를 UIKit을 활용해서 만들어보자. 이전 포스팅에서 MVC 패턴으로 나누면서 controller 부분을 넘어갔다. 지금까지는 사용자의 입력에 따라 view가 바뀌는 부분이 없었기 때문에 view와 controller를 분리해서 생각할 부분이 없었는데 이번에 StickyHeader를 만들면서 둘을 분리해서 생각해 볼 수 있을 것이다. Header constraints 지금까지 만든 화면을 다시 보면 가장 아래에 UIView부터 UIScrollView, UILabel 등을 추가해서 만들었다. 이 상태로 실행해보면 header가 scroll 상단에 붙어있기는 하지만 아래로 스크롤 할 때 같이 스크롤 된다. sticky header는 아래로 스크롤 ..
지금까지는 화면을 만들 때 view의 내용을 코드에 직접 기입해서 만들었다. 예를 들어 이름을 표현하기 위해서 UILabel을 이렇게 만들었다. let nameLabel = UILabel(frame: CGRect(x: 0, y:0, width: 200, height: 50)) nameLabel.text = "사나" // asset name 위처럼 만드는 것은 빠르게 화면을 구성할 때는 좋지만 나중에 화면의 내용이 바뀌거나 추가될 때 코드를 직접 수정해야 한다. 그래서 "사나" 와 같은 데이터는 따로 저장을 해 두고 데이터로 부터 화면을 구성할 수 있도록 구축하면 좀 더 유연하게 유지보수 할 수 있다. 그 유명한 MVC(Model View Controller) 패턴이다. MVC Pattern 디자인 패턴은..
프로필 화면이 너무 허전하니까 뭔가 좀 더 꾸미고 싶은데, 샘플로 트와이스 사나님의 프로필을 사용했기 때문에 나머지 내용도 참고했다. 먼저 지난 포스팅에 프로필 사진이 네모로 그려지는 상태로 끝냈기 때문에 이걸 어떻게 동그랗게 자르는지 알아보자. CALayer UIView는 layer라는 인스턴스를 가지고 있어서 이것을 통해 화면에 내용을 그린다. view는 화면에 자리하기 위한 논리적인 사각형 범위와 속성들을 가지고, layer는 이 범위를 실제로 화면에 그리는 역할을 수행하는 것으로 분리되어 있다. 그리고 외곽선, 그림자 등 몇가지 렌더링 효과를 쉽게 설정할 수 있게 property를 제공한다. cornerRadius 이 옵션은 모서리의 곡률을 지정한다. 적용해 보기 위해서 화면 구성을 좀 바꾸자. ..
- Total
- Today
- Yesterday
- 국내여행
- 자료구조
- 드라마
- Java
- machine learing
- SHADER
- rxswift
- game
- 운영체제
- Git
- JSP
- SOCKET
- ios
- 데이터베이스
- Spring
- mongoDB
- winsock
- scala
- C
- DesignPattern
- 알고리즘
- C/C++
- 수학
- Cocos2d-x
- OS
- C++
- ue4
- database
- SwiftUI
- swift
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |