안드로이드
-
[Kotlin 문법 강의] 5주차: Kotlin 심화 (스레드(Thread), 코루틴(Coroutine))안드로이드 2024. 3. 13. 14:49
✏️ TIL(Today I Learned) 스레도와 코루틴에 대해 배우면서, TextRpgGame에 스레드를 사용하는 기능을 추가했다. main()에서 경마를 선택한 뒤, 아래 코드로 말의 번호를 문자열로 입력받으면 "selectHorse" -> { println("말의 번호를 입력해주세요(1번 혹은 2번)") while(true) { try { var originName = readLine() if(originName?.equals("1번") == true || originName?.equals("2번") == true) { return originName } else { println("말의 이름을 다시 입력해주세요") } } catch(e:Exception) { println("말의 이름을 다시 입..
-
[Kotlin 문법 강의] 5주차: Kotlin 심화 (Scope Functions/ 확장 함수)안드로이드 2024. 3. 12. 15:20
✏️ TIL(Today I Learned) Kotlin 심화 강의를 들었다. Scope Functions를 배웠는데, 아직 적용해본 코드가 별로 없어서인지 이해가 잘 되지 않았다. 조금 더 공부해보고 따로 정리해야겠다. 또한 확장 함수에 대해서도 배울 때, private 혹은 protected 멤버에 접근하려면 클래스 내부의 멤버함수 형태가 적합하다는 말에 적확히 멤버 함수가 무엇인지 몰라 찾아봤다. 멤버 함수는 해당 클래스에 속하는 함수를 의미한다. 코틀린에서 클래스 내부에 정의된 함수들은 멤버 함수로 간주되며, 클래스의 속성(멤버 변수)과 동일한 범위와 접근 권한을 가지게 된다. 클래스 내부의 모든 private 및 protected 멤버에 직접 접근할 수 있다는 것이다. 📝 공부한 Kotlin 요약..
-
[Android] 간단한 계산기 피드백 적용안드로이드 2024. 3. 11. 17:05
✏️ TIL(Today I Learned) 추상화를 사용하였으니, num1, num2 또한 추상화하면 좋을 것 같다고 피드백을 받아서 적용해봤다. 우선 아래와 같이 AbstractOperation부터 수정을 하였고 // 수정 전 abstract class AbstractOperation { abstract fun operate(num1: Double, num2: Double): Double } // 수정 후 abstract class AbstractOperation { abstract val num1: Double abstract val num2: Double abstract fun operate(num1: Double, num2: Double): Double } 상속을 받은 클래스들을 수정했다. // ..
-
[Android] 'com.example'은(는) 제한되어 있으므로 다른 패키지 이름을 사용해야 합니다. (프로젝트 패키지 명 변경 방법)안드로이드 2024. 3. 10. 17:45
📝 프로젝트 패키지 명 변경 방법 Google Play Console에 비공개 테스트 버전을 게시하기 위해서 aab 파일을 업로드하려고하는데, 'com.example'은(는) 제한되어 있으므로 다른 패키지 이름을 사용해야 합니다. 라는 문구가 빨간색 글씨로 나타나면서 업로드가 되지 않았다. 이를 해결하기 위해 안드로이드 스튜디오에서 패키지 명을 변경해야한다. 변경하기 위해서는 우선 우측상단 톱니바퀴 아이콘을 클릭해 'Compact Middle Packages'을 해제한다. 선택되어있을 때 해제했을 때 해제가 잘 되었다면 example 패키지에서 우클릭을 한 뒤 Refactor → Rename을 클릭한다. 경고창이 뜬다면 'In Whole Project'를 클릭하고 원하는 변경명을 입력하고 refactor..
-
[Android] 플레이스토어 배포안드로이드 2024. 3. 8. 22:17
✏️ TIL(Today I Learned) 처음으로 플레이스토어에 어플리케이션을 올리게 됐다. 한 블로거 분이 올리는 과정을 엄청 자세하게 설명해주신 글이 있어서 보고 따라하였다. 개발자 계정 생성부터 비공개테스트를 만드는 법까지 많은 것을 배웠다. 📝 플레이스토어에 등록하기까지의 과정 Play Console 개발자 계정 생성 우선 개발자 계정을 만들어서 25달러를 결제해야지 플레이스토어에 어플리케이션을 출시할 수 있다. 참고한 글 - 링크 Google Play Console에서 앱 만들기 & 앱 설정개인정보 처리방침은 Url만을 입력해야해서, 따로 작성한 파일을 구글드라이브에 업로드하여 그 링크를 등록하였다. 기본 스토어 등록정보 설정업로드하는 부분아래에 적힌 사이즈를 꼭 맞춰야한다. 그러지 않으면 업..
-
[Android] 간단한 계산기 (추상화)안드로이드 2024. 3. 7. 16:56
✏️ TIL(Today I Learned) AddOperation(더하기), SubtractOperation(빼기), MultiplyOperation(곱하기), DivideOperation(나누기) 연산 클래스들을 AbstractOperation라는 클래스명으로 만들어 사용하여 추상화했다. Calculator() 클래스를 만들어서, 다른 파일에 정의된 AbstractOperation 클래스를 활용하여 주어진 연산을 수행하게했다. Calculator 클래스가 AbstractOperation 클래스의 인스턴스를 받아들여서 해당 연산을 수행하는 방식으로 동작한다. abstract class AbstractOperation { abstract fun operate(operand1: Double, operand2..
-
[Kotlin 문법 강의] 4주차: 객체지향 프로그래밍의 심화안드로이드 2024. 3. 6. 20:13
✏️ TIL(Today I Learned) 원래 이름, 나이 등등을 입력받을 때 readLine()!!을 사용하여 한번만 입력받았었는데, inputMyInfo() 함수를 만들어서 조건에 맞을 때까지 입력을 반복하게 바꾸었다. 매개변수로 받은 type의 값에 따라 다른 동작을 수행하기 위해 when 표현식을 사용했다. Any?는 반환 타입으로, 어떤 타입의 값을 반환할지 확정되지 않은 경우에 사용한다. 또한 반복문안에서 입력 받는 부분을 try-catch 구문으로 감싸서 예외 처리를 하였다. fun inputMyInfo(type:String): Any? { return when(type) { "name" -> { println("이름을 입력해주세요") while(true) { try { var origin..
-
[Kotlin 문법 강의] 3주차: Kotlin 객체 지향 프로그래밍의 기초안드로이드 2024. 3. 6. 16:30
✏️ TIL(Today I Learned) 객체지양 프로그래밍에 대해 이해할 수 있도록 여러 개념들에 대해 가볍게 배웠다. 매소드와 클래스의 설계와 함께 생성자와 객체들을 활용하는 법을 알게 되었다. 클래스 상속과 오버라이딩 그리고 인터페이스와 구현에 관한 기초를 쌓았다. textRpg게임을 이어서 만들면서 Character 클래스를 객체화해서 여러가지 캐릭터를 만들었다. 인터페이스 또한 구현해보았는데 아래 전체 코드에서 배운 부분을 설명해두었다. 📝 공부한 Kotlin 요약 정리 메소드 설계) 특정한 로직을 가지는 소스코드에 별명(이름)을 붙이면, 그것이 메소드이다. 로직을 추상화해놓고 상황에 맞게 실행할 수 있다. 코드의 재사용성을 높일 수 있다. // 메소드 구조 fun 메소드이름(변수명:자료형, ..