본문 바로가기

IOS49

[iOS] RXswift (3) - Subject 참고 : https://reactivex.io/documentation/subject.html ReactiveX - Subject If you have a Subject and you want to pass it along to some other agent without exposing its Subscriber interface, you can mask it by calling its asObservable method, which will return the Subject as a pure Observable. See Also reactivex.io Observable이면서 Observer의 역할이 가능한 Subject Subject 종류 PublishSubject : 빈상태로 시작하여 새로운 값 .. 2022. 5. 13.
[iOS] RXswift (2) - Traits 참고 : https://github.com/ReactiveX/RxSwift/blob/main/Documentation/Traits.md GitHub - ReactiveX/RxSwift: Reactive Programming in Swift Reactive Programming in Swift. Contribute to ReactiveX/RxSwift development by creating an account on GitHub. github.com Single, Maybe, Completable은 Traits라고 합니다. Traits는 이전에 공부한 Observable보다 좁은 범위의 Observable이라고 합니다. 사용하는 이유는 코드가독성을 높이는 데 있다고 해요. Single single은 Su.. 2022. 5. 13.
iOS) RXswift란? - Observable 참고 : https://reactivex.io/ 안드로이드를 공부하던 때에도 iOS 파트분들이 따로 RXswift에 대해 공부하던 것을 봤고 그동안 RXSwift에 대해서 많이 들어왔지만 전혀 몰랐었는데 드디어 공부하고 정리해보려합니다. RX(Reactive X)는 위 내용을 그대로 해석해보면 Observable Stream을 사용한 비동기 프로그래밍을 위한 API라고 합니다. RXswift는 그 중 하나라고 해요. 참고 : https://github.com/ReactiveX/RxSwift/blob/main/Documentation/Why.md RXSwift는 왜 쓸까요? RX는 기본적으로 비동기적으로 움직이는 애플의 api들과 수시로 상태가 변하는 환경에서 보다 직관적이고 효율적인 코드를 작성할 수 있.. 2022. 5. 12.
iOS) UIImagePickerController 지난 번 인스타그램 레이아웃을 작성한 뒤 이번엔 게시물을 업로드하는 기능을 구현하는 예제를 정리해볼까합니다. Right BarButton 적용할 액션 메소드를 추가해줍니다. ImagePicker뷰를 프레젠트 해주어야하므로 UIImagePickerController를 선언해줍니다. 이제 버튼을 누르면 이미지 선택하는 화면으로 넘어가게 되는 것을 볼 수 있습니다. 원래는 앨범 접근에 관련한 권한을 Plist에서 부여해야합니다. 따라서 Plist에서 Photo Library Usage Description을 추가합니다. 이미지 피커 컨트롤러의 속성에서 allowsEditing을 추가하여 true로 설정해주면 이미지 확대 및 편집이 가능하게 됩니다. 이제 Choose를 누른 후 동작을 구현합니다. Choose를.. 2022. 5. 11.
iOS) 스토리보드 없이 인스타그램 레이아웃 그리기 & ActionSheet 피드화면 만들기 우선 스위프트 패키지 매니저에서 스냅킷을 추가하였습니다. 스토리보드를 삭제하고 main을 검색하여 plist의 스토리보드 정보를 삭제합니다. class SceneDelegate: UIResponder, UIWindowSceneDelegate { var window: UIWindow? func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { guard let windowScene = (scene as? UIWindowScene) else { return } window = UIWindow(windowScene: windowSce.. 2022. 5. 10.
iOS) 스토리보드 없이 레이아웃 그리기 연습 & 공유기능(Share Sheet) 구현 예제 (3) 이번엔 공유하기 버튼이 있는 앱 상세화면을 구현하겠습니다. TodayViewController의 컬렉션 뷰에서 UIViewController를 프레젠터로 넘겨주도록 구현. 화면전환까지 구현완료하였고 이제 컴포넌트들을 넣어주겠습니다. Share Sheet 공유하기 버튼을 눌렀을때 컨텐츠를 공유할 수 있는 아래 뷰 컨트롤러가 ShareSheet입니다. iOS기본앱은 기본앱이 아닌곳에서도 다양한 앱으로 공유도 가능합니다. 1. UIActivityViewController 2. URL, 공유할 컨텐츠와 타입은 개발자가 지정가능. 3. 공유될 목적지 또한 개발자가 지정가능. 생각해둘 것 어떤컨텐츠인가? 어떤 앱을 우선순위로 공유? init( activityItems : [Any], applicationActivi.. 2022. 5. 8.
iOS) 스토리보드 없이 레이아웃 그리기 연습 & 공유기능 구현 예제 (2) 다음은 앱 탭의 UI를 구성해보겠습니다. UINavigationController 인베디드 우선 앱 뷰컨트롤러 파일을 만들고 클래스를 구현합니다. UINavigationBar가 필요하기때문에 AppViewController는 UINavigationController에 인베디드 되어야합니다. 앱 뷰 컨트롤러에는 세가지 이상의 UI컴포넌트를 사용합니다. 아래와 같이 UI스크롤뷰에 스택뷰가 AddSubView했을때 장점은 UI스택뷰는 서브뷰에 의해서 높이가 정해지기때문에 높이 변동이 생겨도 자동적으로 스택뷰도 늘어나기에 따로 계산할 필요가 없습니다. 임시로 스택뷰에 컴포넌트를 추가해주고 테스트 해보겠습니다. Feature Section의 UICollectionView 구현하기 이제 파란 부분의 커스텀 셀을 만.. 2022. 5. 8.
728x90