10월, 2023의 게시물 표시

Android How to debug the app

이미지
사용 언어: Kotlin 1.9.10 사용 버전: Android Studio Giraffe 2022.3.1 Patch 2 안드로이드 How to debug the app을 알아보겠습니다. 앱을 개발하면서 디버그를 해야 할 때가 있습니다. 오늘은 그 과정을 알아봅시다. 출처: https://developer.android.com/codelabs/basic-android-kotlin-compose-intro-debugger#0 Debugger(디버거)는 안드로이드 스튜디오에서 제공해 주는 기능 중 하나입니다. 실행 중인 앱에 디버거를 부착하는 방법과 처음부터 디버거를 실행하는 방법이 있습니다. 실행 중인 앱에 붙이려면 Attach Debugger to Android Process 버튼을 눌러줍니다. 처음부터 시작하려면 Debug 'app'을 눌러줍니다. 자, 실행 방법은 이제 둘러보았고 Breakpoint(중단점)를 설정하는 방법을 알아봅니다. 줄 번호와 코드 사이에 긴 빈 공간이 있습니다. Gutter(빗물받이, 홈통)이라 부르는 곳인데 어찌 생긴 게 처마 밑에 달린 것과 닮았네요. 저기 사이를 누르면 빨간 동그라미가 생깁니다. 저기가 Breakpoint입니다. 어딘지 모르겠다면 제 화면의 빨간 동그라미가 생기는 부분을 눌러보세요. Debugger를 실행하면 빨간 동그라미 부분에서 프로그램이 멈춥니다. Debug 탭에 들어가면 3분할 화면

iOS Using CocoaPods and SPM together

이미지
사용 버전: Xcode15.0.1 ​ iOS Using CocoaPods and SPM(Swift Package Manager) together를 알아보겠습니다. CocoaPods과 SPM(Swift Package Manager)을 같이 사용해 봅시다. CocoaPods는 외부 라이브러리를 Xcode 프로젝트에 넣을 수 있는 thrid party(서드 파티) 프로그램입니다. 그리고 SPM(Swift Package Manager)은 동일한 기능을 Apple에서 제공하는 first party(퍼스트 파티) 프로그램입니다. ​ 이 두 개를 어떻게 동시에 사용할 수 있을까요? ​ 제 경우는 먼저 CocoaPods를 적용한 상태입니다. 보이시나요? CocoaPods를 사용하면 원래 Xcode 프로젝트인 xcodeproj와 다른 CocoaPods 프로젝트인 xcworkspace가 생성됩니다. 그래서 실제 작업은 오른쪽 xcworkspace에서 작업을 하게 됩니다. 그런데 말입니다. 저는 여기에 SPM을 사용하고 싶은데 어떻게 해야 할까요? 먼저 왼쪽 Xcode 프로젝트 xcodeproj로 들어갑니다. ​ 이렇게 프로젝트가 열립니다. File - Add Package Dependencies...로 갑니다. 각 라이브러리에서 SPM을 사용하려면 이렇게 하세요라고 설명이 된 것들이 있습니다. 저는 Lottie를 사용해 볼 거라서요. 아래 주소를 넣어줍니다. 그러면, 짜잔. lottie가 검색되었네요. Add to Project에는 CocoaPods가 아닌 원래 Xcode 프로젝트가 잘 나타나있는지 확인합니다. 오른쪽 아래 Add Package를 눌러줍니다.

Android Kotlin Class relationship and visibility modifiers

이미지
사용 버전: Kotlin 1.9.10 안드로이드 Kotlin Class relationship and visibility modifiers를 알아보겠습니다. 이번 시간에는 class(클래스) 간의 관계와 접근 허용을 알아봅니다. 출처: https://developer.android.com/codelabs/basic-android-kotlin-compose-classes-and-objects#0 class에는 inheritance(상속)라는 것이 존재합니다. Superclass(슈퍼클래스) 또는 parent(부모)의 기능을 Subclass(서브 클래스) 또는 child(자식)이 가져와서 사용할 수 있게 해줍니다. 그림은 아래와 같습니다. Superclass를 만들기 위해서는 open이라는 키워드가 필요합니다. 나머지는 일반 class 생성하는 방법과 동일합니다. 상속받을 subclass는 아래와 같이 사용합니다. SmartPhone에 있는 parameter에는 val이나 var 따위를 붙이지 않았습니다. 그 의미는 class 내부에 property로 사용하지 않겠다는 뜻입니다. 그렇지만, 단순히 superclass에 property로 넘겨줄 수 있습니다. superclass를 다음과 같이 변경했습니다. main에서 smartPhone.turnOn()을 실행하면 SmartPhone class에 따로 turnOn() method(메서드)를 정의하지 않았지만 실행되는 것을 볼 수 있습니다. 그리고 그 결과는 supercla

Android Kotlin OOP and class

이미지
사용 언어: Kotlin 1.9.10 안드로이드 Kotlin OOP(Object-Oriented-Programming) and class를 알아보겠습니다. 출처: https://developer.android.com/codelabs/basic-android-kotlin-compose-classes-and-objects#0 OOP는 4가지 주요 개념을 가지고 있습니다. • Encapsulation (캡슐화) • Abstraction (추상화) • Inheritance (상속) • Polymorphism (다형성) 하나하나 봅시다. ​ Encapsulation (캡슐화) 클래스 안에서 연관된 메서드와 속성들을 묶습니다. 예를 들면, 휴대폰이 있습니다. 휴대폰은 카메라, 화면, 메모리 카드, 여러 하드웨어와 소프트웨어로 캡슐화되어 있습니다. 당신은 어떻게 연결되어 있는지 걱정할 필요가 없습니다. Abstraction (추상화) 캡슐화의 확장입니다. 중요한 것은 최대한 내부의 로직을 숨기는 것입니다. 예를 들면, 당신의 휴대폰으로 사진을 찍을 때, 카메라 앱을 엽니다. 그리고 찍고 싶은 곳으로 초점을 맞춥니다. 촬영 버튼을 눌러 사진을 촬영합니다. 당신은 카메라 앱이 어떻게 만들어졌는지, 어떻게 카메라 하드웨어가 작동하는지 알 필요가 없습니다. 요약하자면, 카메라 앱의 내부와 어떻게 촬영을 하는지 등이 추상화되어 있어 하고 싶은 작업을 당신이 할 수 있게 해줍니다. Inheritance (상속) 부모 자식 관계를 맺어 부모