iOS Dev/iOS

    정적 분석으로 iOS 앱 구조 파악하기

    [ 본 포스팅은 언패킹(리버스 엔지니어링)에 대한 내용으로 관련 법률에 유의하시기 바랍니다. ] iPA iOS App-Store Package 의 줄임말으로 iOS 및 ipad 어플리케이션 아카이브 파일입니다. 모든 앱은 IPA 형태로 앱스토어에 배포가 됩니다. 개발한 코드와 함께 번들, 사이닝, 리소스 파일등이 모두 포함됩니다. iPA 다운 받기 앱스토어에 올라가 있는 앱의 iPA 를 얻기 위해 ipatool 을 사용해보겠습니다. ( 다른 방법으로 3utools, Xcode 아카이브, 탈옥된 iOS 기기를 통해 얻을 수 있습니다. ) // ipatool 설치 brew tap majd/repo brew install ipatool // ipatool 로그인 ipatool auth login --email..

    8개월간 같은 iOS 앱을 리팩토링하며 배운점

    "링크모아" 는 사용자의 북마크를 쉽게 관리하고 공유할 수 있는 앱 서비스입니다. 20년 12월 기획을 시작으로 디자이너 1명, 백엔드 개발자 2명, iOS 개발자 2명이 협업하며 21년 3월에 개발을 완료했습니다. iOS 개발자와 처음으로 협업을 하며 이론적으로만 알고있던 git-flow 를 적용하고 merge 시에는 코드 리뷰를 꼭 거치도록 했습니다. 잠깐이지만 앱 스토어 생산성 부문에서 160위 내에 들었고 동아리 데모데이 대상을 받는 등, 저에게 있어 무척 뜻 깊은 프로젝트입니다. 데모데이 이후에 프로젝트가 마무리될거라고 생각했지만 같이 협업을 했던 iOS 개발자분이 한 가지 제안을 주셨습니다. "현업에서 사용하는 기술들을 적용해보고 지속적으로 같이 리팩토링 해봐요." 매번 기능 개발만 진행하고 ..

    iOS Dependency Injection 개념 파악하기

    의존성 주입이란? iOS 테스트 코드를 공부하며 상당히 많이 접했던 단어입니다. "의존성 주입" 은 무엇일까요? 이론적인 개념은 다음과 같습니다. ``` 소프트웨어 엔지니어링에서 의존성 주입(dependency injection)은 하나의 객체가 다른 객체의 의존성을 제공하는 테크닉이다. 클라이언트가 어떤 서비스를 사용할 것인지 지정하는 대신, 클라이언트에게 무슨 서비스를 사용할 것인지를 말해주는 것이다. "주입"은 의존성(서비스)을 사용하려는 객체(클라이언트)로 전달하는 것을 의미한다. ``` 출처: https://ko.wikipedia.org/wiki/%EC%9D%98%EC%A1%B4%EC%84%B1_%EC%A3%BC%EC%9E%85 대부분의 프로그램은 객체들의 조합인 Composition 으로 이루..