전체 글 (56) 썸네일형 리스트형 [iOS/Swift] 스파르타 iOS 사전캠프 2.20 코드리뷰 회고 지난주에는 카운터 프로젝트 코드리뷰를 하였다.코드리뷰시간에 각 팀원분들의 코드를 봤는데, 다들 실력이 높은 것 같아보여 분발해야겠다는 생각이 들었다.코드리뷰 도중 처음 접하거나 헷갈리는 것들이 나왔어서 정리해보고자 하였다. SnapKithttps://github.com/SnapKit/SnapKit GitHub - SnapKit/SnapKit: A Swift Autolayout DSL for iOS & OS XA Swift Autolayout DSL for iOS & OS X. Contribute to SnapKit/SnapKit development by creating an account on GitHub.github.com SnapKit은 Swift에서 Auto Layout을 코드로 쉽게 작성할 수 .. [iOS/Swift] MVVM 알아보기 스파르타 사전캠프 16일차 기존에 스토리보드 uikit으로 만들었던 메모 앱 프로젝트를 코드베이스 uikit으로 다시 만들어 완성하였다.이제는 MVVM 패턴을 적용해보려고 한다. UIKit에서는 예전에는 MVC 패턴을 사용하였지만, 최근에 들어서는 Combine을 이용한 MVVM 패턴을 주로 사용한다고 한다.그래서 Combine과 MVVM에 대해 공부를 해야했다.우선 MVC와 MVVM의 특징을 알아보기로 했다. MVC (Model-View-Controller)MVC는 전통적인 디자인 패턴으로, UIKit에서 권장되며 Model, View, Controller 세 가지 구성 요소로 나뉜다.Model: 데이터, 비즈니스 로직 담당View: UI 표시Controller: Model과 View 사이의 중재자 역.. [iOS/Swift] Programmatic UIKit (CodeBase UIKit) 지금까지 UIKit 프로젝트들을 Storyboard로만 만들어 왔어서 이번에 Pragrammatic UIKit을 배워보기로 하였다.CodeBase UIKit이라고도 불리지만 영어권에서는 Programmatic UIKit으로 불린다고 한다. 기존에 스토리보드로 만들었던 카운터 프로젝트를 코드베이스로 리팩토링을 해보자. Programmatic UIKit을 사용하기 위해서 Storyboard를 삭제해야 한다.프로젝트 파일에서 Storyboard 제거info.plist에서 Storyboard 제거 마지막으로 SceneDelegate 수정func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIS.. [iOS/Swift] Realm 알아보기 스파르타 사전캠프 13일차. Realm은 모바일 애플리케이션(iOS, Android)에 특화된 빠르고 가벼운 데이터 저장을 위해 설계된 오픈소스 데이터베이스이다.Core Data보다 사용이 쉽고 성능이 뛰어나서 더 선호되는 듯하다. 아래 사이트에서 SwiftPM, CocoaPods 등을 통해 다운받을 수 있다.https://www.mongodb.com/ko-kr/docs/atlas/device-sdks/sdk/swift/install/ iOS, macOS, tvOS 및 watchOS용 SDK 설치 - Atlas Device SDKSwift 프로젝트 내에서 Objective-C API 를 사용하는 경우 프로젝트에 Realm Swift와 Realm Objective-C 를 모두 포함하는 것이 좋습니다. Sw.. [iOS/Swift] CoreData, Realm 스파르타 사전캠프 11일차 Programmatic(코드베이스) UIKit 공부를 하기 위해 예전에 결제했던 Udemy iOS & Swift - The Complete iOS App Development Bootcamp 강의를 다시 보기로 하였다. 하지만, 강의에는 Storyboard 밖에 없었다.그래도 나름 결제한 강의니 기존에 보던 곳 부터 이어서 들을려고 하였다.결국 Swift에서 데이터 관리하는 부분에 대한 강의를 듣게 되었다.Swift 데이터 관리 방식에는 여러가지가 있었다. 적은 양의 데이터에 적합하고, plist에 저장하는 방식에는 UserDefaults, Codable, KeyChain많은 양의 데이터에 적합하고, Database에 저장하는 방식에는 SQLite, CoreData, Realm.. [iOS/Swift] Xcode Code Sense 알아보기 위 사진 처럼 Xcode로 코드를 작성하면서 자동완성을 사용할 때 가지각색의 아이콘들과 함께 나온다.각각의 아이콘이 무엇을 의미하는지 정리해보았다. Red: macros # = macro (think #define) Brown: Core Data / namespace C = modeled class M = modeled method P = modeled property N = C++ namespace Orange: aliased types C_ = Objective-C category E = enum T = typedef / typealias Ex = Swift extension Green: variables B = binding f = function F = field K = constant L = .. [iOS/Swift] 스파르타 사전캠프 10일차 스파르타 사전캠프 10일차 오늘은 어제 새로 알게된 것들을 복습하였고, 기존에 만들었던 Storyboard UIKit 프로젝트 들을 Codebase로 바꾸기 위해 인터넷을 뒤지며 공부를 하였다. 오늘은 다음 코드리뷰 프로젝트인 Couter 프로젝트를 Codebase로 변경했다. Storyboard UIKit -> Codebase뷰(UILabel, UIButton 등)를 코드로 생성해야 함Auto Layout을 코드로 설정해야 함 (NSLayoutConstraint, NSLayoutAnchor)@IBOutlet을 제거하고, 버튼의 액션을 코드로 추가해야 함 import UIKitclass ViewController: UIViewController { private let numberLabel: UIL.. [iOS/Swift] MVC, NotificationCenter, static, lazy 스파르타 사전캠프 9일차 주어진 사전캠프 퀘스트들을 다 완료하여서 팀원들과 스크럼을 하며 복습을 하였다. 이번에는 RandomColor 프로젝트에 대해 코드리뷰를 하였다. UIKit은 스토리보드로만 공부해본 경험만 있었기에 나만 스토리보드로 코드를 짰었다.나머지 팀원분들은 코드베이스로 코드를 짰었다.수준차이가 생각보다 많이 난다고 느꼈다. UIKit에서 스토리보드를 쓰지않고 코드베이스로 개발 세팅을 하기 위해서 아래 블로그를 참조하라고 팀원분이 도움을 주셨다.https://tdcian.tistory.com/424 코드리뷰에서 새로운 것들을 많이 배웠고, 이미 알았던 것들도 다시 복습을 하게 되는 기회가 되었어서 좋았다. MVC PatternMVC는 Model, View, Controller를 분리하여 작.. 이전 1 ··· 3 4 5 6 7 다음