분류 전체보기

    [Jetpack Compose] Text 만들기

    Jetpack Compose Text 만들기 @Composable fun BirthdayGreetingWithText(message:String,from:String) { // 함수 단어 첫말은 대문자로 Column { Text(text = message, fontSize = 36.sp) Text(text = from , fontSize = 24.sp ) //각 Text를 작성 할 수 있따. } //Column은 안에 Text들이 수직적으로 나열되도록 해줌! //Row는 수평적으로 나열 } @Preview(showBackground = true) //미리 볼 수 있도록 하는 주석 @Composable fun DefaultPreview() { HapplyBirthdayTheme { BirthdayGreet..

    [요즘 IT] Jetpack Compose를 배워야하는 이유?

    구글 Compose Camp에 참여하기 전 나는 요즘IT 사이트에서 해당 글을 보게되었다. Jetpack Compose, 뭐가 좋은데? | 요즘IT Jetpack Compose, 뭐가 좋은데? | 요즘IT 알라미 Android 팀에서도 최신 UI 빌드 트렌드를 따라가기 위해, 더 나아가 Compose의 이점을 활용하기 위해 기존 UI 빌드 방식을 Jetpack Compose로 전환하고 있습니다. 이에 대한 첫걸음으로 다음 ‘설정 yozm.wishket.com 안드로이드를 공부하면서 Jetpack에 대해 관심이 많아졌고 XML을 사용하지 않는 Jetpack Compose에 대해서도 자연스럽게 궁금했었다. 마침 이 글을 발견했고 읽어보았는데... 결론적으로 왜 Jetpack Compose로에 대체가 이루어질..

    [UMC/Android] 8주차 - RoomDB 활용하기

    8주차 - RoomDB 활용하기 🍀구현영상 및 설명 이전 주차에 bundle을 활용해서 Activity와 Fragment간 데이터를 전달했던 것을 모두 RoomDB로 바꾸어서 만들었다. RoomDB를 활용해 메모 수정, 삭제, 추가 기능을 구현하였다. 메모 리스트 RV에서 item 클릭시 해당 리스트의 메모 id를 받아오고 이를 매개변수로 활용해 각 메모를 수정 및 삭제 했다. FrameLayout을 활용해 즐겨찾기 toggle를 구현하고, 보관함에 즐겨찾기 메모가 담기도록 하였다. 사용한 각 Query는 다음과 같다. @Dao interface MemoDao { //메모 추가 @Insert fun insert(memo:MemoData) @Delete fun delete(memo:MemoData) //메..

    [UMC/Android] 7주차 - Thread 이용한 타이머 만들기

    7주차 - Thread 이용한 타이머 만들기 ⏱️ 구현 영상 코드 UMC_Android/week7 at master · ss99x2002/UMC_Android ⏱️ 구현 설명 시간 선택 페이지 59분 59초까지 타이머를 설정할 수 있는 페이지로 Number Picker를 사용해서 시간을 설정하도록 하였다. 시간 선택 페이지와 타이머 페이지는 FrameLayout으로 겹쳐두고 visible 속성을 통해서 보이고, 안보이고를 지정하였다. 따라서 시작버튼을 누르면 타이버 레이아웃이 뜬다 타이머 페이지 시간선택 페이지에서 선택한 시간의 타이머가 돌아가는 페이지로 시작 버튼을 누르면 타이머가 돌아간다. 시작 버튼을 누르면 해당 버튼은 invisible되고 정지 버튼이 visible된다. 정지버튼을 누르면 타이머가..

    [UMC/Android] 6주차 - Bottom navigation, TabLayout, ViewPager2

    6주차 - Bottom navigation, TabLayout, ViewPager2 구현 영상 설명 및 배운 점 BottomNavigationView를 이용해서 홈, 프로필, 달력 fragment 간 이동할 수 있도록 만들었다. 프로필 fragment에서는 TabLayout과 ViewPager2를 이용해서 프로필 fragment와 프로필 수정 fragment를 만들었다. Fragment 위에 ViewPager2를 설정할 때 ViewPager Adapter에서 FragmentActivity를 매개변수로 보내야한다. fragment는 activity와 다르기 때문에 val profileVPAdapter ~~= ProfileVPAdapter(this)~~ 로 보내면 안되고, = Profile(this.requ..

    [BOJ/C++] 1966번 프린터 큐

    [Silver III] 프린터 큐 - 1966 문제 링크 성능 요약 메모리: 2024 KB, 시간: 4 ms 분류 자료 구조(data_structures), 구현(implementation), 큐(queue), 시뮬레이션(simulation) 문제 설명 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다. 현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 확인..

    [BookNote] 메모장 어플 디자인

    기간: 2022.11.05 제작 제작도구: Figma와 PhotoShop 사실 UMC 과제로 간단 메모앱을 만드는 거였는데, 뭐든 실제 앱처럼 완성도있게 만들고싶다는 욕심때문에 여러 작업들을 해봤다. 오랜만에 포토샵으로 디자인하니 재밌었다. 종종 이 카테고리에 내 디자인을 아카이빙 해야겠다.

    [UMC/Android] 5주차 - 메모 어플 만들기

    5주차 - 메모 어플 만들기 👾 할 커스텀 목록 메모 작성 날짜 기록 item 클릭 시 메모 이동 후 내용 수정가능 메모 작성 완료시 Custom Dialog 띄우기 휴지통 클릭 시 삭제 간단한 splash 화면 구현하기. back시 Custom Dialog 띄우기 메모 title 텍스트 색 변경하는 palette Dialog 만들기,텍스트 변경된 색 저장하기 닉네임 입력받고 00님의 메모 title 설정하기 👾 구현 영상 및 설명 구현 영상 💥 Splash 화면 앱 실행시 약 2초간 뜨는 화면으로 직접 디자인 후 실행되도록 하였다. 👤 이름 입력창 닉네임을 입력하는 창이 나온다. 입력하지 않고 버튼을 누를시 닉네임을 입력하라는 Toast Message가 뜨도록 하였다. 📝 Memo 화면 닉네임 입력창에..

    [Android] Recyclerview item Click / Click Listener 등록하는 법

    Recyclerview item Click / Click Listener 등록하는 법 RecyclerView의 클릭이벤트는 onBindViewHolder 함수에서 setOnClickListener를 통해서도 구현할 수 있고, 외부에서 click 이벤트를 정의하고싶다면 리스너 인터페이스를 만들 수도 있다. 이 게시물에서는 외부에서 item click시 발생되는 이벤트를 정의하기 위해 리스너 인터페이스를 만드는 방법을 알아보고자 한다. 리스너를 만들면서도 리스너에 대해 잘 모르는거같아서 찾아보았다. Listener란? 리스너는 특정 이벤트를 처리하는 인터페이스로 추상메서드를 받아 실행하며 이벤트 핸들러라고도 불린다. RVAdapter에서 Click Listener 만드는 법: 1️⃣ interface를 만든..

    [Android] RecyclerView란? / RecyclerView Adapter 사용법

    ⭐ RecyclerView란? View를 재활용하는 기능을 추가한 효과적인 ListView이다. ViewHolder란? 각 뷰를 보관하는 Holder 객체이다. → ListView 와 RecyclerView는 inflate를 최소화 하기 위해 뷰를 재활용한다. 이 때 각 뷰의 내용을 업데이트하기 위해서는 findViewById를 매번 호출해야하고, 이로 인한 성능저하 때문에 ItemView의 각 요소를 바로 엑세스 할 수 있도록 저장해두고 사용하기 위한 객체를 만든다. 그리고 이것이 ViewHolder 이다. inflate : xml로 쓰여있는 View의 정의를 실제 View 객체로 만드는 것을 의미한다. 특징 //ViewHolder 만들어질 때 실행할 동작 override fun onCreateView..

    [Android] RecyclerView 데이터 추가/삭제/수정 반영 방법

    RecyclerView 데이터 추가/삭제/수정 반영 방법 RecyclerView를 사용할 때 데이터를 삭제/수정/추가하는 일이 일어날 수 있다. 메모앱을 만들면서 메모를 추가/삭제/수정하는 기능이 필요했고, 이번 게시물에서는 바뀐 데이터를 RecyclerView에 반영하는 방법을 알아보고자 한다. RecyclerView 와 dataList RecyclerView는 아이템 뷰를 재활용해 각 데이터들을 나타내기 때문에 뷰에 내용을 담을 데이터리스트가 필수다. 따라서 RVAdpater를 만들 때 매개변수로 dataList를 전달해준다. 이 때 dataList에 일어날 수 있는 상황은 크게 3가지가 있다. dataList에 data가 추가되는 상황 새로운 data가 dataList에 추가된 것이다. dataLi..

    [Android] 안드로이드 기본 dialog 생성하기

    기본 dialog 생성하기 Custom Dialog가 아닌 안드로이드에서 제공하는 기본 Dialog를 사용하는 방법을 알아보고자 한다. 기본 구성 val dialog = AlertDialog.Builder(this) // dialog를 만든다 dialog.setTitle() // 다이얼로그 상단에 뜰 문구를 작성한다 .setMessage() // 상단 바로 아래에 뜰 문구를 작성한다. .setPositiveButton(""){dialog,which -> //setPositiveButton 매개변수로 버튼 안에 들어갈 텍스트를 쓰면된다. //해당 버튼을 눌렀을 때 발생시킬 이벤트를 작성한다. } .setNegativeButton(""){dialog,which -> // 위와 마찬자기로 버튼안에 들어갈 텍스..