TECH RAFA
/
Projects (6)
Search
Share
Projects (6)
Gallery
List
Search
All Posts
헌혈 앱(기간: 1일)
Project
UIKit
CocoaPods
MVC
SnapKit
Then
2024/01/04 19:30 → 2024/01/05 07:30
GitHub - UMC-HowsTheWear/HowsTheWear-iOS at develop
Contribute to UMC-HowsTheWear/HowsTheWear-iOS development by creating an account on GitHub.
온도에 맞춰서 추천 아이템 실시간으로 변경
About
•
사용자 위치의 날씨 데이터에 따른 실시간 옷 추천 + 다양한 패션 정보 제공
•
CoreLocation과 WeatherKit 사용
사용된 오픈소스라이브러리
•
SnapKit
•
Then
사용된 프레임워크
•
CoreLocation
•
WeatherKit
주요 코드
Hows The Wear(기간: 54일)
Project
UIKit
CocoaPods
MVC
CoreLocation
WeatherKit
SnapKit
Then
2023/12/29 → 2024/02/21
About
•
SwiftSoup를 이용해서 웹 사이트의 텍스트를 크롤링 해옴
•
SF Symbols의 이미지를 랜덤으로 표시하고 5개의 문항 중 정답 선택하면 다음 문제로 넘어가고 오답이면 진동 + 화면 흔들리는 애니메이션 + 빨간색 배경색이 등장 후 사라짐
사용된 오픈소스라이브러리
•
SwiftSoup
•
SnapKit
•
Then
주요 코드
[ JSON 인코딩을 활용한 데이터의 로컬 저장 처리 ]
•
[Symbol] 배열을 받아서 JSON 형태로 인코딩하고 로컬 디바이스의 ‘Documents’ 디렉토리에 저장한다.
•
JSONEncoder.encode(symbols)
를 통해 ‘Symbols’ 배열을 JSON 데이터로 변환하고 이 데이터를 ‘filePath’ 위치에 ‘automic’ 옵션으로 쓴다.
•
‘catch’문을 통해 오류가 발생하면 그 오류를 콘솔에 출력한다.
Codable이란? Swift에서 데이터 모델을 JSON이나 다른 외부 표현 형식으로 쉽게 변환할 수 있도록 하는 프로토콜이다. 실제로는 ‘Encodable’과 ‘Decodable’ 두 프로토콜의 조합인 타입 별칭이다. ‘Encodable’은 Swift 타입을 외부 표현(ex. JSON)으로 변환할 수 있게 해주고 ‘Decodable’은 외부 표현에서 Swift 타입으로 변환할 수 있게 해준다. 따라서 서버에서 JSON 형태의 데이터를 받아와 Swift의 구조체나 클래스로 변환할 때 매우 유용하다.
SF Symbols 퀴즈 앱(기간: 7일)
Project
UIKit
CocoaPods
MVC
SwiftSoup
SnapKit
Then
2023/12/22 → 2023/12/29
About
•
AVFoundation을 이용해서 버튼에 햅틱 효과를 추가함
•
문자열에 Timer를 이용해서 각 문자에 타이핑 효과를 넣음
사용된 오픈소스라이브러리
•
ViewAnimator
사용된 프레임워크
•
AVFoundation
주요 코드
[ 타이핑 효과 및 특정 문자 커스텀 ]
•
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5)
를 사용하여 메인 스레드에서 0.5초의 지연 후에 블럭 내의 코드를 실행한다. → 애니메이션 시작 전에 짧은 지연을 제공하여 뷰가 자연스럽게 이어지도록 함
•
var charIndex = 0.0
은 문자의 인덱스를 추적하기 위한 변수이다. 이 인덱스는 각 문자에 대한 타이머의 시작 시간을 결정하는데 사용된다.
•
for letter in text
를 사용하여 ‘text’ 변수에 있는 각 문자를 반복 실행한다.
•
Timer.scheduledTimer(withTimeInterval: 0.1 * charIndex, repeats: false) { timer in
은 0.1초 x 문자의 인덱스만큼 지연된 타이머를 생성한다. → 각 문자가 하나식 차례대로 나타내기 위해서
인용구 앱(기간: 7일)
Project
UIKit
SPM
AVFoundation
ViewAnimator
2023/10/18 → 2023/10/25
About
•
Kingfisher를 이용해서 원격 저장소에서 이미지 다운로드 후 캐싱하여 앱의 반응 속도와 데이터 관리 효율성을 증가시킴
•
ViewAnimator를 이용해서 사용자에게 보다 매력적인 인터페이스를 경험할 수 있도록 함
사용된 오픈소스라이브러리
•
Kingfisher
•
ViewAnimator
주요 코드
[ 이미지 다운로드 및 캐싱 ]
•
DownsamplingImageProcessor
를 사용하여 ‘backgroundImageView ‘의 크기에 맞게 다운샘플링하였고 이를 통해 메모리 사용을 줄이고 앱의 성능이 향상된다. → 특히, 대용량 이미지를 다룰 때 유용함
•
.scaleFactor(UIScreen.main.scale)
은 이미지를 현재 디바이스 스크린 스케일에 맞게 조정한다. 이를 통해 다양한 해상도를 가진 디바이스에서 이미지가 깨지지 않고 선명하게 보일 수 있도록 도와준다.
•
.transition(.fade(0.2))
를 사용하여 이미지가 로드될 때 사용자에게 부드러운 시각적 경험을 제공하였다.
•
.cacheOriginalImage
는 ‘Kingfisher’기 이미지를 다운로드한 후 원본 이미지를 캐시에 저장하게 한다. 나중에 같은 이미지를 다시 요청할 때 캐시에서 빠르게 로드할 수 있어서 네트워크 사용을 줄이고 더 빠른 이미지 로딩을 가능하게 한다.
두뇌 게임(기간: 7일)
Project
UIKit
SPM
Kingfisher
ViewAnimator
2023/05/25 → 2024/06/01
About
•
닉네임, 한 줄 프로필과 자기소개 입력 및 유효성 검사
•
이전 뷰 컨트롤러에 데이터 전달 및 저장 → UserDefaults
사용된 오픈소스라이브러리
•
PanModal
사용된 프레임워크
•
SafariServices
새로 배운 것들
•
SFSafariViewController
•
UserDefaults
SFSafariViewController
•
웹 뷰를 띄우는 방법 세 가지
1.
UIWebView
2.
WKWebView
프로필 설정(기간: 7일)
Project
UIKit
SPM
SafariServices
PanModal
2023/04/23 → 2023/04/30