안드로이드 스튜디오 11

[안드로이드 스튜디오] 프로필 사진 등록 기능

안드로이드 스튜디오에서 이미지를 가져오는 코딩에 대해 설명하겠습니다. 여러가지 공식문서를 참고하였습니다. 이미지를 가져오기전, 안드로이드 스튜디오에서는 어떻게 이미지를 저장하고 가져오는지에 대해서 간략하게 설명하겠습니다. 시작전 개념참고) URI 더보기 공식문서:Uri | Android Developers Uri는 추상적개념입니다. 저장된 데이터에서 //를 사용해여 위치를 지정하여 가져오는 겁니다. 예를 들어, 갤러리에서 이미지를 가져온 경우, 해당 이미지의 URI는 "content://media/external/images/media/1234"와 같은 형식일 수 있습니다. 안드로이드에서 이미지를 가져오는 과정에서 URI를 사용하는 이유는 안드로이드의 보안 및 데이터 관리를 위해서입니다. 갤러리에서 이미..

안드로이드 스튜디오 Activity Lifecycle(생애주기)

Activity Lifecycle(생애주기) 오늘 배워볼 것은 Activity Lifecycle(생애주기)입니다. 생애주기를 이해하면 어떤 점이 좋을까요? 앱의 동작 이해, 그러니까 액티비티 생애주기를 이해하면 어떤 시점에 어떤 메소드가 호출되는지를 알 수 있습니다. 이를 통해 앱의 동작을 더 잘 이해하고, 필요에 따라 알맞은 시점에 적절한 작업을 수행할 수 있습니다. 안드로이드 앱을 더 효율적으로 개발하고 유지보수할 수 있으며, 액티비티가 일시 중지될 때 사용자 작업을 저장하고, 다시 시작될 때 복원하여 사용자가 이전 상태에서 계속 작업할 수 있도록 지정할 수 있습니다. 안드로이드 스튜디오를 보다 잘 활용할 수 있게 됩니다. Activity Activity Lifecycle을 설명하기 앞서, 우선 Ac..

안드로이드 스튜디오 Intent(데이터 전송/액티비티 실행)

Intent (비동기식 메시지 객체) 저는 보통 이 Intent기능을 버튼을 눌러 다른 액티비티로 넘어갈때 가장 많이 사용합니다. Intent를 통해 A activity에 있는 데이터를 B Activity에 전송시킬때도 사용하기도 합니다. 오늘은 이 두가지 유형을 설명해보려고 합니다. 명시적 인텐트 명시적 인텐트는 앱의 특정 구성요소를 실행할때 사용되는 기능입니다. 보통은 다른 액티비티로 넘어갈 때 자주 쓰입니다. 명시적 인텐트를 사용하려면 Intent객체의 구성요소의 이름을 정의해야합니다. val downloadIntent = Intent(this, DownloadService::class.java).apply { data = Uri.parse(fileUrl) //인텐트 정의 이후 이동할 객체요소 지정..

앱 기획안 작성 피그마 (피그마 기초 + 개인기록용 앱기획안)

오늘은 앱 기획안을 작성했습니다. 보통 앱 기획안을 작성을 어떤걸로 하는지 검색을 했는데, 윈도우 빙에서는 카카오 오븐을 이용한다고 나와있었습니다. 하지만 막상 사용하니까 조금 이상해서, 바로 내일배움캠프 튜터님께 여쭤봐서 프로그램을 알아냈습니다. 피그마를 이용한다는 답변을 얻어 저는 바로 피그마에 들어가서 프로그램을 사용했습니다. 생긴것부터 포토샵과 완전히 똑같이 생겼고, 사용하는데 어려움 없었습니다. 상단 하얀 동그라미 안에 있는 격자 버튼 누르면 우측에 있는 화면이 아래처럼 바뀝니다. 그러면 phone 목차 아래에 있는 글자를 더블 클릭하면 위에처럼 프레임 새로 나와요. 상단에 하얀 동그라미 표시한곳에서 바탕화면 생성하고, 위에 도형과 텍스트 기능으로 뚜까뚜까하면 앱 스토리보드는 금방 만들어요. 그..

안드로이드 스튜디오 Fragment(프래그먼트)

Fragment, 한국어로 하면 조각 / 단편이라는 의미를 가지고 있습니다. 프래그먼트의 기능이 무엇이길래 이런 이름이 붙었을까요? 프래그먼트는 액티비티(activity)으로만 담을 수 없는 다양한 레이아웃들을 포함시킬때 사용되는 기능입니다. 한 Activity안에 넣을 수 있는 레이아웃에는 한계가 있습니다. 다음 페이지로 넘기지 않고, 같은 activity내에서 다양한 페이지들을 넣을 수 있는 기능입니다. 비유하자면 책 한권이 앱이라면, 그것을 묶어놓은 챕터는 Activity, 챕터 안에 들어가있는 페이지들을 Fragment라고 할 수 있습니다. Fragment 예시 영상입니다. 만약 Activity로 위처럼 기믹을 작동시킨다면 최소한 5개 정도가 필요하지만, 위 영상은 Activity 하나와 Frag..

안드로이드 스튜디오 by lazy 코딩 (초기화버튼 만들기)

by lazy 코딩은 도대체 무엇인지에 대해 탐구하다가 코딩을 분해해서 사용해보았습니다. 그렇게 탄생한 초기화 버튼 샘플 프로젝트입니다. 우선 왜 다시 처음으로 돌아가는 초기화 버튼에 by lazy 코딩이 쓰일까? 이것이 제 첫 질문이었습니다. Lazy by 코딩은 Kotlin(Android)에서 사용되는 코드로, Android 앱 개발에 자주 사용되는 코드 패턴 중 하나인 "Lazy Initialization(지연 초기화)" 입니다. 한마디로 변수죠. 일단 저희가 생각하는 초기화와 이 코딩에서 생각하는 초기화는 완전히 틀립니다. 제가 이해한 것이 맞다면 코딩에서 초기화 명령어를 넣으면 말그대로 전체 화면이 비어져 리셋되는 것입니다. 하지만 제가 원하는 것은 특정 객체의 데이터를 초기화시키는 것이고요. ..

안드로이드 스튜디오 로또앱

어찌저찌해서 로또앱을 만들었습니다. 코딩을 하는 부분에서 이상은 없었습니다만, 앱을 실행할때 계속 안되서 윗부분을 챗 GPT를 이용하여 수정했습니다. class MainActivity : AppCompatActivity() { private val clearButton by lazy { findViewById(R.id.btn_clear) } private val addButton by lazy { findViewById(R.id.btn_add) } private val runButton by lazy { findViewById(R.id.btn_run) } private val numPick by lazy { findViewById(R.id.np_num) } private val numTextViewLis..

안드로이드 스튜디오 도형 만들기

오늘은 안드로이드 스튜디오로 도형을 만드는 방법에 대해 작성해보겠습니다. 우선 안드로이드 스튜디오를 열어주시고 Drawable 폴더를 우클릭 하고 새파일을 클릭해주세요. 여기에서 만들어낼 도형의 이름을 정해주세요. 사각형이면 Rectangle, 원이면 Circle 또는 Oval로 정해주세요. 어떤 이름이든 상관없지만 반드시 뒤에 .xml 이 붙어줘야합니다. 자 그러면 생성된 파일을 더블클릭하셔서 코딩을 넣어주시면 됩니다. width가 가로길이, height가 세로 길이입니다. 빼고 싶은 기능은 아예 그 부분만 지워주시면 됩니다. //여기에서 모양을 지정해주세요. 원은 Oval //색상코드 입력해주세요. 하얀색은 #FFFFFF //만약 둥근 사각형을 만들고싶으면 radius에서 숫자를 넣어주면 됩니다. /..

안드로이드 스튜디오 Button 버튼 코딩

앱에서 흔하게 보이는 버튼은 어떻게 작동할까요? 보통 버튼은 누르면 다른 화면으로 넘어갑니다. 앱을 이용했을때 정말 단순한 기능이지만, 사실 알고 보면 이 간단해 보이는 버튼에 코딩이 숨겨져있습니다. 지정된 이미지를 버튼으로 수행할 수 있게 객체로 지정하며, 그 객체에 코딩을 넣음으로서 단순하게 누른 것만으로 다음 화면으로 넘어갈 수 있는 코딩을 새긴 것입니다. 완전히 무에서 유를 창조하는 것이 아니라 이미 있는 안드로이드 스튜디오 라는 템플릿에서 이들이 원하는 언어를 작성해 앱 기능을 구현하는 것입니다. 시작하기 전에 유의하실 점 안드로이드 스튜디오에서 새로운 프로젝트를 열어주세요. 프로젝트를 열 때 파일이 안열리면 아래 링크를 통해 확인해주세요. 보통 유저명이 한국어라서 안 열려지는 경우인데 아래링크..

안드로이드 스튜디오 앱 실행 화면 미리보기 기능

오늘은 안드로이드 스튜디오에서 앱 실행화면을 미리보는 기능을 습득했습니다. 이 기능은 앱을 테스트 할 때 사용됩니다. 앱이 잘 작동되는지, 모션이 이상하지 않는지를 번거롭게 핸드폰에 다운 받지 않고 컴퓨터로 앱실행을 미리 보는 기능입니다. 우선 이전 글에서 말씀드렸듯이, 안드로이드 스튜디오를 실행시킨 후에 새 프로젝트를 엽니다. 새 프로젝트를 열면 아래 화면처럼 될텐데, 저희는 이제 여기 우측에 있는 Device Manger를 클릭할 겁니다. 우측에 하얀색과 노란색으로 표시한 곳을 클릭하시면 됩니다. Decive Manger를 클릭하면 우측에 새로운 칸이 형성됩니다. 이렇게 저처럼 우측에 있는 칸이 깨끗하게 비어있을 겁니다. 하얀 동그라미로 표시된 + 버튼을 클릭해주세요. 그러면 아래 화면 창처럼 화면이..