iOS

· iOS
개발을 진행하면서 (개인적으로) 매우 흥미로운 것을 발견하였습니다. @IBAction func textFieldTExtChanged(_ sender: UITextField) { print("sender -> ", sender.text) // 만약 숫자만 포함 if isNumber(sender.text) { // Q. 왜 옵셔널인데 sender.text만 해도 옵셔널이 해제되는거지? // 문자열 보간법으로 작성하면 Optional로 나타남!! resultLabel.text = "\\(sender.text)" // 하지만 text에 바로 할당하면..
· iOS/UIKit
스토리보드를 학습하는 과정에서 스토리보드는 어떻게 실행되는 것인지에 대해 학습해보고자 합니다. 스토리보드에 대해 알기 위해선 XIB와 NIB에 대한 이해가 필요합니다. XIB란 Xcode Interface Builder의 약자로, 화면을 구성할 때 사용되는 XML 형식의 파일입니다. XML 파일이기 때문에 바이너리보단 사람이 이해하기 쉽고, 수정된 부분을 확인할 수 있어 소스코드로 관리할 수 있습니다. 직접 수정을 하기 위해선 XML 문법에 맞춰서 수정해야 하지만, Xcode에서 Interface Builder(스토리보드)를 제공하여 GUI 형태로 수정할 수 있도록 해줍니다. NIB는 Nextstep Interface Builder의 약자로, 화면을 구성하는 클래스들을 바이너리 형태의 압축 파일로 저장하..
· iOS/UIKit
이번 글은 UIKit 프레임워크를 스토리보드를 사용하지 않는 코드 기반으로 세팅하는 방법에 대해 알아보겠습니다. 스토리보드와 코드 베이스에는 장단점이 존재합니다. 우선 스토리보드의 장점은 어노테이션이나 컴포넌트와 관련된 코드를 줄일 수 있어 로직에 더욱 집중할 수 있습니다. 뷰가 복잡해질 수록 관리할 코드가 줄어들기 때문에 관리하게 편해집니다. 또한 오토 레이아웃을 시각적으로 보여주어 오류를 쉽게 파악할 수 있습니다. 단점은 스토리보드는 xml 기반이기 때문에 다른 개발자가 확인하기에 어렵다는 문제점이 있습니다. 스토리보드를 수정하고 PR를 요청했을 때, 다른 개발자가 코드만을 보고 변화를 확인하기 어렵다는 단점이 있습니다. 또한 뷰에 컴포넌트가 추가되어 복잡해질수록 파일이 무거워진다는 단점도 있습니다...
· iOS
이번 글은 SwiftLint를 적용하는 방법에 대해 알아보도록 하겠습니다. SwiftLint란 SwiftLint란 스위프트 스타일 및 컨벤션을 강제하기 위한 도구로, Kodeco 스위프트 스타일 가이드에 대략적인 기반을 두고 있습니다. 협업을 진행할 때, 컨벤션을 정하고 이를 준수하기 위해 코드 리뷰 등을 진행하지만, 컨벤션에 맞지 않는 경우가 생길 수 있습니다. 이러한 경우를 위해 SwiftLint를 사용하면, 컨벤션에 맞지 않는 부분을 알려주기 때문에 컨벤션을 지키는데 도움을 줍니다. SwiftLint 사용하기 1. SwiftLint 설치하기 우선 SwiftLint를 사용하기 위해선 SwiftLint를 설치해주어야 합니다. brew로 설치할 수도 있고, cocoapods로 프로젝트 자체에 추가해서 사..
· iOS
개요 앱 개발을 한다면 혼자서 개발을 하는 경우도 있지만, 협업을 통해 진행하는 경우가 대다수입니다. iOS를 협업으로 진행해보신 분들은 아실 수 있는데, 협업을 진행할 때 다른 사람이 수정한 파일을 pull 받아서 실행하려고 하면 Bundle Identifier와 관련된 문제로 인해 실기기를 빌드할 수가 없는 경우를 겪을 수 있습니다. 혼자 개발할 때는 다음과 같이 Automatically manage sigining이 선택되어 있는 상태에서 실기기를 실행시켜도 문제가 발생하지 않습니다. Automatically manage signing을 선택해두면, xcode가 자체적으로 Provisioning Profile을 생성하고, 해당 Provisioning Profile에는 App ID, Certifica..
· iOS
서버 알림 서버 알림(서버 푸시)은 앱 서버 또는 외부 서버에서 생성되고 디바이스로 보내지는 알림을 보내는 방법으로, 로컬 알림과 같은 동작을 수행하지만 알림을 보내는 출처가 다르다는 특징이 있습니다. 서버 알림을 보내기 위해선 APNs을 등록해야만 가능합니다. APNs (Apple Push Notification service) APNs란 Apple Push Notification service의 약자(보통 APN이라고 부릅니다.)로, third party 개발자가 앱에 푸시 알람을 보낼 수 있도록 Apple에서 만든 알림 서비스 플랫폼을 의미합니다. 여기서 third party란 푸시 서버를 말하는 것입니다. Apple은 푸시 서버가 직접적으로 앱에 알림을 보내는 것을 허용하지 않고, APNs에게 푸..
· iOS
로컬 알림 로컬 알림(로컬 푸시)는 앱 내부에서 미리 만든 특정 메시지를 iOS의 알림 센터를 통해 전달하는 방법으로, 앱이 종료되어 있거나 백그라운드 상태일 때도 메세지를 전달할 수 있는 방법 중 하나입니다. 로컬 알림은 iOS 스케줄러에 의해 발송되는데, 앱 내부에서 미리 메세지를 구성한 후 발송될 시간을 iOS 스케줄러에 등록해 두면 해당 시각에 맞추어 자동으로 발송합니다. 따라서 특정 시각에 뭔가를 알려주도록 처리할 때에도 로컬 알림을 사용할 수 있습니다. 로컬 알림은 주로 앱 델리게이트 클래스에 생성하게 되면 앱이 백그라운드 상태에 있을 때에도 알림을 줄 수 있어, 사용자의 이목을 집중시킬 수 있는 효과를 가질 수 있습니다. 과거에 로컬 알림을 처리하는 객체는 UILocalNotification..
· iOS
이 앱은 Apple Developer Academy @ Postech에서 진행한 MC3 프로젝트 때 개발한 앱입니다. 인원도 4명으로 제일 적었고, 해야할 것들도 매우 많았지만,,, 완벽한 팀원들 덕분에 배포까지 완료하였습니다 ㅎㅎ 하지만 배포 과정에서 여러 가지 우여곡절이 많았고, 사실 아직 심사 중이기 때문에 리젝을 당할 수도 있지만,, 배포 과정을 직접 진행한 과정을 정리해두고 싶어서 포스팅을 하고자 합니다. 우선 처음으로 배포 과정을 진행해보았는데, 배포 해보고 싶다는 저의 의견을 들어주신 팀원분들 감사드립니다 ^_^ (꾸벅) 과정 앱스토어 커넥트에 추가하기 우선 앱 스토어 커넥트에 들어가 본인의 계정으로 로그인한 뒤, 나의 앱을 선택해줍니다. + 버튼을 통해 신규 앱을 생성해줍니다. 앱 정보 입..
Dev_Ted
'iOS' 카테고리의 글 목록 (4 Page)