전체 글 45

iOS Human Interface Guidelines 읽어보기! - App Architecture/Settings

설정(Settings) 일부 앱은 설정 또는 구성 선택을 위한 방법을 제공해야 할 수 있지만 대부분의 앱은 그렇게 하는 것을 피하거나 지연시킬 수 있습니다. 성공적인 앱은 대부분의 사람들에게 즉시 잘 작동하는 동시에 경험을 조정할 수 있는 몇 가지 편리한 방법을 제공합니다. 대부분의 사람들이 기대하는 방식으로 앱이 작동하도록 설계하면 설정의 필요성이 줄어듭니다. 시스템에서 무엇을 할 수 있는지 추론합니다. 사용자, 장치 또는 환경에 대한 정보가 필요한 경우 사용자에게 요청하는 대신 가능하면 시스템에 해당 정보를 문의하십시오. 예를 들어, 지역 옵션을 표시할 때 사용자에게 우편 번호를 입력하도록 요청하는 대신 현재 위치를 사용할 수 있는 권한을 요청하십시오. 사용자가 자신의 정보에 대한 접근를 거부하는 경..

HIG 2021.12.20

터치 아이디 및 로컬 인증(LocalAuthentication) 프레임워크

1. 로컬 인증 프레임워크 반입 구문을 작성한다. import LocalAuthentication 2. 인증에 관한 종합 정보를 관리하는 객체인 인증 컨텍스트를 정의한다. 필요할 때마다 매번 객체 인스턴스를 생성해서 사용한다. let context = LAContext() 3. 터치 아이디 인증창을 구성한다. 오류 코드를 처리할 변수와 터치 아이디 인증창에 들어갈 메세지를 정의한다. 오류가 없을 수도 있으니 타입은 옵셔널로 한다. let context = LAContext() var error: NSErrror? let msg = "로그인을 위해 인증이 필요합니다." 4. canEvaluatePolicy 메소드를 호출하여 터치 아이디 인증을 사용할 수 있는 지 프레임워크에 문의한다. 이 메소드는 평가할 ..

iOS 2021.12.16

액세스 토큰(Access Token)과 리프레시 토큰(Refresh Token)

액세스 토큰은 API 호출에 사용되며, 유효 기간이 있다(짧다). 리프레시 토큰은 액세스 토큰을 갱신하는 데에 사용되며, 유효 기간이 없다. 리프레시 토큰으로 액세스 토큰을 갱시하면 새로운 액세스 토큰이 발급되지만, 리프레시 토큰은 유지된다. 로그아웃하면 리프레시 토큰과 액세스 토큰이 모두 만료된다. 로그인하면 기존의 리프레시 토큰과 액세스 토큰은 모두 만료되고, 새로운 토큰이 발급된다. 참고 : 재은씨의 꼼꼼한 Swift 실전편

iOS 2021.12.15

iOS Human Interface Guidelines 읽어보기! - App Architecture/Accessing User Data and Resources

사용자 데이터 및 리소스 접근(Accessing User Data and Resources) 사용자 개인 정보가 가장 중요합니다. 사람들이 앱을 신뢰할 수 있도록 하려면 필요한 개인정보 보호 관련 데이터와 리소스, 사용 방법을 투명하게 공개하는 것이 중요합니다. 예를 들어 다음과 같은 액세스 권한을 요청해야 합니다. 위치, 건강, 재정, 연락처 및 기타 개인 식별 정보를 포함한 개인 데이터 이메일, 메시지, 캘린더 데이터, 연락처, 게임 플레이 정보, 애플 뮤직 활동, 홈킷 데이터, 오디오, 비디오 및 사진 콘텐츠와 같은 사용자 생성 콘텐츠 블루투스 주변 장치, 홈 자동화 기능, 와이파이 연결 및 로컬 네트워크와 같은 보호된 리소스 카메라 및 마이크와 같은 장치 기능 중요 iOS 14.5 및 iPadOS..

HIG 2021.12.14

키 체인(Key Chain)

키 체인은 애플 계열의 운영체제에서 동작하는 다양한 응용 프로그램에서 비밀번호나 계정 등 보안이 필요한 요소를 저장하는 데 사용되는 암호화된 저장소이다. 특징 1. 기본적으로 애플리케이션은 자기 자신의 키 체인에만 접근할 수 있다. 2. iOS에서 키 체인의 위치는 샌드박스(외부에서 받은 파일을 바로 실행하지 않고 보호된 영역에서 실행시켜 봄으로써 잘못된 파일과 프로그램이 내부시스테 전체에 악영향을 주는 것을 미연에 방지하는 기술) 외부이므로, 앱을 삭제해도 키 체인에 저장된 정보는 삭제되지 않는다. 3. 앱의 프로비저닝 파일을 이용해서 앱 간의 사용 졍로를 구분하기 때문에, 동일한 앱이라도 프로비저닝 파일을 변경해서 빌드하면 기존 벙보를 더 이상 조회할 수 없다. 4. 키 체인 그룹을 사용하여 서로 다..

iOS 2021.12.10

iOS Human Interface Guidelines 읽어보기! - App Architecture/Navigation

앱 아키텍처(App Architecture) 내비게이션(Navigation) 사람들은 앱이 그들의 기대를 충족시키지 못할 때까지 앱의 내비게이션을 알지 못하는 경향이 있습니다. 당신의 임무는 앱 자체보다 앱의 구조와 목적을 서포트 하는 방식으로 내비게이션을 구현하는 것입니다. 내비게이션은 자연스럽고 친숙하게 느껴져야 하며 인터페이스를 지배하거나 콘텐츠에서 포커스를 빼앗아서는 안 됩니다. iOS에는 세 가지 주요 탐색 스타일이 있습니다. 계층 내비게셔이션 목적지에 도달할 때까지 화면당 하나씩 선택합니다. 다른 목적지로 이동하려면 갔던 길을 되돌아가거나 처음부터 다시 시작하여 다른 선택을 해야 합니다. 설정 및 메일은 이 내비게이션 스타일을 사용합니다. 평면 내비게이션 여러 콘텐츠 카테고리 간에 전환합니다...

HIG 2021.12.09

iOS Human Interface Guidelines 읽어보기! - App Architecture/Modality

앱 아키텍처(App Architecture) 모달리티(Modality) 모달리티는 종료하기 위해 명시적인 작업이 필요한 콘텐츠를 임시 모드로 표시하는 설계 기법입니다. 콘텐츠를 모달로 표시하면 다음을 수행할 수 있습니다: 사람들이 독립적인 작업이나 밀접하게 관련된 옵션 세트에 집중할 수 있도록 돕습니다. 사람들이 중요한 정보를 받도록 하고 필요한 경우 조치를 취합니다. 다양한 시스템 정의 모달 경험을 가능하게 하기 위해 iOS는 alerts, activity views, share sheets, action sheets를 제공합니다. 앱에서 커스텀 모달 콘텐츠를 표시하려면 다음 프레젠테이션 스타일 중 하나를 사용할 수 있습니다. 자동(Automatic). 기본 프리젠테이션 스타일(일반적으로 시트)을 사용..

HIG 2021.11.27

iOS Human Interface Guidelines 읽어보기! - App Architecture/Loading

앱 아키텍처(App Architecture) 로딩 중(Loading) 콘텐츠가 로드될 때 빈 화면이나 정적 화면은 앱이 정지된 것처럼 보이게 하여 혼란과 불만을 초래하고 잠재적으로 사람들이 앱을 떠나게 만들 수 있습니다. 로딩이 발생할 때를 명확히 하십시오. 최소한 무언가가 일어나고 있음을 알리는 활동 스피너를 보여주십시오. 더 좋은 것은, 사람들이 대기 시간을 알 수 있도록 명확한 진행 상황을 보여주는 것입니다. 콘텐츠를 최대한 빨리 표시합니다. 사람들이 기대하는 화면을 보기 전에 콘텐츠가 로드되기를 기다리게 하지 마십시오. 즉시 화면을 표시하고 플레이스홀더 텍스트, 그래픽 또는 애니메이션을 사용하여 아직 콘텐츠를 사용할 수 없는 위치를 식별합니다. 콘텐츠가 로드되면 이러한 플레이스홀더 요소를 바꿉니다..

HIG 2021.11.26

동기(Synchorous)와 비동기(Asychorous)

동기 실행이 끝날 때까지 다른 것을 처리하지 않고 대기한다. 코드가 실행 결과값을 반환받은 후 이 값에 따라 다음 로직을 실행하는 방식이다. 비동기 특정 기능이 실행되는 동안 대기하지 않고 다른 일을 한다. 일반적으로 비동기로 동작하는 것들은 실행 완료를 알려주기 위한 장치를 가진다. 비동기 함수들은 일반적으로 결과값을 가지지 않으며, 처리가 끝났을 때 이어서 실행할 또 다른 함수를 입력받는 경우가 많다. 이를 콜백 함수하고 한다. 처리 결과값에 따라 실행할 다음 로직을 콜백 함수 형태로 미리 전달하여, 비동기 함수가 알아서 적절한 시점에 실행하는 방식이다. 동기 방식의 함수를 비동기 방식으로 바꾼다는 것은 A 함수가 실행을 끝내면 B 함수가 이어서 다음 로직을 실행하던 구조를 , B 함수가가 실행해야 ..

iOS 2021.11.22

ATS(App Transport Security) 설정하기

Apple 측에서 앱 자체의 보안성을 위해 ATS(App Trasport Secuirty)라는 정책을 통해 기본적으로 https 통신을 하도록 유도하기 때문에 http 서버로 테스트하기 위해선 Info.plist에서 ATS 부분을 추가해주어야 한다. 1. Info.plist 파일을 열고 App Transport Security Settings 항목을 추가한다. 2. App Transport Security Settings 하위에 Exception Domains을 추가한다. 3. Exception Domains 하위에 도메인을 설정한다. 도메인 설정 시 맨 앞의 www. 또는 서브 도메인은 제외한다. 4. 도메인 별 설정에 사용할 수 있는 키를 추가한다. NSExceptionAllowsInsecureHTT..

iOS 2021.11.22