목록iOS (59)
아요 개발 일기
안녕하세여 🙇🏻♀️ 오늘 글은 제가 매번 찾아보기 귀찮아서 가져온 Xcode 단축어 정리 입니다! ( 새로운게 있으면 꾸준히 추가할 예정 ) Ctrl(^) 사용 CTRL + I : 코드 자동 정렬 시키기 CTRL + A : 줄의 맨 앞으로 이동 CTRL + B : Left. 캐럿을 좌측으로 한칸이동 CTRL + D : DELETE. 뒤의 한문자 삭제 CTRL + F : Right. 캐럿을 우측으로 한칸이동 CTRL + H : Back. 앞의 한문자 삭제 CTRL + K : 현재줄 캐럿이후의 문자를 전부 삭제. 문자가 없을 경우 개행문자 삭제 CTRL + N : Down. 아래로 CTRL + P : Up. 위로 CTRL + V : 전체의 마지막 위치 한 칸 전으로 이동. 이미 그 위치라면 맨 마지막으로 ..
생명주기 (Life Cycle)🤔 ? 생명주기란 앱의 최초 실행부터 앱이 완전히 종료되기까지 앱이 가지는 상태와 그 상태들 사이의 전이를 뜻합니다. 앱의 생명주기는 두가지가 있는데, 이는 SceneDelgate가 생기기 전후로 나뉩니다! iOS 13 이상 버전부터 SceneDelegate의 UISceneDelegate를 사용하면서 기존 13 이하 버전에서 사용했던 AppDelegate의 UIApplicationDelgate을 사용하는 주기와 메소드의 변화가 생기게되었습니다! ~ iOS 12: AppDelegate 사용 (SceneDelegate 없음) iOS 13 ~: SceneDelegate 사용 iOS 13 이후 - SceneDelegate iOS13부터 window(화면)의 개념이 scene으로 ..
안녕하세요! 오늘은 Moya를 이용한 네트워킹을 해보겠습니다 :D API는 영어 명언을 랜덤으로 출력해 주는 친구를 사용해보았습니다!ㅎㅎ Moya에 대한 이론적인 부분은 Moya가 뭐야? 글을 참고해주세요! Moya 설치 Swift Package Manager, CocoaPods, Carthage 를 사용하여 install할 수 있기 때문에 가장 익숙하고 편한 방법으로 설치합니다. 네트워킹을 담당할 enum을 하나 선언해서 사용될 target들 작성 enum AdviceAPI { case randomAdvice } TargetType 구현 baseURL: 서버의 endpoint 도메인 path: 도메인 뒤에 추가 될 path (/users, /documents, ...) method: HTTP meth..
안녕하세요! 오늘은 새로운 API 통신 방법인 Moya에 대해서 공부해보겠습니다!! What Is Moya? 🧐 iOS에서는 네트워킹을 구현하는 가장 기본적인 방법으로 URLSessoion을 사용합니다. URLSession은 로우레벨의 코드를 작성할 수 있고, 다른 프레임워크를 사용할 필요가 없다는 장점이 있지만, 사용이 복잡하고 코드의 가독성이 좋지 않아서 Foundation Networking을 기반으로한 인터페이스를 제공해 네트워킹 작업을 단순화 해주는 라이브러리인 Alamofire를 많이 사용합니다. 즉, URLSession을 한 단계 추상화시킨 방식이 우리가 많이 사용하고 있는 Alamofire 라이브러리입니다.(URLSession 기반) Alamofire는 iOS 앱 개발할 때 가장 보편적으로..
안녕하세요~~ 오늘은 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..
안녕하세요 :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 매개 변수 살펴보기 ..