본문 바로가기

분류 전체보기

(85)
readline()!!.toInt() 문법 강의를 듣고 과제를 수행하다 readline()!!.toInt() 코드에 대하여 알아보았다. 콘솔에서 한 줄을 읽어 정수로 변환해 주는 코드이다. readline() - 사용자가 입력한 값을 읽어온다. !! - 널 아님 단언(Non-null assertion) 연산자로서 해당 표현식이 절대로 null이 아니라고 컴파일러에게 알려준다. readline()이 null을 반환하면 NullPointerException이 발생한다. toInt() - 사용자가 입력한 문자열을 Int로 변환하여 반환한다.
웹뷰, 웹앱 웹뷰는 네이티브 애플리케이션 안에서 웹 콘텐츠를 표시하기 위한 컴포넌트이다. 웹뷰를 사용하면 네이티브 앱과 웹 기술을 조합하여 하이브리드 앱을 만들 수 있다. - 네이티브 앱 안에서 실행되며 네이티브 코드와 상호 작용이 가능하다. - HTML, CSS, JavaScript 등의 웹 기술을 사용하여 동적인 콘텐츠를 표시한다. 웹앱은 모바일 기기 등에서 실행되는 애플리케이션으로서 네이티브 API에 직접 접근하지 않고 웹 기술을 기반으로 동작한다. 사용자는 모바일 브라우저를 통해 해당 웹앱에 접근하여 사용할 수 있다. - 모바일 기기나 데스크톱 브라우저에서 실행되며 플랫폼 독립적이다. - 모바일 기기의 브라우저를 통해 접근하므로 설치나 업데이트가 필..
[미니 프로젝트] 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 배열의 ..