본문 바로가기

분류 전체보기15

화면 전환 1. 프레젠테이션 방식으로 화면 전환 present(, animated:, completion:) 프레젠테이션 체인(Presentation Chain)에 뷰 컨트롤러의 포인터가 차례로 저장됨 presentedViewController : 자신이 호출한 ViewController presentingViewController : 자신을 호출한 ViewController dismiss(animated:, completion:) ※ 주의 ※ 화면이 사라지게 처리하는 것은 사라질 화면의 뷰 컨트롤러 자신이 아니라 자신을 띄우고 있는 이전 뷰 컨트롤러다. self.dismiss(animated:) X (원래는 안되지만 잘 동작한다. 많은 개발자들이 그냥 사용하고 있다.) self.presentingViewContr.. 2019. 10. 1.
UI 디자인에서의 황금비율 황금비율이란 우리 눈에 가장 아름답게 보이는 비율로써, 레오나르도 다빈치가 발견한 이론 중 하나이다 르네상스 시대 당시 최고의 물건과 색을 '황금'이라고 한 데서 붙여졌다. 황금비율 계산법 1 : 1.618 "UI 작업 시 왜 황금비율을 도입해야 할까?" UI 디자인에 황금비율을 도입하는 이유 심리적으로 편안함을 가져온다. 전체적인 레이아웃을 리딩하기 쉬워진다 구조적인 느낌을 준다 황금비율 적용 사례 대부분의 신분증 신용카드나 전화카드의 형태는 황금비율 사용한다. 트위터, 애플을 비롯한 많은 로고가 황금비율을 이용해서 디자인됐다 애플을 비롯한 많은 웹사이트 역시 황금비율을 이용해서 디자인됐다 황금비율과 백은 비율을 편하게 계산해주는 사이트 https://voidism.net/metallicratio/ 2019. 9. 28.
Xcode10 스토리보드 살펴보기 1. 인터페이스 빌더 살펴보기 보조 에디터(Assistant Editor) 및 커넥션 인스팩터 (Connections Inspector) 아이덴티티 인스팩터 (Identity Inspector) 사이즈 인스팩터 (Size Inspector) 속성 인스팩터 (Attributes Inspector) 2. IBOulet, IBAction (인터페이스 빌더 어노테이션) @IBOulet (아울렛 변수) - 화면상의 객체를 소스 코드에서 참조하기 위해 사용하는 어노테이션 @IBAction (액션 메소드) - 객체의 이벤트를 제어할 때 사용하는 어노테이션 3. 인터페이스 빌더 객체와 클래스 연결 보조 에디터(Assistant Editor)를 활용한 연결 - 인터페이스 빌더에서 보조 에디터로 연결 - 새로 작성하면서 .. 2019. 9. 25.
BottomNavigationView에 ViewPager 2 적용하기 인스타그램 처럼 아래쪽에 BottomNavigationView을 적용하고 각 메뉴를 선택 했을때 Fragment를 Replace 하면서 보여지게 하려고 합니다. BottomNavigationView에 reuseable fragment를 연동 하려면 ViewPager를 이용해야 합니다. ViewPager 대신 아직 베타 버전 이지만 ViewPager2를 이용해 보도록 합니다. build.gradle에 viewpager2, material dependency 추가 implementation "androidx.viewpager2:viewpager2:1.0.0-beta04" implementation "com.google.android.material:material:1.0.0" BottomNavigationV.. 2019. 9. 23.
iOS앱의 구조 1. 앱이 실행되는 과정 1. main() 함수 실행 (해당 파일은 이제 확인 불가) #import #import "AppDelegate.h" int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } } 2. UIApplicationMain() 함수 호출 (@UIApplicataionMain) import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func applicatio.. 2019. 9. 22.
마케팅 용어, 의미, 개념 Growth Hacking - 기존 마케팅에 기술적 요소를 더한 새로운 마케팅 방법. 검증, 추적, 확장이 가능한 방법 사용. 대규모 예산이 아닌, 새로운 방법으로 높은 성장을 추구하는 사업 전략 (또는 마케팅 사고방식). (퍼포먼스 마케팅을 포괄) - 그로스해킹 사례 : 드롭박스, 링크드인, 에어비앤비, 트위터 - 트위터 사례) 트위터는 데이터 분석을 통해 트위터를 가입하다가 포기하는 사용자들이 많다는 사실을 발견했습니다. 당시에는 사용자 정보를 다 입력하고 가입 버튼을 눌렀을 때, 아이디가 중복되었을 경우 모든 정보가 초기화되는 인터페이스를 갖고 있었습니다. 트위터는 이를 개선하여 아이디 추천 목록을 도입하였고, 개선 1개월 만에 6만 명의 가입자 증가를 이뤄냈다고 합니다. / 트위터가 한 이런 시도.. 2019. 9. 21.
6. 구조체와 클래스 6. 구조체와 클래스 1) 구조체VS클래스 공통점 프로퍼티 메소드 서브스크립트 초기화 블록 확장 프로토콜 변수나 상수를 사용하여 값을 저장하는 프로퍼티를 정의할 수 있다. 함수를 사용하여 기능을 제공하는 메소드를 정의할 수 있다. 속성값에 접근할 수 있는 방법을 제공하는 서브스크립트를 정의할 수 있다. 객체를 원하는 초기 상태로 설정해주는 초기화 블록을 정의할 수 있다. 객체에 함수적 기능을 추가하는 확장(extends) 구문을 사용할 수 있다. 특정 형식의 함수적 표준을 제공하기 위한 프로토콜을 구현할 수 있다. 클래스만 가지고 있는 기능들 상속 타입 캐스팅 소멸화 구문 참조에 의한 전달 클래스의 특성을 다른 클래스에서 물려줄 수 있다. 실행 시 컴파일러가 클래스 인스턴스의 타입을 미리 파악하고 검사할.. 2019. 9. 21.
5. 클로저 & 일급 객체 함수 5. 클로저(Clousure) 컴퓨터 언어에서 클로저(Closure)는 일급 객체 함수(first-class functions)의 개념을 이용하여 스코프(scope)에 묶인 변수를 바인딩 하기 위한 일종의 기술이다. 기능상으로, 클로저는 함수를 저장한 레코드(record)이며, 스코프(scope)의 인수(Factor)들은 클로저가 만들어질 때 정의(define)되며, 스코프 내의 영역이 소멸(remove)되었어도 그에 대한 접근(access)은 독립된 복사본인 클로저를 통해 이루어질 수 있다. ※ 참조 https://ko.wikipedia.org/wiki/%ED%81%B4%EB%A1%9C%EC%A0%80_(%EC%BB%B4%ED%93%A8%ED%84%B0_%ED%94%84%EB%A1%9C%EA%B7%B8.. 2019. 9. 20.