콩벌레 개발자의 개발 공부 노트
close
프로필 배경
프로필 로고

콩벌레 개발자의 개발 공부 노트

    • 분류 전체보기 (233)
      • 일상 (7)
        • 일상 이야기 (4)
      • Web (17)
        • Spring Boot (6)
        • CSS (3)
        • HTML (2)
        • JSP (0)
      • R (4)
      • Algorithm (88)
        • 백준 (67)
        • 프로그래머스 (19)
      • ICT COG Academy (8)
        • AI 기본 (8)
      • 계산이론 (6)
      • 데이터 베이스 (1)
      • IOT 네트워크 (1)
      • iOS (63)
        • RxSwift (2)
        • swift (15)
        • 앱 개발 (31)
        • 보안 (1)
        • UIKit (10)
        • SwiftUI (3)
      • 클린 아키텍처 (7)
      • 클린 코드 (3)
      • 컴퓨터 구조 (14)
      • 네트워크 (10)
      • 자료구조 (0)
      • 운영체제 (2)
      • 안드로이드 (0)
      • 개발 (0)
  • mode_edit_outline글작성
  • settings환경설정
  • 홈
  • 태그
  • 방명록

프로토콜 지향 프로그래밍을 이용한 프로젝트를 진행해보자 (2)

이번에는 기획자가 간단한 기능을 하나 추가해 달라고 합니다. 기존에는 이미지만 볼 수 있다면, 이번에는 영상도 볼 수 있게 해달라고 하네요. 일단은 영상을 재생시킬수 있는 뷰를 하나 만들어주겠습니다. final class VideoView: UIView { private var url: String? private var player = AVPlayer() private var playerLayer: AVPlayerLayer? private lazy var videoBackgroundView: UIView = { let view = UIView() view.backgroundColor = .systemGray view.translatesAutoresizingMaskIntoConstraints = fals..

  • format_list_bulleted iOS/swift
  • · 2022. 8. 14.
  • textsms
프로토콜 지향 프로그래밍을 이용한 프로젝트를 진행해보자 (1)

프로토콜 지향 프로그래밍을 이용한 프로젝트를 진행해보자 (1)

프로토콜 지향 프로그래밍에 관해 공부를 하다가 우연히 해당 발표를 찾아서 여기에 나와있는 프로젝트를 진행해 보았습니다. https://www.youtube.com/watch?v=9gkzHUsQiUc&t=1138s 저희는 이제 사진첩 앱을 개발하려고 합니다. 사진첩은 테이블 뷰 모드와 콜렉션 뷰 모드를 지원하고, 각 셀을 클릭 하면 이미지를 크게 볼 수 있는 화면으로 이동합니다. 딱 보기에도 중복되 보이는 기능이 여럿 보입니다. 이미지와 설명, 테이블뷰와 콜렉션뷰는 같은 이미지를 저장하고 있는 배열을 공유하고, 셀을 클릭하였을때 동일한 페이지로 이동하는 기능이 중복되어 있습니다. 일단 UI부터 구성을 해보겠습니다. 테이블뷰와 콜렉션뷰는 이미지와 이미지 설명을 각각 가지고 있습니다. 이를 프로토콜로 선언해 ..

  • format_list_bulleted iOS/swift
  • · 2022. 8. 13.
  • textsms

POP에서는 모든 코드가 프로토콜로 시작을 해야 할까?

POP를 준수하면서 프로젝트를 진행하던 중 API에서 데이터를 받아오는 작업을 해야 할때, 평소 같으면 해당 작업을 담당하는 클래스를 하나 만들어서 작업을 하겠지만, POP를 이용한 프로젝트를 하던 참이였길래, 별 생각 없이 프로토콜을 우선적으로 구현하고 있었습니다. 그런데 해당 프로젝트에서는 코드를 재사용할 필요가 없을때에도 프로토콜로 추상화를 해야하나 이 생각이 들었습니다. final class NetworkManager{ static let shared = NetworkManager() func fetchImageList(url: String, completion : @escaping ([ContentResponse]?) -> ()){ guard let url = URL(string: url) el..

  • format_list_bulleted iOS/swift
  • · 2022. 8. 10.
  • textsms
swift ) 현재 시간을 기준으로 특정 시간과의 차이 계산하기

swift ) 현재 시간을 기준으로 특정 시간과의 차이 계산하기

댓글이나 게시글의 목록을 보면 현재시간을 기준으로 몇분전, 몇일전, 혹은 날짜로 시간이 나와있는 경우가 있습니다. Swift에서는 Calender를 이용하여 계산할 수 있습니다. 서버에서 생성 시간을 받아오고 나서 우선 Calender로 계산할 수 있는 시간 형식을 만들어줍니다. private func calculateDate(to dateStr: String) -> Date { //서버에서 받은 시간이 2022-06-21T14:06:35.288Z 형식으로 되어있으므로 Calender로 계산할 수 있는 형식으로 만들기 var sliceDateStr = dateStr.components(separatedBy: ["T", "."]) sliceDateStr.removeLast() let joinedDateSt..

  • format_list_bulleted iOS/앱 개발
  • · 2022. 8. 8.
  • textsms

RxSwift) Observable, Subscribe

RxSwift의 목적 closure로 비동기 데이터 처리 코드를 작성할 시 코드가 복잡해짐. 비동기를 받고난 후 또 비동기를 받아야 할때 코드가 복잡해지고 길어짐. 따라서 return으로 비동기 데이터를 받을 수 있게 한것이 RxSwift이다 Observable 나중에 오는 데이터 타입이라고 생각을 하면 된다. 제네릭을 이용해 타입을 정의. Observable //나중에 오는 String타입 Observable로 데이터하나 보낼때 Observable.create(){ emitter in emitter.next("Hello") emitter.onCompleted() return Disposable.create() } Just 하나 보내는데 많은 코드가 필요하므로 단축해서 사용할 수 있다. Observabl..

  • format_list_bulleted iOS/RxSwift
  • · 2022. 8. 8.
  • textsms

IOS에서 POP, OOP 어떤것을 써야 하는가! 그것이 문제로다

요즘 모집공고의 우대 사항을 보면 UnitTest, 클린 아키텍쳐, TDD 이런게 꼭 한두가지씩은 들어가 있습니다. UnitTest와 TDD는 자바 스프링을 공부해 보신분이나 테스트 코드를 작성해 보신분을 알고 계시겠지만 TDD는 Test Driven Development로 테스트 주도 개발을 뜻합니다. IOS에서는 UnitTest를 통해 계속해서 테스트를 하면서 개발을 해나가는 것이지요. 말은 쉽지만 UnitTest를 하기 위해서는 각 기능을 분리시켜서 하나의 역할을 하게 코드를 구성해야 합니다. 하지만 마구잡이식으로 분리를 하다보면, 코드가 어지러워지고 가독성이 떨어질 수도 있고, 똑같은 기능을 하는 코드를 계속 다시 작성하는 경우도 있으며, 기능 하나 추가하는데 다른 기능의 소스코드를 수정해야 하거..

  • format_list_bulleted iOS/앱 개발
  • · 2022. 8. 5.
  • textsms
  • 1
  • ···
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
공지사항
카테고리
  • 분류 전체보기 (233)
    • 일상 (7)
      • 일상 이야기 (4)
    • Web (17)
      • Spring Boot (6)
      • CSS (3)
      • HTML (2)
      • JSP (0)
    • R (4)
    • Algorithm (88)
      • 백준 (67)
      • 프로그래머스 (19)
    • ICT COG Academy (8)
      • AI 기본 (8)
    • 계산이론 (6)
    • 데이터 베이스 (1)
    • IOT 네트워크 (1)
    • iOS (63)
      • RxSwift (2)
      • swift (15)
      • 앱 개발 (31)
      • 보안 (1)
      • UIKit (10)
      • SwiftUI (3)
    • 클린 아키텍처 (7)
    • 클린 코드 (3)
    • 컴퓨터 구조 (14)
    • 네트워크 (10)
    • 자료구조 (0)
    • 운영체제 (2)
    • 안드로이드 (0)
    • 개발 (0)
최근 글
인기 글
최근 댓글
태그
  • #변경된 점
  • #IOS
  • #edwith
  • #스탠포드 강의
  • #부트캠프
  • #8기
  • #uikit
  • #앱개발
  • #2023
  • #swift
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바