Apple is Apple
내일배움캠프 7기 Android TIL 16일차 (2023.08.04)
내일배움캠프 7기/TIL 2023. 8. 4. 21:10

일일 회고 벌써 금요일이다. 이번 주도 벌써 마무리 되어간다. 강의부터 시작해서 문법, 안드로이드 공부, 과제까지 뭔가 꽤 한 것 같긴하다. 최대한 기록으로 남겨보려고는 하지만 쉽지는 않은 것 같다. 주말은 다음주를 위해 리프레쉬 해야겠다. 오늘의 키워드 개인 과제 고도화 (TextInputLayout) 개인 과제를 고도화해 보았다. 아이디나 이름, 비밀번호를 입력할 때 토스트 메시지뿐만 아니라 어디가 잘못되었는지 시각적으로 보여주고 싶었다. 그래서 TextInputLayout을 도입하였다. TextInput Layout TextInputLayout은 Linear layout을 상속받고, layout안에서 TextInputEditText에 입력된 텍스트에 반응하는 레이아웃이다 TextInputEditTe..

내일배움캠프 7기 Android TIL 15일차 (2023.08.03)
내일배움캠프 7기/TIL 2023. 8. 3. 20:53

일일 회고 벌써 목요일이다. 알고리즘 풀고 과제하고 내용 정리하고 하나하나씩 하다 보면 시간이 훌쩍 지나가있다. 과제는 선택사항까지 완료하였다. 디자인만 좀 더 신경써보면 될 것 같다. 내일은 금요일이고 그 다음날은 주말이니 조금 더 힘내서 달려보자 오늘의 키워드 과제 톺아보기 lv1 로그인 화면 구성 및 관련 코드 작성 xml - EditText와 Button등의 위젯들을 통해서 로그인화면을 구성하였다. Layout은 Constraint layout으로 각 위젯 간 constraint를 설정하여 정렬하였다. code - 각 위젯들은 액티비티 내부에서 전역적으로 사용하기 위해 전역변수로 두고 지연초기화를 시켜주었다. private val editTextId by lazy { findViewById(R.i..

OOP(Object - Oriented Programming) 실시간 세션
내일배움캠프 7기 2023. 8. 3. 16:25

1회차 객체란 무엇인가? - 상태와 행동을 가지는 개체?? - chatGPT曰 ----> 어떤 속성이 존재하고 속성에 대한 행동을 하는 것! ex) 버스 상태 - 번호, 좌석 수, 색, 출발지, 도착지, 연료량 등등 정의 할 수 있는 값 행동 - 멈춘다, 이동한다, 시동켠다, 문을 연다 등등 수행할 수 있는 것 하지만.. 버스에는 광역버스, 시내버스, 고속버스 등 다양한 종류가 있고 버스마다 조금씩 상태와 행동이 다르다! 이것을 상속없이 구현하려면... 죄다 하나씩 구현해야함 class CityBus { val 출발 val 도착 .... } class WideBus { val 출발 val 도착 .... } class ExpressBus { val 출발 val 도착 .... } 종류는 너무많고 하나씩 다하..

[!] ClassCastException
Android/Trouble Shooting 2023. 8. 3. 15:06

어제 과제를 하다가 뻘짓을 한게 떠올라 글을 써본다. 구현했으니 이제 확인해봐야지~ 하고 실행을 시키는데 앱이 계속 꺼진다.. 분명? 틀린 것이 없다고 생각했는데 자꾸 꺼졌다 (흔한 맞왜틀) 로그캣을 살펴봤다... java.lang.ClassCastException: androidx.constraintlayout.widget.ConstraintLayout cannot be cast to android.widget.Button 위 에러가 발생했다. constraint layout은 Button 타입으로 캐스팅 될 수 없다는 의미인데.. 레이아웃이 위젯의 상위타입이 아니니...당연한 것이였다. 처음엔 코드를 다시 살펴봤는데 코드는 문제가 없어보였다. 그래서 xml로 가서 일일히 살펴보았다.... 원인은 여기..

내일배움캠프 7기 Android TIL 14일차 (2023.08.02)
내일배움캠프 7기/TIL 2023. 8. 2. 20:57

일일 회고 Lifecycle 관련 글을 써보며 다시 한번 더 생명주기에 중요성에 대해 알 수 있었다. 그리고 과제를 시작하였다. 선택과제 1까지 구현하였다. 이제 선택과제2도 구현해봐야겠다. 이건 쓸만한 이미지를 구해봐야겠다. 그리고 과제 내용을 다하면, 디자인도 조금 신경써보자....미적감각이 구려서 힘들겠지만.. 오늘의 키워드 액티비티 생명주기 (Acitivity lifecycle) 액티비티 생명주기(Activity Lifecycle) 포스트로 대체 https://aaapple.tistory.com/31 https://aaapple.tistory.com/32

article thumbnail
[Android] Activity Lifecycle - 2
Android 2023. 8. 2. 15:57

지난 글에 이어서 이번에는 직접 생명주기 메소드를 사용하여 안드로이드 스튜디오에서 실행해보며 어떤 순서로 동작하는 지 알아보자 먼저 생명주기 호출 함수를 override하여 내부에서 로그를 찍어보며 확인하도록 로그를 찍어보았다. MainActivity.kt 더보기 package com.example.myapplication import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.widget.Button class MainActivity : AppCompatActivity() { override fun onCr..

article thumbnail
[Android] Activity Lifecycle
Android 2023. 8. 2. 12:20

개요 안드로이드 개발에서 액티비티 생명주기는 앱의 실행과 종료 과정을 이해하는 데 핵심적인 개념이다. 액티비티는 4대 컴포넌트 중 하나이며 사용자와의 상호작용(UI, UX)에 밀접한 관련이 되어있다. 따라서 사용자 경험에 직접적인 영향을 미치는 중요한 역할을 수행한다. Youtube앱을 봐보자. 앱을 들어가면 처음 로고가 보이는 화면도 액티비티이고 로고가 내려가고 영상 목록이 보이는 화면도 액티비티이다. (하단 탭에서 메뉴를 클릭하면 화면이 바뀌는데 이것은 프래그먼트로 구성된 것 일 수도 있다.) 이렇게 안드로이드 앱은 많은 액티비티로 구성되어 있다. 이런 액티비티의 생명주기를 갖고 이는 다섯 가지의 주요 상태로 구성된다. 처음 앱이 실행되면 액티비티가 생성되고 시작된다. 이후 액티비티는 사용자와 상호작..

article thumbnail
내일배움캠프 7기 Android TIL 13일차 (2023.08.01)
내일배움캠프 7기/TIL 2023. 8. 1. 20:18

일일 회고 안드로이드 UI 및 4대 컴포넌트 중 하나인 액티비티에 대하여 학습하였다. 아직까진 큰 어려움은 없는 것 같다. 과제를 시작하고, 시행착오가 생기면 글로 남겨보자.. 오늘의 키워드 안드로이드 UI 액티비티 & 인텐트 뷰(view) 안드로이드 앱의 UI를 구성하는 기본 단위 - 위젯, 레이아웃이 있다. 안드로이드 UI를 구성할 때 중요한 것이 있는데, 다양한 기기 해상도에 맞게끔 UI을 만들어야 한다는 것이다. 이에 관해서는 추가 글을 써보려고 한다. https://aaapple.tistory.com/29 위젯(widget) View의 서브 클래스로서, 앱 화면을 구성하는 시각적인 모양을 지닌 UI요소이다. 안드로이드 스튜디오를 살펴보면 굉장히 다양한 위젯이 있는 것을 볼 수 있다. 앱을 만들 ..

article thumbnail
[Android UI] PX, DPI, DP (feat. 다양한 기기와 해상도)
Android 2023. 8. 1. 15:20

안드로이드 기기의 다양성은 우리에게 다양한 기능과 편의성을 제공해준다, 동시에 개발자들에게는 고민을 안겨주기도 한다. 그 중 하나가 바로 '해상도'이다. 안드로이드 기기들은 Android moblie, Android TV, Android Auto 등 다양한 플랫폼에 사용되고 그 안에서도 기기에 따라 굉장히 다양한 해상도를 갖고 있으며, 이는 개발자들이 앱을 디자인하고 개발하는데 영향을 미치고 있다. 이 글에서는 안드로이드 기기별 해상도 차이에 발생할 수 있는 문제와 이를 해결하는 방법에 대해 살펴보고자 한다. 먼저, 해상도를 알아보기전에 알아야 하는 개념이 있다 바로 px, dpi, dp이다. 이들은 해상도를 표현하기 위한 단위로 안드로이드에서는 다양한 단위를 지원하기 때문에 알아 둘 필요가 있다. PX..

article thumbnail
내일배움캠프 7기 Android TIL 12일차 (2023.07.31)
내일배움캠프 7기/TIL 2023. 7. 31. 21:00

일일 회고 주특기 입문 주차가 시작되었다. 처음은 가볍게 안드로이드 입문강의를 들었다. 다 듣고 과제를 시작해봐야겠다. 월요일이니 한 주를 즐겁게 시작해보자. 오늘의 키워드 안드로이드 안드로이드 스튜디오 안드로이드 개요 - 휴대전화를 비롯한 휴대용 장치를 위한 운영체제와 미들웨어, 사용자 인터페이스, 표준 응용 프로그램을 포함하고 있는 모바일 운영체제이자 모바일 플랫폼 버전 - 안드로이드는 2008년 1.0버전 출시 이후 지금까지도 꾸준히 버전업데이트가 되고있음. 안드로이드 앱개발을 할 때는 구동할 수 있는 최소 버전과 타겟 버전이 있어 버전을 지정해주는게 중요함 안드로이드 스튜디오 구조 - 빌드 설정 폴더(Gradle), 앱 매니페스트, Kotlin(java) 코드 폴더 Gradle - 안드로이드 앱의..