전체 글 66

1인 앱개발자의 iOS개발 일지 - 중 -

좋은 앱은 (잘 기능하고 디자인이 괜찮은 앱) 혼자서 만들 수 없습니다 1인 앱개발자가 혼자서 '잘 기능하고 디자인이 괜찮은' 앱을 만들기는 어렵습니다. 반드시 조언을 해줄 멘토, 디자이너, 동료들이 필요하다는 걸 절실히 느낍니다. 현재 프로젝트를 두 개 진행하고 있습니다. 하나는 SwiftUI 앱(무료앱), 다른 하나는 Swift 기반의 서비스앱(월구독형 유료앱)을 진행하고 있습니다. 서비스앱을 진행하는 도중 디자이너님이 바껴서 공백 기간 동안 SwiftUI 기반의 앱을 진행하고 있습니다. 스유에는 항상 관심이 많았는데 프로젝트를 진행해보니 배우는 것이 많습니다. 스유의 선언형 코드와 변수와 UI가 연결되어 있어 획기적인 시간 단축과 코드 가독성을 느낍니다. 프리뷰를 통해 개발 시간을 줄이는 것도 최고..

[SwiftUI/화면이동] navigationDestination 바르게 사용하기

#문제 NavigationLink(destination: , isActive: )이 iOS16+ deprecated되어서 더 이상 사용할 수 없었습니다. 그래서 다른 메서드인 navigationDestination 사용하였는데, 화면이 전환되지 않았습니다. NavigationLink(destination: , isActive: ) // deprecated! #오류 처음에 코드를 짰을 때 navigationDestination이 작동하지 않아서 다음 화면으로 넘어가지 않았습니다. struct OpeningView: View { @State private var moveToScoreBoard = false @State private var moveToLoadRecentGame = false var body:..

Apple/SwiftUI 2024.01.02

23.12.20 커머스앱 - 쿠팡, 이마트

콜렉션뷰가 굉장히 많음 -> 사용성 부분에서 콜렉션뷰 섹션을 나눠서 사용자가 스크롤을 덜하게 할 것 같음스크롤뷰로 구성스크롤을 내리면 검색창이 사라짐스크롤을 올리면 검색창이 생김(애니메이션이 빠르게 느껴져서 접혔다가 바로 펴지는 느낌)페이지 컨트롤러를 사용하여 사진 스크롤 콜렉션뷰 / 스크롤뷰쿠팡만큼 상품 노출이 메인에 많지 않음타이머에 맞춰서 상품이 옆으로 스크롤됨(콜렉션뷰)스크롤을 올리면 검색창이 내려옴(애니메이션이 느려서 조금 답답한 느낌) -> 사용성 부분에서 반응성이 더 빠르게 불필요한 애니메이션은 줄이거나 애니메이션 속도를 단축시킬 것이다쿠팡에 비해 사진보다 작은 글이 있어 이벤트 같은 부분이 노출이 적게 느껴짐 -> 배너 사진으로 이벤트 부분을 강조하는 것이 더 좋을 것 같음

UX UI 일기 2023.12.20

23.12.19 위치추적기반앱 - Life360, 아이쉐어링

- 전화번호 인증 화면(사용 불편) 문제 -> 사용성 개선이 필요해보임 문제: 아이폰 기종에 따라 전화번호를 다 입력해도 키보드 자판이 내려가지 않는 화면 발생 해결: 나라면 바탕 뷰를 탭해도 키보드 화면이 내려가도록 추가적으로 설계할 것임 -알림 화면 iOS에서 기존에 제공하는 alert 화면이 아닌 뷰를 만들어 알림 화면을 만들어주었고, 종료 버튼이 왼쪽에 있음 -메인 화면의 버튼 메인의 지도 화면에서 버튼이 잘 보이도록 백그라운드를 하얀색으로 해주어 눈에 들어오게 함 -긴급 알림 전송 타이머를 통해 시간이 줄어드는 것을 숫자와 선 색깔이 줄어드는 걸로 표현을 해주었음 - 상세 메뉴 메뉴들을 섹션화해서 구분해주었음 - 장소 추가 버튼을 누르면 뜨는 세부 기능들과 상세 메뉴들은 Present로 올라옴 ..

UX UI 일기 2023.12.19

1인 앱개발자의 iOS개발 일지 - 상 -

기획부터 개발까지 하는 게 쉽지는 않지만 재밌고 뿌듯하다. 세상에 내가 생각한 아이디어가 나온다는 건 감동적인 일이다. - 와이어 프레임 꼭 짜야 하는 이유 디자이너님께 내 아이디어를 전달하기 위해서 와이어프레임을 피그마로 짰는데 만들고 보니 개발에 필수적이라는 것을 느꼈다. 머리속에는 있지만 구체화 시키지 않아서 화면을 만들 때마다 생각을 하면서 만들어야 했다. 속도가 너무 더뎠는데, 와이어프레임을 보고 메모한 것을 보니 바로바로 적용할 수 있어서 속도가 났다. 아이폰 실물 모델로 UX 표현해서 구체화 하는 게 너무너무 중요하다는 걸 깨달았다. - 예산을 아끼자. 한국에서 제공하는 고객 문의용 서비스는 유료여서, 외국에서 제공하는 사이트를 보니 웹에 연결해서 편하게 고객 대응을 할 수 있는 서비스를 찾..

[Dart & Swift] 변수

변수 관습적으로 함수나 메서드 내부에서 지역 변수를 선언할 때에는 var 사용 class에서 변수를 선언할 때에는 타입을 지정해 줌 String name = “하루”; dynamic 스위프트의 Any와 같음. 변수명 앞에 타입을 dynamic으로 지정해주거나, var 키워드와 변수명을 선언 후 값을 지정하지 않으면 됨 null safety 스위프트의 옵셔널 개념 어떤 변수(데이터)가 null이 될 수 있음을 명시하는 것 String? haru = 'haru'; haru = null; // ㅇ에러 안남 final variables 한번 정의된 변수를 수정할 수 없게 만들 때 var 대신 final 키워드 사용 late 초기 데이터 없이 변수를 선언할 수 있게 해줌 late final 변수 데이터를 나중에 ..

Apple/Swift 2023.11.29

[SwiftUI 특징] 선언적 구문, 데이터 주도적이다.

선언적 구문 SwiftUI를 사용하면 레이아웃이 실제로 구축되는 방식의 복잡함에 대해 고민할 필요 없이 사용자 인터페이스가 어떤 모양을 이어야 하는지를 선언하는 방식으로 레이아웃을 생성할 수 있다. 이 과정에는 기본적으로 레이아웃에 포함될 컴포넌트들을 선언하고, 그것의 레이아웃 매니저 종류(VStack, HStack, Form, List 등)를 명시하고, 속성(버튼의 텍스트, 색상, 호출될 메서드)을 설정하기 위해 수정자(modifier)를 사용한다. 이렇게 선언하면 레이아웃의 위치와 컨스트레인트, 렌더링 방법에 대한 세부사항은 SwiftUI가 자동으로 처리한다. 데이터 주도적 SwiftUI는 앱의 데이터 모델과 사용자 인터페이스 컴포넌트, 그리고 기능을 제공하는 로직을 binding하는 여러 방법으로 ..

Apple/SwiftUI 2023.10.27

[iOS앱출시] 첫 출시 기록, 강수예보 알림 <올랑말랑> 후기

기상청 정보를 받아 강수예보를 알려주는 앱 ❓ 왜 이 앱을 출시하게 되었나요 오늘 비가 와서 우산을 챙겨야 할지 말지, 날씨 앱을 열어보는게 귀찮았습니다. 강수확률이 일정확률(%)을 넘으면 우산을 챙기라는 알림을 아침에 받으면 편하지 않을까?라는 생각으로 앱을 기획하게 되었습니다. ⛅️ 앱의 주요 기능 * 사용자의 위치 기반으로 한 눈에 볼 수 있는 시간별 강수 확률 * 원하는 강수확률을 지정하면 아침 7시에 알림이 옵니다. * 앱에서 사용자가 원하는 귀여운 캐릭터를 선택할 수 있습니다. 🌈 사용 기술 TabMan 스플래쉬에서 메인으로 넘길 때 탭맨을 이용하여 탭뷰컨트롤러에서 탭을 관리할 수 있습니다. Almofire GET, POST 등 다양한 HTTP 요청을 쉽게 보낼 수 있어, API 호출을 편히..

[iOS 개발자 추천도서] UX/UI의 10가지 심리학 법칙

😄 이 책을 선택하게 된 이유 1인 앱개발을 하면서 앱의 화면을 구성하는 것이 생각보다 어려웠습니다. 어떤 곳에 배치해야 사용자가 편할 지, 아이템 간의 간격은 얼마나 둬야할 지 등 앱을 사용하는 사용자의 입장만 되어보다가 앱을 설계하는 설계자가 되어보니 UX/UI에 대한 지식을 쌓는 것이 필요하다고 느껴 책을 선택하게 되었습니다. 📖 책의 주요 내용  UX/UI는 사용자의 '마음'을 읽는 인간 중심 제품과 서비스 디자인입니다. 모든 선택에는 심리적인 이유가 있다는 것이 저자의 설명입니다. 사용자 경험 패턴을 단순히 지식으로 습득하고 적용할 때보다 기저에 있는 심리학 법칙까지 이해하고 사용한다면 훨씬 더 설득력 있는 인터페이스로 이어질 것입니다. 1. 제이콥의 법칙 - 사용자는 여러 사이트에서 대부분..

2023.10.25