본문 바로가기

앱 개발

(83)
[미니 프로젝트] Binding binding = ActivityProfile3Binding.inflate(layoutInflater).apply { backButton.setOnClickListener { finish() } blogTextView.setOnClickListener { startActivity(Intent(Intent.ACTION_VIEW).apply { data = Uri.parse("https://lionbae.tistory.com") }) } setContentView(root) } ActivityProfile3Binding.inflate(layoutInflater): ActivityProfile3Binding 클래스의 인스턴스를 생성하고, 해당 인스턴스를 통해 XML 레이아웃을 인플레이트한다. layoutInf..
[미니 프로젝트] ProfileActivity class ProfileActivity3 : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_profile3) } } 위 코드는 팀 소개 앱의 액티비티 클래스인 ProfileActivity3를 정의하며, AppCompatActivity 클래스를 상속한다. AppCompatActivity는 AndroidX 라이브러리에서 제공되는 클래스이다. onCreate(savedInstanceState: Bundle?): 액티비티가 처음 생성될 때 호출된다. 액티비티 초기화 및 UI 설정이 이루어진다. super...
TIS - 안드로이드 스튜디오 사용법, 코틀린 문법 인강 듣기 - 팀 소개 프로젝트 코드의 SplashActivity와 Handler에 대하여 학습 - 코틀린 문법을 전체적으로 한번 훑었지만 계속 반복하면서 익힐 필요가 있다. - 팀 프로젝트 코드를 보면서 관련 내용을 학습하는 것이 많은 도움이 된다. - Kotlin Playground를 알게 되었는데 앞으로 코딩 연습에 잘 이용할 것 같다.
[미니 프로젝트] SplashActivity, Handler 팀 소개 앱을 만들면서 첫 화면인 SplashActivity에서 Handler를 사용하였다. 스플래시 화면은 앱이 실행될 때 가장 먼저 나타나는 화면으로서 주로 앱 초기화 작업을 수행하는 동안에 화면에 표시된다. class SplashActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_splash) // Handler를 사용하여 스플래시 화면을 3초 동안 표시한 후 MainActivity로 이동한다. postDelayed는 일정 시간 후에 지정된 작업을 실행할 수 있도록 해주는 메서드..
Chapter1 (미니 프로젝트) - 4인 팀 구성 및 팀명(Team300) 정하기 - 협업을 위한 팀 github와 소통을 위한 팀 슬랙 생성 - 3개 화면(activity_splash - main - profile)으로 된 레이아웃 결정 소규모 프로젝트이지만 안드로이드 스튜디오에 아직 익숙하지 않은 상태에서 시작한다는 것이 역시 쉽지 않았다. 그러나 팀원들의 도움으로 git 연동법 등에 대하여 알아갈 수 있었다. 프로그래밍 문법 뿐만이 아니라 개발환경에 적응하는 것이 중요하다고 생각한다.
mapIndexed (이상한 문자 만들기) mapIndexed 함수는 주어진 람다 함수를 사용하여 컬렉션의 각 요소에 대한 변환을 수행하여 새로운 컬렉션으로 반환한다. 컬렉션의 요소를 변환하거나 인덱스와 함께 특정 연산을 수행할 때 유용하다. 람다 함수의 첫 번째 인자는 현재 요소의 인덱스이고 두 번째 인자는 현재 요소의 값이다. fun main() { val numbers = listOf(1, 2, 3, 4, 5) // 각 요소를 제곱하고 인덱스를 더한 새로운 리스트 생성 val result = numbers.mapIndexed { index, value -> value * value + index } println(result) // [1, 5, 11, 19, 29] } 문자열 s는 한 개 이상의 단어로 구성되어 있고, 각..
스코프 함수 스코프 함수 (Scope Function, 영역 함수)는 특정 객체의 컨텍스트 안에서 속성 초기화, 활용 등 특정 동작을 실행하기 위한 목적만을 가진 함수이다. 스코프 함수 호출 시 람다 표현식을 형성하며, 그 안에서 개체 이름 없이 개체에 엑세스 할 수 있다. 스코프 함수에는 let, run, with, apply, also가 있다. it을 사용해 프로퍼티에 접근 최종 실행 결과 반환 fun main() { val info = Info("오소리", "tistory", 1) val scope = info.let { println("${it.name}라는 이름의 ${it.blog} 블로거") // 오소리라는 이름의 tistory 블로거 it.num = 10 it.num } println(scope) // ..
행렬의 덧셈 class Solution { fun solution(arr1: Array, arr2: Array): Array { // arr1의 행의 개수를 반환한다. val numRo = arr1.size // arr1의 첫 번째 행의 열의 개수를 반환한다. val numCo = arr1[0].size // 행의 개수가 numRo인 1차원 배열과 각 행에 대해 열의 개수가 numCo인 1차원 배열을 생성하여 2차원 배열을 생성한다. val res = Array(numRo) { IntArray(numCo) } // 바깥쪽 루프는 0부터 numRo - 1까지 반복하여 res 배열의 각 행에 접근한다. for (i in 0 until numRo) { // 안쪽 루프는 0부터 numCo - 1까지 반복하여 res 배열의 ..
Bundle Bundle은 안드로이드에서 데이터를 전달하고 수신하는 데 사용되는 컨테이너이다. 키-값 형식으로 데이터를 저장하며, 이를 통해 서로 다른 구성 요소 간에 데이터를 전송하거나 상태를 저장하는 데 사용된다. 예를 들어 Intent에 데이터를 첨부하여 액티비티 사이에 데이터를 전달하거나 onSaveInstanceState를 통해 액티비티의 상태를 저장하는 데 활용된다. 일반적으로 사용되는 메서드들은 다음과 같다. putString(String key, String value): 문자열을 Bundle에 추가 putInt(String key, int value): 정수를 Bundle에 추가 putBoolean(String key, boolean value): 불리언 값을 Bundle에 추가 putParcelab..
=, == (가운데 글자 가져오기) = (할당 연산자) =는 할당 연산자로서 변수에 값을 할당한다. 변수에 값을 대입하는 데에 사용되며, 변수의 값을 변경하거나 초기화하는 데에 활용된다. = = (등호, Equal Operator) = =는 비교 연산자로서 좌변과 우변의 값이 같은지를 확인한다. 주로 조건문에서 사용되며, 두 값이 동일한지 여부를 확인한다. fun main() { // = 연산자 사용 var a = 5 val b = 3 a = b println("a = b: $a") // a = b: 3 // == 연산자 사용 val x = 10 val y = 10 val isEqual = (x == y) println("x == y: $isEqual") // x == y: true } -----------------------------..