✏️ Localization이란?앱을 다양한 언어와 지역 환경에 맞게 번역하고 조정하는 과정 Localization은 앱을 언어와 문화권에 맞게 텍스트나, 날짜, 숫자, 형식등을 현지화 하는 과정이다. 한국어를 다른 언어로 번역하는 것 뿐만 아니라 각 문화권에서 익숙한 표현 방식까지 반영한다. 예를 들어 우리나라는 년/월/일 표기라면 영어권은 월/일/년을 사용하므로 다국어지원을 설정했을때 날짜 표기 방식도 함께 반영된다.영어는 복수형이나 문장 구조에 따라 표현이 달라지는 것들도 있기 때문에, Localization을 통해 문장이 어색해지는 걸 방지하고 네이티브처럼 자연스러운 문장을 제공할 수 있도록 한다 이번에 Apple Developer Academy에서 하는 쇼케이스를 앞두고 애플 본사에서도 직원이..
팀프로젝트에서 SwiftLint를 사용하긴 하지만 막상 바쁜 개발과 마감기한 때문에 경고를 무시한 채 코드를 붙이는 경우가 꽤 흔하다. swiftLint가 팀 전체 코드 스타일을 맞춰주기 위해 어느 정도 가이드를 제공해주긴 하지만 결국 개발자가 직접 수정하지 않으면 경고는 계속해서 남아있다. 그래서 차라리 코드 포맷팅을 자동으로 보정해주는 툴을 사용하면 다른 기능 구현하는데 더 효과적이지 않을까?라는 고민을 하게 되었다.lint가 발생시키는 경고를 최소화하고 코드 스타일 맞추는 시간보다 다른 생산적인 작업에 집중 할 수 있도록 환경을 설정하고 싶었기 때문이다. 이럴 때 유용한 도구가 swiftFormat이다. 자동화된 포맷팅을 통해 빌드를 하기만 하면 팀 컨벤션을 자연스럽게 맞춰지고, 개발자가 직접 수정..
api를 통해 이미지를 매번 요청하면, 이미지 개수가 많아질수록 로딩이 지연되는 현상이 발생하고 불필요한 api 비용이 증가하게 된다. 이런 문제점을 해결하기 위해 이미지 캐싱을 적용하면 한 번 불러온 이미지를 재사용하기 때문에 네트워크 트래픽을 줄이고, 지연 로딩되는 문제를 해결할 수 있다. 캐싱로직을 직접 구현할 수도 있지만 더 간단하고 안정적인 방식으로 처리해 주는 라이브러리를 사용해 이미지 캐싱 로직을 구현해 보고자 한다. 대표적인 이미지캐싱 라이브러리인 kingfisher를 활용해 이미지 캐싱을 구현해보고 실제 메모리 사용과 성능에 어떤 영향을 주는지 직접 확인해 보자. ✏️ Kingfisher웹에서 이미지를 다운로드하고 캐시 하는 순수 swift 기반 라이브러리 GitHub - onevcat..
오늘은 개발 도중 Combine을 import 할 때 오류가 떴는데 이를 해결한 과정을 포스팅해보려고 한다. 📍문제 상황 SwiftUI를 사용한 프로젝트 개발을 하던 중 아래와 같은 오류가 떴다. 이유는 observableObject 프로토콜를 사용하고 있는데 Combine 모듈을 가져오지 못해서 objectWillChange 같은 요소를 찾지 못하는 상황이다. 분명 import SwiftUI도 하고 observableObject 프로토콜도 채택하고 있는데 말이다.. 위 오류를 해결하는 방법은 fix 누르면 자동으로 코드에 internal import Combine 가 추가되면서 오류가 해결된다. 여기서 생기는 의문점들. . Combine을 호출하지 않아도 SwiftUI가 Combine을 호출하..
이때까지 Alamofire만 써봤었는데 Moya라는 네트워킹 오픈 소스 라이브러리에 대한 궁금증이 생겼고, 마침 진행하고 있는 프로젝트에서 네트워킹을 해야 했기에 이번에 Moya를 프로젝트에 적용해 보고자 포스팅을 하게 되었다. 따라서 오늘은 네트워킹에 필요한 오픈소스 라이브러리인 Moya에 대해서 살펴보고 API를 활용해 직접 통신해 보는 것까지 해보려고 한다. ✏️ Moya란?Alamofire를 기반으로 한 네트워킹 추상화 계층을 만드는 오픈 소스 라이브러리 GitHub - Moya/Moya: Network abstraction layer written in Swift.Network abstraction layer written in Swift. Contribute to Moya/Moya deve..
앱이 잠깐이라도 멈추면 사용자는 큰 불편함을 느끼고, 심한 경우에는 앱을 삭제하게 될 수도 있다. 따라서 좋은 사용자 경험을 제공하려면 성능 문제를 정확히 파악하고 개선할 수 있어야 한다.이런 순간에 instruments는 지연, 병목 현상을 찾아낼 수 있는 도구이다. 따라서 오늘은 instruments를 활용해서 실제 내 프로젝트에 어떤 부분이 hang이 발생하는지 파악하고, 최적화 작업을 해보자! ✏️ 들어가기 전hang이 어떤 것인지, instruments로 Hang을 어떻게 분석할 수 있는지 이해하고 넘어가자! 💡 Hang이란? : 응답이 없는 순간을 hang이라고 부른다. 위사진을 통해서 살펴보자. 탭을 하고 뷰에 나타나기까지 250ms이상이 걸리면 행이 감지된다.이 경우 주로 메인스레..
[iOS] UITest - XCUITest이번 포스팅에서는 UITest에 대해서 다뤄볼 예정이다!사용자 인터렉션을 테스트하여 UI플로우를 검증하는 XCUITest와,실제 픽셀 단위로 UI를 제대로 구성했는지 확인해 볼 수 있는 Snapshot Test에 대해yanni13.tistory.com 바로 전 포스팅에서 UITest에 대해서 알아봤었다.이번 블로그에서는 또 다른 UITest인 Snapshot 테스트에 대해서 공부해 보자! ✏️ Snapshot test란?특정 뷰를 기준으로 스냅샷을 저장하고 이후 실행 시 새로 생성하는 테스트 기법 snapshot 테스트의 가장 큰 장점은 의도치 않은 UI 변경을 빠르게 감지할 수 있다는 점이다. 코드 수정이 실제 화면에 영향을 주었는지 자동으로 확인할 수 있고..
이번 포스팅에서는 UITest에 대해서 다뤄볼 예정이다!사용자 인터렉션을 테스트하여 UI플로우를 검증하는 XCUITest와,실제 픽셀 단위로 UI를 제대로 구성했는지 확인해 볼 수 있는 Snapshot Test에 대해서 공부해 보자. 🧐 테스트 코드의 필요성왜 Test-code를 사용해야 할까? 주변에서 테스트 코드를 프로젝트에 도입한다고 하면 개발하기도 바쁜데 테스트 코드까지 짜면 시간낭비 아니냐, 비효율적인 거 같다는 말을 많이 들었다. 나 또한 그렇게 생각했었고 여전히 프로젝트 규모가 작거나, 단기성 프로젝트일수록 테스트 코드를 도입하는 것이 비효율적이라고 생각한다.하지만 장기전으로 봤을 때 테스트 코드가 동작하는 기능은 테스트가 동작하지 않는 기능보다 나중에 리펙토링에서 훨씬 부담을 덜 느끼게..
- Total
- Today
- Yesterday
- foundation models
- 스위프트
- Xcode
- unstructed task
- xcuitest
- combine
- rxswift
- swiftUI
- closure
- mlmodel
- Fastlane
- internal Combine
- asyne-let
- 프로그래머스
- 코딩테스트
- Task
- SnapshotTest
- UITest
- Swift Format
- XCTest
- SWIFT
- wwdc25
- group tasks
- ios
- 클로저
- 백준
- UIKit
- CoreData
- detached task
- ObservableObject
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |