Android/네비게이션5 네비게이션 실전편 GitHub - tnvnfdla1214/Portfolio Contribute to tnvnfdla1214/Portfolio development by creating an account on GitHub. github.com 이번 포스터에는 그간 네비게이션을 학습한 내용을 바탕으로 예제를 만들어 보았다. 예제의 목표는 1. SAA - 구조 2. 프레그먼트 -> 프레그먼트 이동 3. 바텀네비게이션바를 이용한 화면이동 (JetPack Navigation 사용) 1. SAA - 구조 현재 프로젝트의 구조는 위의 사진과 같다. 먼저 주체가 되는 MainActivity와 MainActivity의 전체 화면을 담당할 MainFragment 이번 예시로 개발된 MainFragment영역에서 replace될 NavBa.. 2023. 8. 7. Single Activity Architecture(SAA)란? 구글은 2018년 Single Activity에 관련된 주제로 Dev Summit을 열었고 위의 내용은 Jetpack의 Navigation을 활용하여 Single Activity를 사용하라고 권장하였다. 그럼 SAA는 무엇인가? 정의는 간단하다. 하나의 Activity와 여러 개의 Fragment를 사용하여 프로젝트를 설계하는 구조이다. 이는 Navigation component 활용하여 보다 쉽게 구조를 설계할 수 있다. 그렇다면 SAA 구조로 설계하는 것은 어떠한 장점이 있을까? 이는 Acitivity와 Fragment의 차이에 대해 생각해보면 설명이 가능하다. 장점 Activity는 Fragment 보다 무겁기 때문에 메모리나 속도 측면에서 이득이다. Activity보다 유연한 UI 빌드가 가능하다.. 2023. 8. 2. 네비게이션이란 (1) 기존에는 프레그먼트를 전환하기 위해 FragmentManager을 사용해왔다. supportFragmentManager.beginTransaction() replace(R.id.frame_layout, TestFragment()) commit() 그런데 구글에서는 JecPack이 도입된 후 FragmentManager을 사용하지 말고 Navigation을 사용하라고 권장하고 있다. 또한 Single Activity Architecture(SAA)를 제안하며 여러가지 문제가 있을 상황을 최대한 낮추고 가능하면 프레그먼트로 화면을 구성하라고 권장했다. SAA 블로그 글 링크 결론은 화면은 최대한 프래그먼트로 전환하고 화면의 전환은 라이브러리에 맞기라는 뜻이다. Navigation의 3대 컴포넌트 Naviga.. 2023. 8. 2. JeckPack 네비게이션이란 (2) - 실전 편 자 개발하는 방법에 대해 알아보자. 먼저 Gradle에 추가해준다. dependencies { def nav_version = "2.5.3" // Java language implementation implementation "androidx.navigation:navigation-fragment:$nav_version" implementation "androidx.navigation:navigation-ui:$nav_version" // Kotlin implementation "androidx.navigation:navigation-fragment-ktx:$nav_version" implementation "androidx.navigation:navigation-ui-ktx:$nav_version" /.. 2023. 6. 19. JeckPack 네비게이션이란 (1) - 이론 편 한마디로 설명하면 한마디로 설명하면 JeckPack 네비게이션 이란 화면간의 이동을 할 수 있게 도와 주는 컴포넌트 이다. 나오게 된 이유 이전에는 우리는 화면간의 이동을 Intent 를 사용하여 화면간의 이동을 하였었다. 그러나 Intent는 아래와 같은 단점을 야기했었다. 코드의 복잡성: Intent를 사용하여 화면 간 이동을 구현하면 각각의 이동에 대해 별도의 Intent 객체를 생성하고 전달해야 한다. 이는 코드의 복잡성을 증가시킬 수 있다. 또한, Intent를 통해 전달되는 데이터나 인자들을 관리하기 위해서는 별도의 키(Key)를 사용해야 하며, 이는 번거로움을 초래할 수 있다. 안전성과 일관성의 부재: Intent를 사용하여 화면 전환을 구현하는 경우, 뒤로 가기 동작이나 이전 화면으로의 정.. 2023. 6. 18. 이전 1 다음