일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스크롤 탭
- swift #swift keychain #keychain 사용법
- 기존 앱
- scrolling tab
- DevelopmentRegion
- SwiftUI
- UIPresentationController
- Side Menu
- Swift Package Manager
- pod install
- url 추적
- convert base64
- transformation.map
- swift
- ViewBuilder
- List
- detect url
- 상단 탭바
- oberve url
- DataBinding
- Tuist
- UIViewControllerTransitioningDelegate
- Android
- development language
- GeometryReader
- notifychanged
- 개발자 면접
- url 관찰
- ios
- base64 변환
- Today
- Total
목록분류 전체보기 (170)
버그 잡이
1. LiveData란? An observable data holder class that is lifecycle-aware - 옵저버 패턴이 적용된 (=특정 대상을 관찰하고 변화를 인지하는) -> 최신화 - 생명 주기를 인식하는 (=메모리를 효율적으로 쓰는) 옵저버 패턴이 적용되면 아래 그림 처럼 대상(subject)을 관찰하고 대상(subject)의 상태가 변화했을때 이를 감지할 수 있다. 그 대상을 LiveData로 만들면 옵저버 패턴을 보다 쉽게 구현할 수 있고 UI의 생명주기에 따라서 생성/소멸한다. -> "생명주기가 onStarted, onResumed일때만 data를 update한다." 2. 사용법 1) LiveData 객체 생성 _ in ViewModel val score = Mutable..
1. UI & ViewModel (LiveData는 다음 시간에 다루기에 일단은 크게 두 분류로 나눈다.) UI - 자료를 UI에 표현 - 시스템이나 사용자가 보내는 이벤트를 수신 ViewModel - UI에 보여줄 data를 가지고 있다 UI에 전달 - 어떤 data를 보여줄지 판단(데이터에 대한 계산을 여기서 한다) (GameFragment의 예로 살펴보자) GameFragment는 data를 UI에 나타내준다. button이 클릭된 경우 Fragment는 이 사실을 인식하고 viewmodel에게 알린다. GameViewModel은 점수, 단어 목록, 현재 단어 등에 대한 데이터를 가지고 있다. gameFragment에서 신호가 오면 관련된 data를 처리하고 data를 변경한다.(ui를 참조하여 직..
1. MVP패턴이란? 하나의 디자인 패턴으로 M(model) / V(View) / P(Presnter) 계층으로 나누어서 개발하는 패턴입니다. 가장 큰 특징으로는 view 와 model 을 분리한다는 것입니다. 기존 mvc 패턴은 ativity 클래스 안에 뷰 관련 정보와 데이터 관련 정보를 함께 담아서 클래스가 굉장히 비대해지는 문제가 있었는데요 중간에 컨트롤 타워 역할을 하는 presenter 계층을 추가함으로써 ui정보와 data를 서로 다른 계층에 나누어 관리할 수 있게 되었습니다. 그 결과 ui 관련된 코드는 view 계층에 담기고 data 관련된 코드는 model에 담기게 됩니다. 2. 동작 순서로 보는 각 계층의 역할 1) view에서 사용자의 동작을 감지하고 presenter에게 actio..
1. MVVM이란? 기존의 MVP가 가지는 문제를 해결하고자 나온 모델입니다.. 기존 MVP 모델은 view와 presenter의 의존성이 강하다는 것이 문제였는데 MVVM은 "viewmodel은 view를 모르는 구조"로 설계함으로써 view와 viewmodel의 의존성을 느슨하게 만들었습니다. 2. MVP vs MVVM "ViewModel은 View를 모른다" 그림에서 볼 수 있듯이 가장 큰 특징은 mvp에서는 presenter에서 view를 참조하고 있는데 mvvm에서는 viewmodel이 view를 참조하고 있지 않습니다. 이 특징 덕분에 기존 mvp 패턴에서 presenter와 view간의 의존성이 높아져 발생할 수 있는 문제를 어느 정도 해결할 수 있게 해줍니다. '클래스간 의존성이 높아지면 ..
이 글은 생활코딩 자료구조 수업을 기초로 정리한 글입니다. opentutorials.org/module/1335 배열 1. 배열이란? : 데이터를 그룹핑해서 관리하는 자료구조 보통 group으로 나누는 행위는 보다 체계적인 관리를 위해서 진행합니다 블로그에 글을 쓸때도 카테고리 없이 글을 쓰면 나중에 글이 50개가 되고 100개가 되었을때 관리가 되지 않습니다. 하지만 카테고리를 나누어서 관리하면 보다 원하는 글을 빠르게 찾을 수 있고 체계적인 관리가 가능합니다. 2. Index 배열에서 각 요소는 index라는 값을 가지고 있습니다. index는 그룹화된 데이터 안에서 개별 데이터를 식별하게 해주는 역할을 합니다. 즉, index를 활용해서 배열의 데이터를 가져오고 저장할 수 있는 것입니다. (배열의 ..
추상클래스 vs 인터페이스 1. 정의 - 추상클래스 : 1개 이상의 추상메소드를 가진 클래스 - 인터페이스 : 모든 메소드가 추상 메소드인 추상 메소드 모음 2. 차이점 "사용 목적에 있어서 다릅니다." (핵심) 추상 메서드 - 부모 클래스의 기능을 이용 및 확장 인터페이스 - 구현 객체와 동일한 동작을 강제. 일종의 설계도와 같은 역할 +그 외 추상 메서드 - 클래스로 구체적인 로직이나 상태를 가질 수 있습니다. - 단일 상속 인터페이스 - 인터페이스로 구체적인 로직이나 상태를 가질 수 없습니다. - 다중 상속 가능 인터페이스와 다형성 인터페이스는 "메소드에 대한 정의를 먼저 하고 구현을 미루는 패턴"입니다. 이렇게 어떤한 행동에 대한 구체적인 구현을 나중으로 미루는 것을 추상이라고 합니다. 추상화를 ..
context란? 1. getPackageName(), getResource(), startActivity(), startService()와 같은 다양한 메서드를 사용해 시스템 리소스 및 다른 컴포넌트에 대한 접근을 가능하게 합니다. 2. 현재 실행중인 환경에 대한 정보를 담고 있는 ID카드이기도 합니다. (startActivity로 새로운 액티비티를 실행하면 이 액티비티는 이전 액티비티의 context정보를 가지고 있습니다.) context를 왜 알아야하는가? - android 개발에 있어서 context는 거의 모든 곳에서 쓰이는데 이를 잘 못 사용하면 메모리 누수로 이어집니다. context의 종류 Application Context 어플리케이션의 생명주기와 연관되어 있습니다. 즉, 앱이 생성될때 ..
CODE를 읽으며 가장 재밌었던 챕터는 바로 마지막장 "chapter25. 그래픽 혁명" 이었습니다. 중간중간 회로와 하드웨어적인 부분이 많이 나와서 완독을 포기하고 싶었지만 꾸역꾸역 읽어나가니 마지막 챕터가 저에게 새로운 배움의 기쁨을 주었습니다. (이 책에 관심이 있으신분들 또는 중간에 포기하신 분들은 꼭 마지막 챕터를 읽어보시길 바랍니다!) gui의 서막 컴퓨터에서 연산을 처리하고 남은 성능과 속도를 가장 유용하게 활용할 수 있는 부분은 바로 컴퓨터와 사람이 직접 접촉하는 가장 중요한 부분인 인터페이스를 향상시키는 것이라 할 수 있습니다. - 597p -> 즉, 코드로 동작시키는 것이 아니라 버튼 하나로 동작시킬 수 있다면 엄청나게 편리해질 것입니다. gui와 api MS-DOS와 같은 텍스트 기반..