반응형

MVVM 패턴

 

MVVM 패턴은 여러 디자인 패턴 중 하나입니다.

Model, ViewModel, View로 분리되어 있는 구조를 가지고 있고 비즈니스로직과 View사이에 ViewModel이 있어서 서로를 소통할 수 있게 만들어 줍니다.

그리고 실질적으로는 iOS에서 View의 영역에서 View뿐만 아니라 ViewController까지 View라고 취급하게 되는데, 이러한 ViewController와 ViewModel은 서로 바인딩되어 각자의 영역에서 데이터의 변화 혹은 이벤트가 발생하면 서로에게 영향을 주게됩니다.

 

@discardableResult

이 property wrapper는 해당 함수의 결과(리턴)이 실행 후 사용될 수도 있고 아닐 수도 있다는 역할을 부여합니다.

 

Protocol

protocol은 어떤 구조의 약속이라고 볼 수 있습니다.

어떠한 protocol을 정의하고 해당 protocol을 채용한다면, 정의되어 있던 내용(함수, 변수)를 이행해야합니다.

 

💭 느낀점 

지금까지 SwiftUI를 기준하여 MVVM패턴을 알았었는데, UIkit을 기준으로 하니 뭔가 구조가 달라보였다.

아직 UIkit에 완전히 익숙하진 않지만, Model이나 ViewModel의 개념과 역할은 동일해서 이해하기 좋았지만 Binding부분은 상당히 다르게 구현되는 것 같아 좀 더 면밀히 살펴봐야겠다.

@discardableResult라는 property wrapper도 스탠포드 강의 때 나왔었지만 그때는 잘 이해하지 못하고 넘어갔었는데 역시 다시보니 이해가 되기 시작했다. 실제로 내가 코드에서 구현하고 사용할 때까진 좀 더 시간이 걸릴 것 같지만 다른 코드에서 보게된다면 충분히 이해할 수 있다.

protocol은 배우면서 정말 고생했던 개념인데, 실제로 활용하는 것을 보니 좀더 이해가 되기 시작했다.

사실 SwiftUI에서는 가장 처음 프로젝트를 생성하면 볼 수 있는데, 내가 활용하기에는 참 쉽지않은 것 같다.

위의 내용들 뿐만아니라 지금까지 배워왔던 것들을 좀더 정리해보는 시간을 가지는 것도 좋을 것 같다.

반응형

'What I learned' 카테고리의 다른 글

[WIL] Fri Feb 24 : RxSwift  (0) 2023.02.25
반응형

RxSwift

Observable과 Observer의 상관관계

Observable: 어떤 요소, 이벤트를 방출하는 스트림

Observer: Observable로 부터 방출되는 것들을 받고 처리할 수 있는 쪽

PublishSubject

Observabel이면서 동시에 Observer이기도 한 존재

자신이 구독을 당할 수도 있고 할 수도 있다

이 또한 스트림이기 때문에 구독의 시기에 따라 받을 수 있는 데이터가 다를 수 있다

Observable과 Observer을 이어주는 역할을 하기도 한다

just, of, from

just: 요소를 단 하나만 방출하고 compled된다

Observable.just("🥙")
    .subscribe { str in print(str) }
    .disposed(by: disposeBag)

just 실행 결과

of: 여러가지 요소를 방출하고 compled된다. 가변 파라메터를 받는다.

Observable.of("🍪", "🍫", "🍩")
   .subscribe { sweet in print(sweet) }
   .disposed(by: disposeBag)

of 실행 결과

from: 배열을 순서대로 방출하고 compled된다

Observable.from(["☕️", "🍺", "🍹"])
    .subscribe{ drink in print(drink) }
    .disposed(by: disposeBag)

from 실행 결과

 

반응형
반응형

Swift는 iOS, iPadOS, macOS, tvOS, watchOS와 같은 Apple의 디바이스 위에서 동작하는 소프트웨어를 만드는데에 주로 사용되는 언어라고 할 수 있습니다.

다른 언어와의 차이점은 여러가지가 있지만, 제 생각에 가장 큰 차이점은 타입에 엄격하다는 점 같습니다.

저의 경우, JAVA를 가장 먼저 프로그래밍언어로 배우기 시작했기 때문에 이런 타입에 대해 엄격한 점은 친숙했습니다.

그리고 개인적으로 아주 매력적인 언어라고 생각합니다.

공식 홈페이지에도 언급된 것 처럼 대화하듯이 코딩을 하는 기분이 들기도 합니다.

배우기쉽다는 내용에 대해서는 동의하기 어렵지만, 어떤 언어든지 러닝커브가 존재하니 그 점을 생각해보면 나쁘지않을지도 모르겠습니다.

특히, Swift전에 사용하던 objcet-c의 경우엔 더 어렵지않을까 막연히 생각합니다.

아무튼 이런 Swift를 공부하고 공부해왔던 점을 바탕으로 이것저것 적어볼까 싶어 이 카테고리를 열었는데, 꾸준히 적도록 해야겠습니다.

https://developer.apple.com/kr/swift/

 

Swift - Apple Developer

Swift는 iOS, iPadOS, macOS, tvOS 및 watchOS를 위한 강력하고 직관적인 프로그래밍 언어입니다. Swift 코드 작성은 대화식으로 재미있고, 구문은 간결하면서도 표현력이 풍부하며, Swift에는 개발자들이 좋

developer.apple.com

 

 

반응형

'iOS > Swift' 카테고리의 다른 글

[Swift] RxSwift - BehaviorSubject  (0) 2023.03.03
반응형
반응형
반응형

flutter.dev

 

Flutter - Beautiful native apps in record time

Flutter SDK is Google's UI toolkit for crafting beautiful, natively compiled applications for mobile, web, and desktop from a single codebase.

flutter.dev

 

플러터는 안드로이드와 아이폰을 모두 디자인 할 수 있다.

언어는 dart를 사용한다.

기존에는 모바일 개발의 경우 안드로이드 어플, 아이폰 어플을 별도로 개발해야 했다.

그런데 이런 경우 비용의 부분도 무시할 수 없고 개발에 들어가는 시간이 당연하게 많아진다.

이런 문제점을 해결하기 위해 나온 것이 바로 Flutter이다.

심지어 웹까지도 가능하다고 하는데 이 부분은 최근에야 조금 실용성이 있다는 소문이 들린다.

앞으로 전망은 어떨지 모르겠지만 일단 스타드업이나 흐름이 빠른 IT업계에서 유용한 도구가 아닐까 싶어 한 두달 전 부터 과외를 받고있다.

그러다가 우연히 최근에 구인구직 어플에서 Flutter개발자를 찾는다는 내용을 봤고 반가웠다.

아직 취업을 할 정도로 배우진 못했고 아웃풋도 없는 상황이지만 앞으로 좀 더 열심히 배워보면 가망이 있지 않을까 한다.

 

*무료이고 오픈소스이다.

반응형
반응형

최초로 업로드 하는 것과 과정이 조금 상이할 수 있어 따로 작성한다.

 

1. 파일 위치는 여전히 업로드 하고자 하는 위치에서 터미널로 이동.

2. 그리고 순서대로 위와같이 명령어를 입력해주면 된다.

- git add .

- git commit -m "어쩌고저쩌고"

- git push -u origin main

그럼 명령어 실행 후 아래와 같은 메세지가 나오게 되고 github에 가보면 내가 건들였던 파일들이 업로로드 되어있는게 확인된다.

* add > commit > push

반응형
반응형

영알못에게 여러 영어로 된 기술은 고통 그 자체다.

하지만 동시에 편안함도 무시할 수 없기 때문에 필수적으로 사용하게 된다.

최근 맥북을 구매한 죄로 맥북을 이용하는 공부지옥이 또 열렸는데, 안드로이드 스튜디오의 프로젝트를 github에 올리려니 안드로이드 스듀티디오 에서는 에러가 발생했다.

그래서 과외선생님에게 터미널을 통해 업로드 하는 방법을 알게 되었다.

 

1. 깃허브에 로그인 하고 Repositories에서 New를 눌러서 새로운 repositorie를 생성한다.

 

2. Repository name에 설정하고 싶은 이름을 기입하고 Description은 선택사항으로 기입한 후 Create repository를 눌러준다. (public/private는 공개여부인데 private의 경우 원랜 유료였으나 최근 몇개정도는 무료로 만들 수 있다고 한다.)

 

3. repository가 생성되면 아래와같은 화면이 나온다. 그러면 주소가 씌인 옆에 서류파일 같은 것을 누르면 주소가 copy된다.

 

4. 터미널을 실행하고 AndroidStudioProjects로 이동한다. (만약 파일명이 다르다면 업로드 하고 싶은 파일이 있는 위치로 이동)

*터미널 실행하는 방법은 아래와 같이 Spotlight에서 명령 프롬프트 혹은 cmd라고 쳐도 나온다.

5. 아까 봤던 github의 repository에 보면 명령어가 있는데 약간 순서만 달리 실행해주면 된다. 우선 git init을 먼저 날려준다. 그러면 아래의 이미지 처럼 메세지가 뜬다.

 

6. git add . -> 뒤에 점을 붙히면 모든 파일을 add하겠다는 의미이다. 그리고 git branch -M main을 통해서 브렌치를 생성. (브렌치는 하나의 나뭇가지 같은 것이라 생각하면 되는데 사실 혼자 진행하는 플젝은 의미가 없다고 봐도 된다.)

7. 그리고 git commit -m "어쩌고 저쩌고" 이렇게 넣어주면 아래와같이 쭉 파일 목록이 올라온다. 참고로 ""의 안에는 아무 내용이나 넣어도 되는데 보통은 뭐가 달라졌고 어떤 점을 수정했고 그런 내용을 넣는다.

8. 그런다음 git remote add origin [아까 복사해둔 repogitory주소]를 넣어준다.

9. 그리고 git push -u origin main(이게 브랜치이름) 으로 올려주면 완료! github에 가보면 내가 올렸던 파일이 가지런히 있는게 보인다.

 

*왜 commit도 하고 push도 하나요 > git한테 넘겨줬다가 github한테 줘야 해서 이렇다. 참고로 git과 github는 서로 다른 친구들인데, 나도 초반엔 정말 헷갈렸다. git은 형상관리를 해주는 기능 그 자체라고 봐도 되고 github는 그런 형상관리를 편리하게 해주고 업로드/다운로드가 가능하게 해주는 서비스? 같은 개념으로 봐도 좋겠다.

(만약 틀린 부분이 있다면 피드백 ok입니다요.)

반응형
반응형

 

Flutter은 안드로이드와 ios를 모두 활용하여 개발할 수 있는 도구이다.

 

안드로이드 스튜디오에서 Flutter을 활용하여 프로젝트 생성하는 방법을 알아보자.

 

1. Android Studio를 실행한 후 Start a new Flutter project를 선택한다.

2. 아래와 같은 화면에서는 가장 앞의 것을 선택한 후 Next

3. Project name에 생성할 프로젝트의 이름을 기입한 후 Next

4. 아래의 Platform channel language의 두가지를 모두 체크한 후 Next

 

5. 생성 완료!!

 

이제 dart를 활용하는 Flutter의 세계에 입문했다.

 

반응형

+ Recent posts