분류 전체보기
-
Tuist를 이용하여 외부 라이브러리 추가하는 방법일하면서 배운것들에 대하여(issues) 2024. 1. 27. 21:54
안녕하세요. 입대리 입니다. 오늘은 좋은 주말 잘 보내고 계신가요? 오늘은 Tuist를 이용해서 우리 프로젝트에 외부 라이브러리를 추가하는 방법에 대해서 알아보려고 합니다. 제가 참고하는 문서는 Tuist에서 제공하는 공식 문서를 보고 글을 작성하는 중입니다. 자 그럼 시작해볼게요. 1. Project+Dependencies 파일을 만들어주세요. 파일은 ProjectDescriptionHelpers 폴더 안에 생성해주세요. 2. 프로젝트에 추가할 Dependency를 정의해주세요. 위 사진에서 보시는 것 과 같이 저는 SPM을 사용하고 있어서 package 형식으로 Dependency를 추가했습니다. 3. Project에 Project+Dependencies에서 정의한 packages, depende..
-
Tuist를 어떻게 적용할까요?일하면서 배운것들에 대하여(issues) 2024. 1. 21. 17:35
안녕하세요. 임대리 입니다. 오늘은 주말인데 카페 와서 뭘 써야할지 고민을 하다가 회사에서 사용하는 Tuist에 대해서 써보려고 합니다. Tuist에 대해서 들어 보셨나요? xcode projects를 생성하고 관리하고 통합하는 부분들을 편리하게 하도록 목표로 하는 CLI툴 이라고 합니다. 일단 먼저 Tuist를 다운로드 받아 볼게요 1. tuist 설치 brew tap tuist/tuist brew install tuist 2. 프로젝트 생성 2.1 프로젝트 폴더 생성 mkdir MyTuistApp cd MyTuistApp 2.2 프로젝트를 초기화 해줍니다. tuist init --platform ios Project generated at path /Users/_/project/MyTuistApp 해..
-
UITableVIew 동적으로 추가 / 삭제 하는 방법swift 2024. 1. 19. 01:08
안녕하세요. 임대리 입니다. 오늘 하루도 마무리 잘 하셨나요? 오늘도 저번에 올렸던 포스팅에 이어 추가적인 작업을 해보려고 합니다. 기능을 개발하다 보면 UITableView에 동적으로 Row를 추가하거나 삭제해야하는 경우가 필요로 합니다. 오늘 저는 아래의 UITableViewDiffableDataSource, NSDiffableDataSourceSnapshot을 사용해서 동작을 구현해 볼 생각입니다. typealias DataSource = UITableViewDiffableDataSource typealias SnapShot = NSDiffableDataSourceSnapshot 아래의 순서대로 구현 방법을 공유 해볼게요 :) 1. 버튼을 누를 때 마다 첫번째 아이템을 삭제하는 방법 2. 버튼을 누..
-
UITableViewDiffableDataSource, NSDiffableDataSourceSnapshot 사용해보기swift 2024. 1. 17. 00:16
안녕하세요. 이제 저희 회사의 ios min version이 드디어 ios13이 되었네요... 그래서 드디어 UITableViewDiffableDataSource를 사용할 수 있게 되었습니다. 일단 예제를 설명하기 전에 문서부터 봐볼게요 :) Diffable 데이터 소스 객체는 테이블 뷰 객체와 함께 작동하는 특수한 유형의 데이터 소스입니다. 이는 테이블 뷰의 데이터와 UI를 간단하고 효율적으로 관리하는 데 필요한 동작을 제공합니다. 또한 UITableViewDataSource 프로토콜을 준수하며 프로토콜의 모든 메서드에 대한 구현을 제공합니다. 이렇게 나와 있는데요. 바로 예제로 보시죠 ㅎㅎ 섹션, 아이템 만들기 먼저 TableView를 만들어 주기 위해서는 section이 필요합니다. 섹션 생성 Se..
-
리스트를 N개씩 나누는 방법(Extension, stride)일하면서 배운것들에 대하여(issues) 2024. 1. 16. 23:25
안녕하세요. 오랜만에 인사 드리네요. 회사에서 개발을 하실 때 혹은 코딩 테스트 문제를 푸실 때 필요할 수 있는 유용한 정보를 가지고 왔습니다. 저는 이번에 앱에 신규 기능을 개발하면서 더보기 탭을 눌러 총 10개의 아이템을 갖고 있는 리스트를 3개씩 쪼개서 보여줘야 했습니다. 여러 방법을 적용하던 중 보다 깔끔한 방법을 찾아 여러분에게 공유해 드리고자 합니다. stride는 Swift에서 범위를 지정하거나 일정 간격으로 숫자를 생성할 때 사용하는 함수입니다. 이 함수는 시작 값에서 종료 값까지 지정된 간격으로 숫자를 생성하며, 이를 통해 반복문에서 일정 간격으로 인덱스를 증가시키는 등의 작업을 수행할 수 있습니다. 작은 도움이 되었으면 좋겠습니다.
-
Error Handlingios 2022. 3. 13. 17:43
안녕하세요. 오늘은 에러 처리 방법에 대해서 이야기를 해보려고 합니다. 프로젝트를 진행하며 에러 처리 방법에 대해서도 중요하다는 생각이 들었고 지금 시간에 한번 정리하는게 좋을거 같다는 생각을 하게 되어 글을 작성해봅니다. 에러 처리란? 프로그램 실행시 에러가 발생하면 그 상황에 대해 적절한 처리가 필요 이 과정을 에러 처리라고 부른다. 에러발생 시점 컴파일 에러 런타임 에러 에러처리가 필요한 이유 특정 명령 실행을 완전히 실행되는 것이 완전히 보장되지 않을 경우가 있다. 이러한 경우 옵셔널을 사용하여 요청한 값이 없다는 값을 표시할 수는 있지만 어떠한 종류의 오류인지 확인할 수 없다. 이로써 현재 어떠한 오류가 발생했는지 , 그에대한 처리를 어떻게 할 것인지에 대해 처리를 하기 위해서 필요하다고 생각한..
-
MVP 패턴에 대하여ios 2022. 2. 21. 00:53
MVC 패턴에 대한 실증 Apple에서 기본적으로 제공하는 패턴인 MVC 디자인패턴은 입문자 또는 규모가 크지 않은 프로젝트에서 주로 사용되는 디자인패턴이라고 생각합니다. 저 또한 회사에서 혼자 개발을 해야하고 규모가 크지 않은 프로젝트를 수행할 때 사용해왔습니다. 그러나 완성된 Product를 보고 나니 장점보다 단점이 더 부각되어 보였습니다. 단점들은 Massive ViewController , 빈번한 Side Effect , 현저히 떨어지는 코드의 가독성 , 유지보수의 어려움이 있었습니다. 이러한 단점들을 보완하고자 새로운 디자인 아키텍처를 찾는 도중 MVP 패턴을 찾았으며 이제부터 이에 대해 이야기를 해보려고 합니다. MVC 문제점 책임 분배의 부족 컨트롤러에서 작업 사용자 인터랙션 핸들링 , v..
-
custom font 적용ios 2021. 10. 25. 23:19
안녕하세요. 오늘은 프로젝트에 custom 폰트를 적용하는 것을 알아보려고 합니다. 우선 간단한 순서부터 설명드리겠습니다. 1. 폰트를 다운받습니다. 2. 프로젝트에 다운받은 폰트를 추가합니다. 3. 프로젝트 Target의 Build Phases의 Copy Bundle Resource에 해당 폰트가 추가 되었는지 확인을 해줍니다. 3.1 Copy Bundle Resource에서 추가한 폰트를 찾지 못한다면 좌측 하단에 + 버튼을 클릭하여 Add Other을 클릭하여 추가합니다. 4. 스토리보드나 xib로 코드를 작성하신다면 Attribute Inspecter에서 Font 속성을 Custom으로 변경하고 Family drop box에서 다운로드한 폰트로 설정해줍니다. 5. code로 UI를 작성하실 경우에..