오늘 벨로그를 처음 개설해 보았다. 막상 글을 쓰려 하니 무엇을 어떻게 써야 하는지 감조차 오지 않는다. 원래 TIL은 정해진 양식이 없고 자기 마음대로 쓰는 것이긴 하지만 조금 더 알고 쓰는 게 나을 것 같아서 TIL에 대해 조사를 해보려고 한다. TIL이란? T
드디어 2023.11.27일 스파르타 내일배움캠프에서 첫강의를 들었다. 이 강의를 듣기 전 사전캠프에서 Kotlin문법과 미니프로젝트를 하긴 했지만 이 내용은 추후 문법과 프로젝트 게시물을 올릴 때 같이 올리도록 하겠다. 첫강의 내용은 프로그래밍과 Kotlin에 관하여
나는 java로 android 앱을 만들어본 적이 있지만 내일배움캠프에서는 kotlin으로 코딩하기 때문에 기초적인 문법 강의를 들었다. kotlin은 다른 언어와 비슷하지만 헷갈리는 경우가 많게 느껴진다. 오늘 TIL을 쓰면서 한 번 더 머리에 남도록 생각하면서 정리
값을 그대로 할당메모리 크기 고정null로 초기화가 불가능ex) int, long, float, double 등스택에 값을 저장모든 변수를 참조형으로 사용하지만, 컴파일 과정에서 기본형으로 대체한다. 따라서, 코틀린의 경우 자료형을 고려하는 최적화를 신경쓰지 않아도 된
kotlin에서는 대표적으로 산술, 대입, 복합대입, 증감, 비교, 논리, 비트연산자가 있다. 연산자들의 정의를 알아보자덧셈, 뺄셈, 곱셉, 나눗셈, 나머지 연산을 수행하는 연산자이다.산술연산자의 종류는 +, -, \*, /, % 가 있다.변수에 값을 할당(대입)할 때
kotlin의 흐름 제어에는 조건문과 반복문 크게 두 가지가 있다. 나는 프로그래밍 언어 문법 중에 조건문과 반복문이 중요하다고 생각한다. 왜냐하면 코딩을 할 때 조건문과 반복문의 비중이 크고 완벽하게 익히지 않으면 기초 단계부터 무너질 수 있기 때문이다. 오늘은 이
코딩을 하면서 함수라는 단어를 많이 접하게 된다. java와 kotlin을 공부하면서 부터 함수를 메서드라고 부른다. 메서드 선언을 하기 전 메서드란 무엇인지 알아보자메서드는 어떠한 기능을 수행하는 코드 블록이다. 하나의 특별한 목적의 작업을 수행하기 위해 독립적으로
클래스를 더욱 구조화 하기 위해서는 특수한 목적을 가진 여러 클래스를 정의해야 한다. 오늘은 추상클래스를 메인으로 정리해보려고 한다. kotlin 강의를 들으면서 가장 이해하기 힘들었던게 추상클래스이다. 오늘 정리로 개념과 실제 쓰임에 대해 알아가는 시간을 가져야겠다.
오늘은 그동안 배운 내용을 통해 간단한 계산기 프로그램을 만들어보는 과제를 받았다. 옛날 학교에서 했었는데 새로 배운 언어로 하니 걱정도 살짝 되었다. main.kt
원래 알고리즘 문제를 파이썬으로 풀고 있었지만 앱개발을 공부하면서 코틀린을 많이 쓰게 되었다. 두 개를 쓰려다보니 비효율적이라고 생각해서 알고리즘 문제들도 코틀린으로 풀 생각이다. 문제들을 풀기위해 기본적인 문법들을 정리해보려고 한다.readLine을 사용하여 문자열을
배열은 같은 유형의 여러 요소를 순차적으로 저장하는 자료 구조이다.배열은 고정된 크기를 가진다.각 요소는 인덱스를 사용하여 접근할 수 있다.순서가 있는 요소들의 컬렉션을 나타낸다.코틀린에서는 List 와 MutableList 인터페이스를 제공한다.mutableListO
요청을 보내고 결과값을 받을 때까지 작업을 멈춘다.한 가지씩 작업을 처리한다. 즉 하나의 코드가 끝나야 다음 코드가 실행된다.runBlocking 함수는 동기식으로 람다식 안에 있는 모든 작업이 완료되어야 함수를 반환합니다.요청을 보내고 결과값을 받을 때까지 다른 일을
오늘 강의부터는 kotlin 강의에서 안드로이드 스튜디오를 이용한 앱개발 강의를 듣기 시작했다. UI에 대해 배우기 위해 처음으로 xml을 배웠다. 내가 질리도록 사용해야 할 것인만큼 까먹지 않도록 잘 정리해야겠다. UI(UserInteface) 사용자가 애플리케이션
오늘은 xml 레이아웃에 대해 정리해보려고 한다. Layout ConstraintLayout 제약조건(Constraint)기반 모델 연결선을 제약조건으로 하여 화면을 구성한다. 안드로이드 스튜디오에서 자동으로 설정하는 기본 레이아웃 LinearLayout 박스(Bo
xml 레이아웃 파일 안에서 뷰를 구분할 때 사용한다.xml 에이아웃 파일에서 정의한 뷰를 kotlin 소스 파일에서 찾을 때 사용한다.
안드로이드 스튜디오를 활용해 자기소개 어플을 만들어보려고 한다. 기능에는 회원가입, 로그인, 랜덤 이미지 출력, 아이디와 비밀번호 유지기능을 구현해 보도록 하겠다. Activity 로그인(SignInActivity) 이미지 로고를 넣을 이미지뷰(아직 무슨 이미지를 넣
자기소개 앱 개발 중 랜덤으로 이미지가 출력되게 하는 기능을 만들고 있었다.테스트를 하기 위해 디버그를 하는 도중 앱이 실행될 때 계속 다운되는 현상이 발생했다. 에러를 해결하기 위해 Logcat을 확인해 보니 이러한 에러가 떴다.구글에 RuntimeException:
오늘은 자기소개 앱에서 기능적으로 무엇이 있었는지 설명하려고 한다.isEmpty()를 사용해 입력된 Edittext에 데이터가 없거나 회원가입을 통해 전달된 데이터가 일치하지 않으면 다음으로 진행되지 않고 알림문구가 뜨게 구현했다.로그인을 성공하고 HomeActivit
자기소개 앱을 구현하다가 intent라는 기능을 썼는데 명시적, 암시적 인텐트라는 것이 나뉘어 있어서 이 개념에 대해 정리하려고 한다.안드로이드 런타임에서 메시지를 주고받아 앱 구성요소로 부터 작업을 요청하는데 사용되는 일종의 메시지 객체이다.앱이 처음 시작되면 안드로
나는 sns 클론 코딩을 과제로 받았다. 무엇을 할까 생각했는데 페이스북 내 프로필을 따라 만들어보면 좋을 것 같아서 주제는 페이스북 프로필로 정했다.이번 게시물은 코드만 넣었고 다음 게시물은 이미지와 함께 코드 설명을 추가해보도록 하겠다.
카메라 아이콘 버튼을 누르게 되면 스마트폰의 갤러리로 이동하게 되는 기능이다. navigatePhoto() 함수에 암시적 인텐트를 사용하였다.infolist에 프로필 설정에 나열될 배열들을 저장시켜 놓고 adapter를 이용하여 연결하였다.짧지만 어댑터에 연결 할 때
내일배움캠프를 시작하고 첫 팀프로젝트를 시작하게 됐다. 우리팀은 등산하는 사람들을 위한 커뮤니티 앱을 만들기로 하였다. 내가 맡은 역할은 메인페이지에서 프로필을 눌렀을 때 내 정보와 내가 올린 게시글, 좋아요를 누른 게시글을 출력하고 정보수정을 할 수 있게 구현하는 역
MyPage 로그인 정보 현재 로그인 한 유저의 아이디를 가져오는데 받은 아이디 안에는 가입했던 정보가 다 들어있다. 더보기 기능 자기소개 TextView의 MaxLines를 1로 설정해 1줄이 넘어가게 되면 그 뒤 내용은 ...으로 표시한다. if문으로 자기소개
강의에서 Scope Function이란 내용을 공부했다. 지금까지 내 개발 방식은 기능만 되게 하는 수준이 다였지만 취업을 하게되고 여러 사람들과 일을 하게 되면 다같이 쉽게 알아볼 수 있는 코드를 짜야한다고 생각이 들어 오늘 가독성 높은 코드를 짤 수 있게 Scope
강의를 들으면서 RecyclerView는 현 어플에서 매우 자주쓰이는 뷰이기 때문에 매우 중요해 보였다. 정리하면서 여러번 이해해 보려고 노력해봐야겠다.RecyclerView는 ListView의 확장판이다.사용자가 스크롤 할 때, 올라간 아이템은 재활용하여 아래로 이동
안드로이드 스튜디오에서 알림기능을 구현하다가 생긴 일인데 아무리 해도 알림이 오지 않았다. Log를 찍어봐도 정상적으로 잘 코드가 작동하는데도 말이다. 그래서 구글링을 계속 해봤지만 답은 나오지 않았다. 그래서 에뮬레이터의 문제인듯 했다.......내가 작업하던 app
Post.kt Adapter MainActivity DetailActivity Product.kt
@Parcelize 기능을 사용하기 위해 플러그인에 id를 넣어준다.이번 프로젝트부터 viewBinding을 사용하기 위해 넣어주었다.Serializable과 다르게 리플렉션을 사용하지 않고,필요한 부분만 직렬화 비직렬화 할 수 있어 효율성과 가독성을 높일 수 있다.V
다이얼로그는 사용자에게 결정을 내리거나 추가 정보를 입력하라는 메시지를 표시하는 작은 창이다.안드로이드 에서는 Dialog Class 가 있지만 이는 Base Class이므로 직접 사용하기 보다는 Sub Class인 AlertDialog 사용을 권장한다.
1\. Small icon: 필수 구성요소이며 setSmallIcon()을 통해 설정된다.2\. App name: 시스템에서 제공한다.3\. Time stamp: 시스템에서 제공하지만 setWhen()을 사용하여 재정의하거나 setShowWhen(false)로 숨길 수
RecyclerView 안에 아이템 데이터가 추가, 이동, 삭제 되었을 경우 반영하는 방법을 알아보려고 한다.아이템 변경: 아이템 내용이 변경되고 위치 변경은 일어나지 않은 경우구조 변경: DataSet안에서 아이템이 추가, 삭제, 이동되었을 경우사용하기는 편리하지만
아이템 변경: 아이템 내용이 변경되고 위치 변경은 일어나지 않은 경우구조 변경: DataSet안에서 아이템이 추가, 삭제, 이동되었을 경우아이템 한 개를 새로 추가할 경우 사용한다.연속된 아이템을 추가할 경우 사용한다.한 개의 아이템 위치를 이동할 경우 사용한다.한 개
EditText의 값이 변경될 때마다 값을 실시간으로 관찰하면서 특정 작업을 처리 해주기 위한 인터페이스이다.텍스트가 변경되기 전에 호출된다.charSequence: 현재 EditText에 입력된 값텍스트가 변경될 때마다 호출된다.charSequence: 새로 입력한
액티비티에서 데이터를 받아오기 위해 사용된다.콜백을 분리하여 항상 콜백을 받을 수 있도록 한다.e.g. 현재 실행중인 앱의 activity A에서 갤러리 앱의 activity B로부터 사진을 갖고올 때AndroidX Activity와 Fragment에 도입된 Activ
프로젝트 만들고 각자 clone을 하기 전 gitignore 파일을 먼저 작성하여 미연에 혼선을 방지할 수 있었다.이전 프로젝트 경험을 회고하여 프로젝트 시작전 개선점을 찾아 반영한 점이슈가 있을 때마다 노션에 기록해 문제점을 잘 파악할 수 있었다.이슈가 생겼을 때 혼
SharedPreferences 간단한 데이터를 저장하고 불러올 수 있다. 앱을 꺼도 데이터가 유지된다는 점에서 간편한 데이터베이스 역할을 할 수 있다. 초기 설정 값이나 자동 로그인 여부 등 간단한 값을 저장할 때 적합하다. ShardPreferences는 어플리케
SQLite를 쉽게 사용할 수 있는 데이터베이스 객체 매핑 라이브러리쉽게 Query를 사용할 수 있는 API를 제공Query를 컴파일 시간에 검증함Query결과를 LiveData로하여 데이터베이스가 변경될 때 마다 쉽게 UI를 변경할 수 있음SQLite 보다 Room을
Glide는 구글에서 만든 이미지 로더 라이브러리다. Glide의 with()는 Picasso와는 다르게 Context뿐 아니라 Activity와 Fragment도 인자로 사용할 수 있다.Glide는 Picasso보다 메모리 용량을 적게 차지한다.(그 이유는 이미지를
나는 플로팅 버튼의 아이콘 색상을 검은색에서 하얀색으로 바꾸려고 한다.많은 구글링 결과 이 코드를 찾아냈다.간단하지만 찾지 못하는 이유는 속성이 자동완성이 안돼서 직접 tint=""까지 작성해야한다.
API 통신을 통해 받아온 데이터들을 리사이클러뷰에 출력을 한 후 아이템 뷰를 클릭하면 보관함에 아이템을 보관하는 기능을 구현하고 있었다. 여러 개를 클릭 한 후 보관함 프레그먼트안에서 뿌려진 아이템을 다시 클릭하게 되면 삭제기능을 구현하려고 했는데 클릭한 순서대로 삭
API로 80개의 이미지를 불러온 후 스크롤이 끝까지 내려가면 새로운 아이템들을 불러오는 기능을 구현하고 있었고, 새로 불러오는 과정에서 CircleProgressDialog로 로딩 pogressbar를 띄우는 기능을 구현하려고 했다. 그 과정에서 에러가 발생했다.Ho
무언가 작업을 할 때 로딩이 되는 화면을 구현해 보도록 하겠다.
안드로이드를 시작하고 많은 사람들이 겪는 상황일 것이라 생각한다. 버튼을 만든 후 배경색을 바꾸려 할 때 drawable이 적용되지 않는 현상이다.이를 해결하기 위해 2가지 방법이 있다.그냥 <Button>을 만들지 말고 androidx.appcompat.widg
CoordinatorLayout : FrameLayout의 특징을 갖는 레이아웃behavior는 스크롤, 드래그, 스와이드, 플링 등, 뷰의 다양한 움직임이나 애니메이션에 따른 상호작용을 구현하기 위해 사용된다.scroll : 사용자의 스크롤에 따라, 이 뷰가 화면에서
Retroifit을 사용해 현재 날씨를 기상청 API를 이용해 데이터를 받아온다.
내배캠 최종 프로젝트를 진행하면서 여행을 다녀온 곳에 저장된 사진을 gridlayout으로 출력하는 것을 구현하게 되었다.처음에는 이런식으로 열을 2로 고정을 하여 gridlayout을 구현하고 있었다. 이러한 방식으로 구현을 하다보니 다른 애뮬레이터에서 테스트를 해봤
현재 운영중인 '오늘여행' 앱을 배포한 후 유저테스트를 진행하였다. 앱을 사용하면서 편리하고 좋은 점과 불편한점을 피드백으로 받게되어 수정할 내용을 더 명확하게 알 수 있었다. 피드백 받은 내용을 정리해 보려고 한다.UI와 UX가 사용자 친화적이라 좋았습니다. 설명을
컴파일 시점에 객체의 타입이 결정되며 런타임 시점에 문제가 발생할 확률이 훨씬 더 적어 상대적으로 안전한 언어라고 할 수 있다타입 추론Kotlin은 기본적으로 변수가 선언될 때 변수의 타입을 명시하지 않더라도 할당된 값을 보고 어떤 자료형을 가지는지 추론해 줍니다. 타
인수인계를 받고 처음으로 안드로이드 스튜디오를 켜서 레거시 코드를 읽고 있었다. 인수인계를 하시면서 처음으로 나한테 물어본 질문은 64비트 호환에 대해 알고 있으시냐는 질문이었다. 64비트에 관한 이슈가 있어 해결을 해야 했다.