본문 바로가기
반응형

Android & Kotlin34

[Android kotlin] 네트워크 메니저로 사용자 경험 개선하기 (Connectivity Manager) 네트워크 설정 공식 레퍼런스https://developer.android.com/training/basics/network-ops/reading-network-state?hl=ko 네트워크 상태 읽기  |  Connectivity  |  Android Developers네트워크 상태 읽기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Android에서는 앱이 연결의 동적 변경사항을 학습할 수 있습니다. 다음 클래스를 사용하여developer.android.com 우리는 앱을 사용하다 보면 네트워크의 연결에 대한 알림을 주는 것을 많이 볼 수 있다. 네트워크 연결 상태를 관리하고 모니터링하여보다 사용자에게 편리함을 제공해주고자 이 부분에 대해서 공략을 해보고자 하였습니다. .. 2024. 1. 2.
안드로이드 코틀린 커스텀 다이얼로그 (서버통신, 에러, 로딩 다이얼로그(spinkit)) 우리가 스마트폰을 하다보면 어떤 창을 클릭을 했을때 (로그인, 회원가입,경고, 팝업) 등 굉장히 다양한 다이얼로그에 대해서 통일성 있게 사용이 되는 것을 확인할 수 있습니다. 한가지의 예시로 회원가입을 하였을때 (아이디가 유효x, 비밀번호 유효x, 필수란에 체크x,중복아이디) 등 굉장히 많은 것에 대해서 우리는 다이얼로그가 뜨는 것을 확인할 수 있습니다. 다이얼로그에 대해서 어떻게 컨트롤하고 어떻게 파일을 분류를하는지 저의 개인적인 의견에 대해서 정리하도록 하겠습니다. 우선 저의 파일 관리는 이러한 다이얼로그는 통일성이 있게 예시로 ErrorDialog , LoadingDialog, DeleteDialog 의 등등의 형식으로 사용을 하게 됩니다. 파일은 따로 util이라는 폴더를 만들어 따로 관리하는 편.. 2023. 6. 26.
[안드로이드 코틀린] 리사이클러뷰 뷰타입에 따른 설정 (실습 : 채팅방) 채팅방에 대한 리사이클러뷰를 통해 진행을 하려할때 뷰타입에 따른 설정을 진행하는 것에 대한 예제에 대한 학습을 적으려 합니다. 알고보면 간단하지만 알기전에는 힘든 친구가 아닐까 생각하네요. val chatAdapter = ChattingChatAdapter(chatList) binding.rvChattingChat.apply { adapter = chatAdapter layoutManager = LinearLayoutManager(context,LinearLayoutManager.VERTICAL,true) } viewModel.messageList.observe(viewLifecycleOwner, Observer { messages-> messages.forEach {chatAdapter.addMessa.. 2023. 5. 13.
[안드로이드 코틀린] 바텀네비게이션 프래그먼트 전환시 상태 유지 바텀 네비게이션을 전환만 한다고 생각을 하지만 우리는 카카오톡 애플리케이션을 보게 되면 친구창에서 바텀 네비게이션에 있는 다른 채팅을 가게 되었을때 다시 친구 창에 돌아오면 위치를 저장하는 것을 보실 수 있습니다. private fun runBottomNavi() { binding.btmNavMain.run { setOnItemSelectedListener { item -> val selectedFragment: Fragment = when (item.itemId) { R.id.btm_home -> HomeFragment() R.id.btm_chatting -> ChattingFragment() R.id.btm_post -> PostFragment() R.id.btm_profile -> ProfileFr.. 2023. 5. 9.
[코틀린] 안드로이드 리사이클러뷰 특정뷰(아이템) 클릭 뷰홀더에서 클릭시 로그를 찍어봤을때 adapterposition이 나오게 되는것을 확인할 수 있다. 그렇다는것은 이미지도 여기서 설정을 해줄 수 있지 않을까 생각한다. 그리고 다음에 혹시 뭐 즐겨찾기 추가를 했을때 그에 대해서 서버에 통신을 보내주면서 추가를 해주는것도 앞으로 가능하다고 생각한다. class RestaurantAdapter(var restaurantList: List) : RecyclerView.Adapter(){ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RestaurantViewHolder { val binding = RestaurantListBinding.inflate(LayoutInflater.from(p.. 2022. 12. 29.
[코틀린] 안드로이드 플로팅버튼 이미지 조절, 버튼 클릭시 최상단, 스크롤이벤트 우리가 대게 floatingactionbutton을 띄우게 되면 이러한 형식이 나오게 되어 매우 당황하게 된다. 이럴때 어떻게 해결해야할까? 가본적으로 fab에서 크기 변경을 지원하지 않기 때문에 크기를 수정할 수가 없는 현상이 발생하는 것이다. 따라서 res → value에 dimens.xml을 만들어 아래와 가티 추가를 진행해주었다 37dp 40dp 전체 버튼의 크기와 그 안의 사진의 크기를 설정을 진행해줍니다. 그리고 사용하려는 floatingbutton에서 app:fabSize=”normal”을 추가해주면 해결이 된다. private fun ScrollUp(){ binding.fabScrollUp.setOnClickListener{ binding.nestedScrollView.fullScroll(.. 2022. 12. 29.
viewpager2 이미지 자동 스크롤 (recyclerview활용) 기존 viewpager에서 viewpager2를 사용하는 이유 Orientation 추가 →Horiaontal Paging에서 VerticalPaging도 지원이 가능해짐 RTI페이징 가능 notifyDatasetChanged를 이용한 동적 페이지 가능 필요한 것들 및 개념 정리 image를 출력해주는 xml 이미지를 출력해주는 viewpager 배열에 저장할 image모음 recyclerview 우선 우리가 활용하는 리사이클러뷰와 개념이 아주 매우 흡사하다. 리사이클러뷰에 대한 이해를 하였다면 viewpager2를 문제없이 구상할 수 있다. 또한 이미지가 넘어가는것은 따로 진행해주기 때문에 thread를 활용한다는것을 기억해야한다. 우선 활용할 layout .xml에 추가를 viewpager를 추가해준.. 2022. 12. 28.
[코틀린] 안드로이드 sharedpreferences 개념 및 활용 예제 SharedPreferences란? DB에 저장해야할 정도의 데이터의 양이 많으것이 아닌 간단한 설정값이나 문자열과 같은것을 저장하기 위해 DB의 사용이 부담될때 SharedPreferences를 사용하는것이 적합함 SharedPreferences의 특징 초기 설정값이나 자동 로그인 여부 등 간단한 값을 DB에 넣지 않고 저장하기 위해 사용 key-value방식을 사용 저장 경로: data/data/패키지명/shared_prefs/SharedPreference명.xml 에 저장. MainActivity.kt class MainActivity : AppCompatActivity() { val binding by lazy {ActivityMainBinding.inflate(layoutInflater)} ov.. 2022. 12. 3.
[kotlin] 안드로이드 액티비티 생명주기 이해 및 예제 Oncreate() 시스템이 활동을 생성할때 실행되는 것으로, 필수적으로 구현을 해야함 전체 생명주기 동안 한번만 발생해야하는 기본 어플리케이션 시작로직을 실행함 Oncreate() 메스더에 관한 예시로는 사용자 인터페이스 선언, 멤버 변수 정의, 일부 UI구성, 등의 활동에 관한 기본 설정을 보여준다. OnStart() 활동이 시작됨 상태에 들어가게되면 시스템은 OnStart()을 호출합니다. 호출됨으로써 활동이 사용자에게 표시되고 앱은 활동을 포그라운드에 보내 상호작용할 수 있도록 준비. 빠르게 완료되고 활동은 여기에 머물지 않는 특징 → 콜백이 완료되면 활동이 재개됨 상태에 들어가고 OnResume메서드를 호출 OnResume() 활동이 재개되는 상태에 들어가게되면 포그라운드에 표시되고 시스템이 O.. 2022. 12. 2.
Android Palette Component 정리 4. Helpers, Google, Legacy Helpers - Group 참조된 위젯 세트의 가시성을 제어합니다. 위젯세트를 쉽게 숨기거나 표시할 수 있는 편리한 방법 , 여러 그룹이 동일한 위젯을 참조할수 있으므로 이 경우에는 XML 선언의 순서가 최정 가시성 상태를 정의 - Barrier (Horizontal) , Barrier (Vertical) 여러 위젯을 입력으로 참조하여 지정된 측면에서 가장 극단적인 위젯을 기반으로 가상 가이드 라인을 생성합니다. 양쪽의 참조된 모든 뷰의 정렬이 됩니다. Barrier (Horizontal) -> end일때 -> start 일때 똑같은 원리로 vertical도 작동 - Flow 기존에 Chain과 유사하게 수평 또는 수직으로 배치를 할 수 있게 해줍니다. - Guideline (Horizontal) ,G.. 2022. 11. 22.
Android Palette Component 정리 4. Containers 1.Spinner 스피너는 하나의 값을 빠르게 찾을 수 있는 방법을 제공. 기본 상태는 현재 선택된 값을 표현하고 스피너를 클릭하여 원하는 모든 사용가능한 값이 드롭다운 메뉴로 표시가 된다. 2. RecyclerView RecyclerView는 대량의 데이터 세트를 즉시 표현하기 위해 사용하고ListView보다 향상된 성능을 제공할 수 있다. Adapter의 ViewHolder를 사용하여 View를 재활용하여 사용합니다. 아래로 스크롤을 통해 화면에 표시되는 데이터가 변경이 됩니다. 3.ScrollView 화면에 넘칠때 사용하는 뷰로 수직으로 스크롤 할 수 있음 4. HorizontalScrollView 화면에 넘칠때 사용하는 뷰로 수평으로 스크롤 할 수 있음 5. NestedScrollView 한 화면.. 2022. 11. 22.
Android Palette Component 정리 3. Layouts 1. ConstraintLayout 여러 제약 조건을 통해 레이아웃을 배치하는 방식. ViewGroup 유연한 방식으로 위젯을 배치하고 크기를 조정이 가능하다. 화면의 크기가 각기 다른 요즘 시대에 가장 많이 사용하고 있는 레이아웃 중 하나. 기능 - 상대적 포지셔닝 ex) button 의 layout_constraintLeft_toRightOF=”@+id/buttonA” - 상대적 포지셔닝 제약 ex) layout_constraint방향(Left,Right, Top Bottom…)_to방향Of - 상대 위치 지정 여백(margin) ex)android:layout_margin방향 → 여백은 양수이거나 0일수만 있음 - 센터링 포지셔닝 app:layout_constraintLeft_toLeftOf="pa.. 2022. 11. 22.
반응형