목록전체 글 (163)
아요 개발 일기
안녕하세요~~ 오늘은 Api 통신할때 아주아주정말정말 중요하고 필수적인 parsing과 관련하여 알아보겠습니다!! 우선 아래와 같은 JSON String이 있다고 가정하구 시작하겠습니당 let json_str = """ { "name":"sojin", "age":20, "city":"New York" } """ ObjectMapper ObjectMapper는 JSON을 객체로(또는 그 반대로) 변환할 수 있는 프레임 워크입니다. import ObjectMapper class UserDTO: Mappable { var name : String? var age : Int? var city : String? required init?(map: Map) { } func mapping(map: Map) { nam..
안녕하세요!! 회사에서 경고창을 제거하고 merge하려면 branch 가져와야했는데.. 해본적이 없어서 처음에 우왕좌왕했었어용.. 그래서 들고 왔슴니다!!! 가보자고~~~!(요) 1. git과 연결 여기 포스팅에서는 xcode를 사용한는 방법은 적어 놓을께요! 아래와 같이 저장소에서 프로젝트 clone 주소를 복사합니다. 두번째 clone an existing project를 누른 후, 1번이라고 표시해놓은 곳에 아까 복사한 주소를 붙여 넣은 후 Done 버튼을 누르면 끝! 이렇게 데리고 왔으면 그냥 아래 과정을 쭉 따라하시면 됩니당 :D 2. branch의 Request to merge 코드 알아두기 3. 일단 pull 하기 (프로젝트 가져오기) pull로 프로젝트를 땡겨 옵니다! 4. branch..
안녕하세요! Playground로 RxSwift를 하고 싶은데 빌드를 매번하긴 번거롭더라구요.. 그래서 구글링을 해보니 좋은 방법이 나와있어서 정리 해보려 합니다! 1. Project를 Application의 App으로 만듭니다. 2. Cocoa pod를 이용하여 framwork를 추가한 후 pod install을 해줍니다. --> Cocoapod 사용법을 모르시는 분들은 [iOS] Cocoapod vs Carthage vs SPM글을 참고해주세요! 포트 설치 후 기존 프로젝트 창을 닫고 오른쪽 xcworkspace를 열어줍니다. 3. Playground 추가 위와 같이 파일이 선택되어있지 않아야합니다! 선택되어있으면 command + 선택되어있는 파일 클릭 하면 없어집니다 그 다음 좌측 하단에 있는 +..
안녕하세요 :D 오늘은 WebView로 Hybrid 앱을 만들어보도록하겠습니다! Hybrid 앱이란 앱과 웹이 결합되어있는 앱을 말해요!! 그럼 같이 만들어볼까요?! 실행 영상 먼저 실행 영상부터 살펴보겠습니다 :ㅇ Outlet 구성 위 실행 영상에서 보았듯이 이 프로젝트에서는 웹 페이지로 이동하는 버튼들과 종료, 리턴, 전, 후 처리를 해주는 버튼, Url을 적어줄 TextField, Web 화면을 띄워줄 WKWebView, loading 부분을 맡는 ActivityIndicator 으로 구성했습니다. loadWebPage 함수 웹 페이지 로드하는 함수를 볼까요?? 이 loadWebPage는 다른 기능을 수행할때도 계속 사용될 친구에요! URLRequest를 사용하여 WebView.load에 로드해주고..
안녕하세요~~@.@ 오늘은 구구단 게임을 만들어보겠습니다!!!! 모든 언어에서 기초 시작할때는 구구단 게임을 항상 만드는 것 같아요 ㅋㅋㅋㅋㅋㅋ 시작해보겠습니다 !! 먼저 실행 동영상을 살펴볼까요~~~ 자 이제 만들러 가보겠습니다!! 랜덤 숫자를 출력해주는 label 먼저, 랜덤 숫자를 출력할 label 두개와 게임 값을 받을 TextField 한개를 @IBOutlet에 연결해줬어요!! 이제 랜덤 숫자를 label에 넘겨 줄 함수를 만들어주겠습니당 Int 구조체에 정의되어있는 random 함수를 불러와서 1부터 9까지 랜덤 값을 받아줬습니다! 음 보니까 아래 코드 부분이 return 즉 반환값을 String으로 변환해주고 있죠?? String(Int.random(in: 1...9)) 왜 String으로 ..
안녕하세요! 오늘은 저번 글에서 말한것처럼 PickerView를 이용하여 알람을 맞춰보도록 하겠습니다!! 알람을 맞추려면 현재 시간을 출력해야하므로 전에 했던 것보다 조금 더 복잡해요! 같이 해봅시다!!! :D 본격적으로 들어가기 전에, 타이머는 Timer.ScheduledTimer라는 클래스 메서드를 사용하여 생성할 수 있어요~ Timer.ScheduledTimer에 대해 알고 싶다면 Apple developer 을 참고해주세요! 시간 출력하려면!!? 먼저 시간을 출력하려면 Timer.ScheduledTimer 사용해야한다고 했는데 아래 코드들을 보면 매개 변수가 5개나 있네요.... 어떤 뜻을 가지고 있는지 알아야 제대로 사용할 수 있겠죠?! Timer.ScheduledTimer 매개 변수 살펴보기 ..
안녕하세요! 오늘은 Picker View를 사용해서 원하는 이미지를 출력해보는걸 해보겠습니다!! (지극히 개인적으로 새롭게 접했던? 중요하다고 생각했던? 부분만 글을 쓰려고하니 참고만해주세용) 일단, PickerView를 사용할때는 extension을 빼놓을 수 없다고 해요!!!! extension은 가볍게 이야기하면 확장하는 키워드 입니다 ㅎㅎ 익스텐션에 대해서 잘 모르거나 더 자세히 알고싶은 분은 Extension - 익스텐션 을 참고해주세요:D (오늘의 TMI) 요즘 내일 배움 카드로 학원 다니구 있어요 ㅎㅎㅎㅎㅎ 확실히 비대면으로 강의 듣는것보다 대면이 좀 더 집중도 잘되고 바로 질문 할 수 있어서 좋더라구요 ㅎㅎ헤헤 Picker View가 뭐에요?? 그냥 해석해보면 선택하는 보기? 이런느낌인데,..
안녕하세용 :o 오늘은 MVP 패턴에 대해서 공부해보도록 하겠습니다!!! MVC나 MVVM은 워낙 유명해서 알고 있었지만, MVP?! 저는 처음 들어보는.. 친구였어요,, 공부하다가 알게된 새로운 친구! 같이 알아봅시다 🤔 MVP란? Apple's MVC는 저번 글에 설명한 것처럼 UIView의 lifecycle에 의해 Controller가 강하게 연관되어있었죠? 그래서 Controller가 하는 일이 많아진다는(크기가 방대해짐) 단점이 있었습니다!!! iOS가 이 문제를 해결하기 위해 Controller대신 Presenter 개념을 도입하여, Model + View + Presenter로 구성된 MVP 패턴을 만들었습니다. Passive View는 life cycle과 아무 연관이 없고, 어떠한 레이아..