본문 바로가기

iOS

(10)
🥕당근마켓 티타임 (feat. Let's Swift 2022) 작년 11월 30일 처음으로 렛츠 스위프트 행사를 직접 참가했는데 그중 가장 기억에 남았던 당근마켓 티타임을 요약해 보았다. 당근마켓 코드리뷰 문화에 대해서 설명하고 질문 응답시간을 가졌었다. 사전리뷰 (슬랙에 올린 사진이 있던 것 같은데 찍지 못해서 없습니다 ㅜ) 코드리뷰 pr을 하기 전에 사전에 모여서 이야기를 하게 됩니다. 그래서 올렸을 때 문서 같은 것들은 이런 식으로 올려주셔서 어떤 목표를 하고 있고, 어떤 배경을 가지고 있는데 접근 방식으로 1, 2, 3 이렇게 제안을 해 주시면 챕터분들이 모여서 같이 이제 사전에 리뷰를 하고 이것을 진행하는 형태로 운영됩니다. 코드리뷰 중요하게 생각하는 것은 하나의 맥락을 가진 최소 단위의 pr을 올리는 것, 그 맥락을 알 수 있는 논문을 작성하는 것 , 리..
iOS App Main Run Loop, Update Cycle iOS App Main Run Loop iOS Main run loop Handling all user input events and triggers the appropriate responses in your application 앱 안에서 사용자의 입력 이벤트나 행동을 알맞은 응답으로 핸들링하는 것 모든 User interaction을 event queue에 추가 Event queue에 추가된 모든 event들을 application 안에 다른 objects에 전달한다. (사진 속의 Application object로 전달한다?) 본질적으로 사용자 입력 event를 해석하고 그에 해당하는 handler들을 core object에서 불러오는 식으로 run loop가 실행된다. 이 handler들은 개발..
Picker and Date Picker Pickers picker는 사용자가 선택하는 하나 혹은 여러 개의 별개의 목록들을 스크롤 가능한 상태로 표시할 수 있다. 날짜 picker는 달력 view에서 날짜를 선택하거나 숫자 키패드를 이용하여 날짜를 입력하는 방식으로 추가적인 값을 선택하는 방법을 제공해준다. 두가지 방법의 picker들은 단일 혹은 다중의 값들을 사용자가 선택하여 입력하기 쉽게 해 준다. 요구사항 picker을 사용하여 중간~긴 리스트의 아이템을 제공하는 것을 고려하세요. 만약 상당히 짧은 리스트의 선택을 표시해야 한다면, picker 대신에 pull-down button을 사용하는 것을 고려하세요. picker를 사용하면 많은 아이템들을 빠르게 스크롤 함으로써 쉽게 보이게 할 수 있지만, 짧은 리스트의 아이템에는 너무 많은 ..
Status Bars Status bars는 스크린의 가장 윗단에 나타나며 기기의 시간, 셀룰러, 배터리 레벨 등의 현재 상태를 표시한다. Status bar에 표시되는 실제 정보는 장치 및 시스템 구성에 따라 다르다. 요구사항 시스템에서 제공하는 status bar을 사용하세요. 사람들은 status bar가 시스템 전반에 걸쳐 일관성이 있길 기대한다. 그러므로 커스텀한 status bar을 지양해야 한다. 앱의 디자인에 따라 status bar의 스타일을 조정하세요. Status bar의 텍스트 및 시각적 스타일은 앱의 전역 적으나 각 스크린에 개별적으로 밝거나 어둡게 조정할 수 있다. 어두운 status bar는 밝은 콘텐츠와 잘 맞고 밝은 status bar는 어두운 컨텐츠와 잘 맞다. Status bar밑의 콘텐츠를..
Navigation Bars Navigation bar는 앱 화면의 상단, status bar 아래에 위치하며 연속적인 계층의 화면을 탐색할 수 있게 한다. 새로운 화면이 표시될 때, 보통내비게이션 바의왼쪽에 전 화면의 title이 적힌 형식의 뒤로가기 버튼이 생성된다. 가끔, 오른쪽 화면에는 Edit, Done과 같은 실행중인 view내에서 content를 관리하는 도구들을 담기도 한다. 분할된 뷰에서 Navigation bar는단일의 분할된 뷰에서 나타난다.(?) Navigation bars는 반투명 색으로 배경색을 지정할 수 있고, 키보드가 화면에 표시되거나 제스처가 발생하거나 view가 재조정될 때 숨기도록할 수있다. 요구사항 표준형 뒤로 가기 버튼을 사용하세요. 사람들은 표준형 뒤로 가기 버튼을 사용하여 정보 계층 구조를 ..
Segmented Controls Segmented control은 기능적으로 상호 간에 양립하는 두 가지 혹은 더 많은 버튼들을 선 모양으로 모은 것이다. contol내에서 모든 segments들의 너비는 동일하다. 버튼과 같이 segment는 텍스트나 이미지 또한 담을 수 있다. Segmented controls는 보통 다른 view를 표시하기 위해 사용한다. 예를 들어, Maps에서 segmented control은 Map, Transit, Satellite 뷰들을 switch 할 수 있게끔 해준다. 요구사항 유용성을 높이기 위해 segment의 개수를 제한하라. 길이가 긴 segment는 탭하기 쉽다. iPhone에서 segmented control은 다섯 개 이내의 segments가 적절하다. Segment의 content si..
만들면서 배우는 클린아키텍처 를 읽으며 (1~4장) '클린 코드'를 읽고 그 이후에 유명한 여러 아키텍처들 (MVC, VIPER, MVVM 등)을 보고 따라 프로젝트도 만들어 보며 아키텍처의 필요성, 각각의 장단점을 파악하고 있던 중에 Clean Architecture라는 아키텍처 또한 공부를 하게 되었다. 사실 듣기도 많이 들어봤고 '클린 아키텍처'도 읽었지만 조금 막연한 느낌이었다. 개인 프로젝트에 최대한 클린 아키텍처를 따라 만들어 보면서 많은 생각도 하고 주변이나 유명한 채팅방에 물어보며 최근에야 조금씩 정리가 되어가는 느낌이다. 그러던 중 곰 튀김님이 이 책을 추천해주셔서 읽어보게 되었는데 읽어보며 더욱 아키텍처의 의미가 정리가 되는 것 같다. 이럴 때 바로 블로그에 정리를 해보려 한다. Part 1 계층형 아키텍처의 문제점 계층형 아키텍처는 데..
Tab Bars Tab bar는 스크린 하단에 위치한다. Tab bar는 앱의 정보, 기능적인 부분을 이해할 수 있도록 해준다. Tab을 사용하여 현재 navigation상태를 유지하며 같은 레벨의 section들을 오갈 수 있게 해 준다. 기본적으로 탭 막대는 반투명하다. 콘텐츠가 뒤에 나타날 때만 반투명(?) 형식으로 배경 자료를 사용하고 보기가 맨 아래로 스크롤될 때는 반투명을 제거한다. 키보드가 화면에 표시되면 tab bar는 숨겨진다. 기계의 사이즈와 방향에 따라, 보이는 탭들의 개수는 총 탭의 개수보다 작아질 수 있다. 만약 수평형 공간에서 보이는 탭을 제한한다면, 탭의 후행(오른쪽) 부분은 추가 탭이 되어 별도의 화면에서 나머지 항목들을 보여준다. TIP Tab bar와 toolbar 모두 screen의 하..