[iOS] Swift SDK for android 번역문
·
iOS
Android용 Swift SDK 발표Joannis Orlandos2025년 10월 24일Swift는 지난 10년 동안 크게 성숙해지며 클라우드 서비스에서 Windows 애플리케이션, 브라우저 앱, 마이크로컨트롤러에 이르기까지 영역을 확장했습니다. Swift는 다양한 종류의 앱과 서비스를 구동하며, 뛰어난 상호 운용성 덕분에 플랫폼 간 코드 공유가 가능합니다.Android 워크그룹은 누구나 참여할 수 있는 오픈 그룹으로, Swift를 Android로 확장하는 것을 목표로 합니다. 오늘 우리는 Android용 Swift SDK의 야간(preview) 릴리스를 발표하게 되어 기쁩니다.이번 이정표는 수개월 간의 노력과 수년 간 커뮤니티의 풀뿌리 활동 위에 쌓아 올린 결과입니다. 이 SDK를 통해 개발자들은 S..
BOJ 13460 구슬 탈출 2 swift
·
알고리즘
문제 링크 : https://www.acmicpc.net/problem/13460 문제 해설빨간 구슬을 10번 이하로 기울여 구멍으로 빼내야하는 문제입니다.파란 구슬이 구멍에 빠지면 실패입니다.한 번 기울이면 구슬은 해당 방향으로 끝까지 굴러갑니다. (벽 앞에서 멈추거나, 구멍에서 빠짐)최소 횟수를 구하는 BFS 문제입니다. 가장 기초적인 BFS는 움직여야하는 좌표가 1개였기 때문에 visited 배열이 2차원으로 선언해도 충분했었지만, 해당 문제는 좌표 2개를 움직이고 상태를 저장해야 하기 때문에 4차원 배열이 필요합니다.(빨강 xy, 파랑 xy)그리고 다른 BFS와 다르게 한쪽 방향으로 끝까지 움직여야 합니다. 그래서 움직임을 처리하는 함수를 선언해주었습니다.구슬끼리는 같은 좌표에 존재할 수 없기 ..
[swift] FirebaseAuth/Auth.swift:168: Fatal error: Unexpectedly found nil while unwrapping an Optional value(Tuist)
·
swift
🚨 문제 상황Tuist를 사용하여 iOS 프로젝트를 구성하고 Firebase Auth를 연동할 때, 다음과 같은 런타임 크래시가 발생했습니다.FirebaseAuth/Auth.swift:168: Fatal error: Unexpectedly found nil while unwrapping an Optional value또는void * _Nullable NSMapGet(NSMapTable * _Nonnull, const void * _Nullable): map table argument is NULL이 문제는 Firebase가 정상적으로 초기화되었음에도 불구하고, Auth 인스턴스에 접근할 때 발생하는 오류입니다.🔍 문제 분석시도했던 해결 방법들Firebase 초기화 시점 조정 // AppDelegate..
[swift] Tuist 겉핥기
·
swift
Tuist란?Tuist는 Xcode 프로젝트를 코드로 선언하고 자동 생성·관리하는 CLI 도구입니다.대규모 iOS/macOS 프로젝트에서 수작업으로 변경되는 Xcode 설정을 코드로 표준화하여 협업 충돌과 설정 드리프트를 줄이고, 모듈화·의존성 그래프 관리·빌드 파이프라인을 체계화합니다.+) XcodeGen과 다른점: Tuist는 swift로 프로젝트 선언이 가능하지만, XcodeGen은 yaml과 json 기반으로 프로젝트를 선언합니다.Tuist를 사용하는 이유(러닝커브만 보면 소규모 프로젝트에서 사용할 이유가 없어보임)Git을 사용하면서 Xcode 프로젝트 설정(.xcodeproj) 파일의 충돌은 불가피합니다. 이를 개선해줄 수 있는 도구가 바로 Tuist입니다.Tuist를 적용시켜 모듈화를 했을 때..
2025 토스 Next 신입 iOS 개발자 지원 후기
·
회고
2025 토스 Next 신입 개발자(3년차 이하) 공고가 떠서 후다닥 지원을 했습니다. 채용 프로세스는 다음과 같습니다. 디버깅 과제 > 구현 과제 >직무 인터뷰 > 문화적합성 인터뷰 > 레퍼런스 체크 및 처우 협의 > 입사일 조율 및 입사1차 디버깅 과제, 2차 구현 과제로 구성되어 있고, 디버깅 과제는 서류만 넣으면 전부 진행하는 것 같습니다. 결과아쉽(?)지만 탈락하였습니다. 디버깅 과제에 대해 자세히 말할 순 없지만 90%는 해결했습니다. 하지만 해결한 코드가 엉성했을 것으로 추정되며, 일단 전부 해결하지 못한 것이 가장 큰 이유가 아닐까 싶습니다. 일반 구현과제나 코딩테스트가 아닌 새로운 유형의 과제를 경험할 수 있는 좋은 기회였습니다.
네이버 부스트캠프 웹·모바일 10기 베이직&챌린지 후기(+멤버십 합격)
·
회고
들어가기에 앞서 작성자는 작문능력이 그렇게 뛰어나지 않음을 알려드립니다.회고 전 이모저모더보기네이버 부스트캠프에 대한 이야기를 하기 전에, 부트캠프에 대한 저의 생각을 말하고자 합니다.컴퓨터공학과를 전공한 저로서는 부트캠프는 필요치 않다고 생각하여 곧바로 취업 준비를 시작했습니다. 하지만 취준 기간이 길어지고 취업 시장 한파(매년 그랬음)로 인해 '이 기간동안 기록에 남는 무언가라도 해야겠다!'라는 마음으로 다른 기업에서 진행하는 국비지원 부트캠프에 지원해서 참여를 했습니다. 하지만 제 기대가 컸던 탓인지... 국비지원 부트캠프의 교육 커리큘럼은 모두가 수료 가능하게 비전공자 기준으로 계획되어 있었고, 고등학교 수업마냥 매시간 강의를 진행했습니다. 제가 참여했던 목적은 개발자를 준비하는 참여자들끼리의 지..
BOJ 2142 정돈된 배열 swift
·
알고리즘
문제 링크 : https://www.acmicpc.net/problem/2142 문제 해설처음 문제를 풀 땐 제한조건을 보지 않고 브루트포스로 작성을 했다가 시간초과를 맞았습니다.시간초과 문제를 해결하기 위해선 코드를 최적화할 필요가 있었습니다.해당 문제는 이미 정돈된 배열을 사용하는 것이기에 인접 배열이 조건을 충족하는지만 확인하면 됐습니다.정돈 조건 : A[i][j] + A[k][l] 코드더보기import Foundationfinal class FileIO { private let buffer:[UInt8] private var index: Int = 0 init(fileHandle: FileHandle = FileHandle.standardInput) { buffer..
BOJ 1222 홍준 프로그래밍 대회 swift
·
알고리즘
문제 링크 : https://www.acmicpc.net/problem/1222 문제 해설이 문제는 에라토스테네스의 체 방식을 활용한 최적화 문제입니다.팀원 수를 T라고 하면, 각 학교의 학생 수가 T로 나누어떨어져야 합니다.즉, T는 참가하는 학교들의 학생 수의 공약수여야 합니다.본선 참가자 수 = T * (참가 학교 수)를 최대화해야 합니다.최소 2개 학교가 참가해야 하므로, 각 팀원 수에 대해 참가 가능한 학교가 2개 이상인지 확인합니다.코드더보기import Foundationfinal class FileIO { private let buffer:[UInt8] private var index: Int = 0 init(fileHandle: FileHandle = FileHandle.s..
BOJ 3190 뱀 swift
·
알고리즘
문제 링크 : https://www.acmicpc.net/problem/3190 문제 해설정말 단순하게 구현문제입니다. 다른 언어면 아마 Deque를 구현해서 사용했어야 문제를 풀 수 있을겁니다.뱀 문제를 풀 때 주의해야할 점은 뱀의 시작위치는 (1, 1)이라는 것입니다.일반 배열처럼 (0, 0)에서 시작하면 틀리기 때문에 주의하시길 바랍니다. 코드더보기import Foundationlet n = Int(readLine()!)!let k = Int(readLine()!)!var apples = [(Int, Int)]()for _ in 0..
BOJ 2449 전구 swift
·
알고리즘
문제 링크 : https://www.acmicpc.net/problem/2449 문제 해설N개의 전구가 일렬로 배치되어 있고, 각 전구는 1부터 K까지의 색으로 표현됩니다. 한 번에 연속된 같은 색의 전구 그룹을 선택해 다른 색으로 변경할 수 있을 때, 모든 전구를 같은 색으로 만드는 최소 변경 횟수를 구하는 문제입니다.연속된 같은 색 전구를 하나의 그룹으로 압축합니다.dp[i][j]를 i번째 그룹부터 j번째 그룹까지 같은 색으로 만드는 최소 횟수로 정의합니다.점화식 : dp[i][j] = min(dp[i][j], dp[i][k] + dp[k + 1][j] + (colors[i] != colors[k + 1] ? 1 : 0) 코드더보기import Foundationlet input = readLine()..