Android 썸네일형 리스트형 [Android] 비즈니스 로직이란? 프로젝트를 진행하며 클린 아키텍처를 도입하면서 UseCase를 사용하게 되었는데요 처음 사용하는 UseCase에 대해 찾아보는데 ..UseCase를 사용하면서 UseCase는 비즈니스 로직을 실행한다, UseCase를 설계할 때 비즈니스 로직에 기반한다.. 등등 대체 비즈니스 로직이 정확히 뭐지..?? 🤯 UseCase를 제대로 사용하기 전에 비지니스 로직에 대해 먼저 이해하기 위해 정리해보았습니다 🤔 우선, 로직 분리를 왜 해야하지 ?바로 소프트웨어 설계의 근본인 "관심사의 분리"를 위해서 ! 조금 더 쉽게 풀어서 말하면코드를 하나의 커다란 뭉텅이로 만들지 말고, 작게 쪼개서 역할을 나누자 ! 하나의 앱을 만들기 위해선 간단해보이는 작은 앱일지라도 생각보다 많은 코드가 필요합니다그렇다 보면 .. 더보기 [Android] 앱 배포하기04_ AAB 파일 만들기 🪐 AAB 파일이란 ?AAB 파일은 Android App Bundle의 줄임말로, 안드로이드 애플리케이션을 배포하기 위한 새로운 앱 패키징 형식입니다Google에서는 2021년 8월부터 배포되는 안드로이드 앱은 APK 파일이 아닌 AAB 파일로 업로드 되어야 한다고 정책을 바꾸었습니다 AAB는 APK와 달리 모든 디바이스에 동일한 파일을 제공하지 않고, 각 디바이스에 맞게 최적화된 APK를 생성해 배포합니다 🤔 여기에서 '각 디바이스에 맞게 최적화된' 이 무엇인가 하면예를 들어 앱이 여러 언어 (한국어, 영어, 일본어)를 지원한다고 가정해보겠습니다 APK 방식일 때는 모든 언어 리소스를 포함한 하나의 APK 파일을 생성해야 하며, 사용자가 필요하지 않은 언어 리소스도 함께 설치됩니다즉, 한국 사.. 더보기 [Android] 앱 배포하기03_ Proguard로 코드 난독화하기 🎲 코드 난독화가 뭐야?코드 난독화란 소스 코드의 가독성을 줄여서 코드의 분석 및 역공학을 어렵게 만드는 기술입니다 코드의 기능적 동작은 변경하지 않으면서, 코드의 구조와 내용을 복잡하게 만들어 해커나 악의적인 사용자가 코드를 이해하거나 수정하는 것을 어렵게 만들어줍니다 ! 즉, 한마디로 코드를 알아보기 어렵게 만든다는 거죠 난독화 도구로는 Proguard, R8, DexGuard 등이 있는데 저는 Proguard를 사용해서 난독화를 진행했습니다 🤔 왜 해야할까?1. 보안 강화- 애플리케이션의 내부 동작과 알고리즘을 숨겨 소스 코드의 취약점을 악용하거나 불법적으로 분석하는 것을 어렵게 만들어줍니다 2. 역공학 방지- 역컴파일러를 사용하여 원래의 소스 코드를 재구성하기 어렵게 만들어줍니다 3. .. 더보기 [Android] 앱 배포하기02_ 안드로이드 스튜디오 Release build 🚀 Release build는 왜 해야 할까 ?앱을 최종적으로 배포하기 위해 성능 최적화, 보안 강화 등을 보장하는 안정적이고 최적화된 버전을 생성하기 위해 진행을 하는데요,개발 과정에서 사용하는 디버그 빌드와 달리 릴리즈 빌드는 실제 배포를 목적으로 하며 디버그 빌드와는 여러 차이점이 있습니다 🚀 Debug Build란 ?평소에 개발할 때 사용하는 빌드주로 개발과 테스트를 위해 사용애플리케이션의 코드와 동작을 디버깅하기 쉽도록 여러 기능이 활성화 되어있음개발 환경이 갖추어진 상태에서 Debug용으로 제작되어지는 프로그램실행 파일에 디버깅 정보를 삽입하여 언제든지 디버깅을 할 수 있도록 하여 Debug 서브 폴더에 실행 파일을 만들어줌디버깅 정보가 들어가 있기 때문에 실행 파일 상태를 확인 .. 더보기 [Android] 앱 배포하기01_ 안드로이드 스튜디오에서 APK 서명 키 만들기 🔐 APK 서명 키 만들기앱을 만들고 배포하기 전에 APK 서명 키를 만들어야 하는데요,서명 키를 만드는 이유는 이 앱의 무결성과 구글 플레이스토어에서 업데이트를 할 때 필요하기 때문입니다Google Play Store에서는 동일한 서명 키로 서명된 파일만이 기존 앱을 업데이트 할 수 있도록 하기 때문에키 비밀번호를 잊지 않는게 아주 아주 중요합니다 그렇기 때문에 잘 보관해두셔야 합니다 ! 또한 배포를 위한 release build를 돌릴 때에도 필요하답니다 🔑 APK 서명 키를 만들어보자 ! 우선 Build의 Generate Signed App Bundle/APK를 선택해줍니다 그리고 아래의 APK를 선택해줍니다 그럼 이렇게 Key Store Path를 입력하는 칸과 비밀번호를 입.. 더보기 [Android] PhotoPicker로 권한 없이 갤러리에서 이미지 선택하기 갤러리에서 사진을 선택하는 작업은 앱에서 정말 많이 사용되는 작업입니다 그렇지만 앱에서 갤러리나 위치 등 개인 정보를 사용하려면 필수적으로 권한을 받아야 했는데요권한 없이도 갤러리에 접근할 수 있는 방법이 있습니다 바로 Photo Picker 입니다! 포토피커를 사용하기 전에, 🤔 왜 권한을 받지 않게 되었을까요?많은 사용자들이 앱이 어떤 파일에 접근할지 모르기 때문에 파일 및 미디어 권한이 귀찮다고 하였고,이에 Android 13에서는 READ_EXTERNAL_STORAGE , WRITE_EXTERNAL_STORAGE 권한을 deprecated 시켰다고 합니다 이전에는 앱이 미디어 파일에 접근하기 위해서는 무조건 READ_EXTERNAL_STORAGE 권한을 요청했고자체 미디어 선택 경험을 구현하.. 더보기 [Android] 액티비티 생명주기 (Activity Lifecycle) 안드로이드 개발을 하면서 "생명주기를 잘 관리해주어야 한다" 라는 이야기를 많이 들었는데요,"생명주기"가 무엇이고, 그 중에서도 액티비티의 생명주기에 대해 알아보려고 합니다! 💡 생명주기란안드로이드에서 생명주기(Lifecycle)란 Activity 또는 Fragment와 같은 컴포넌트가 생성되고 실행되며 종료되기까지의 과정과 이를 관리하기 위한 상태의 전환을 말합니다 생명주기는 운영체제인 안드로이드 시스템이 관리해주며, 개발자는 이 생명주기 안에서 적절한 작업을 수행해 앱이 안정적으로 동작하도록 해야 합니다 ! 공식 문서에 따르면 생명주기를 잘 관리하면 아래와 같은 일들을 방지할 수 있다고 하네요사용자가 앱을 사용하는 도중에 전화가 걸려오거나 다른 앱으로 전환할 때 비정상 종료되는 문제사용자가 앱을 .. 더보기 이전 1 2 다음