Android/Android

    [JAVA] MVVM 패턴 적용해보기

    지난 이야기 안드로이드 애플리케이션 설계 패턴 MVC 패턴 💡 애플리케이션 구조를 Model, View, Controller 세개의 측면으로 관심사를 분리한다. 개발을 배울 때 가장 먼저 배운 패턴이다. 그렇기 때문에 이해하기도 가장 쉬웠다고 생각한다. 안드로 www.pinslog.com 지난 글에서 안드로이드 애플리케이션 설계 패턴에 대해 알아보았다. 주로 언급되는 세가지 패턴 중 (mvc, mvp, mvvm) 주로 채택되는 MVVM 패턴을 구현해보도록 할것이다. View 와 관련된 코드들을 참조하지 않는 것이 MVVM 디자인 패턴의 핵심이라고 할 수 있겠다. MVVM 패턴 적용해보기 아래의 화면과 같이 제목과 내용을 작성하면 하단 글 목록에 바로 반영해보려고 한다. dependency def life..

    안드로이드 애플리케이션 설계 패턴

    MVC 패턴 💡 애플리케이션 구조를 Model, View, Controller 세개의 측면으로 관심사를 분리한다. 개발을 배울 때 가장 먼저 배운 패턴이다. 그렇기 때문에 이해하기도 가장 쉬웠다고 생각한다. 안드로이드에서 activity, fragment 가 view 역할을 한다. 동시에 controller 의 역할을 하기도 한다. 장점 직관적이다. 위에서 이해하기 쉬웠던 이유가 바로 이 장점 때문이 아닐까? 코드를 파악하기 쉽다. 단점 (안드로이드에서는) 위에서 말했듯 activity, fragment 가 뷰와 컨트롤러의 역할을 겸하다 보니 앱의 규모가 커지면 수천줄의 코드가 작성되어 유지보수가 힘들어진다. 컨트롤러는 뷰와 모델에 의존적이고, 뷰는 모델에 의존적이기 때문에 결합도가 높아 유닛 테스트가 ..

    [kotlin] 코틀린 기초 문법 다지기 - 2. class

    해당 강의를 들으며 작성된 것입니다. [무료] 코틀린 3강으로 끝내기 feat. 안드로이드 개발 - 인프런 | 강의 3강으로 짧게 끝내는 코틀린 문법! 코틀린 기초 문법과 안드로이드 기초 프로그래밍은 물론, 직접 안드로이드 앱도 만들어보세요!, - 강의 소개 | 인프런... www.inflearn.com Class 👉🏻 코틀린은 자바와 달리 클래스 이름과 파일의 이름이 달라도 된다. 👉🏻 한 파일 안에 여러 클래스를 생성할 수 있다. 기본 형태 👉🏻 코틀린은 new 키워드가 없다. class Human { val name = "spin" fun eatingCake(){ println("This is so yummy") } } fun main(){ val human = Human() human.eating..

    [kotlin] 코틀린 기초 문법 다지기 - 1

    해당 강의를 들으며 작성된 것 입니다. [무료] 코틀린 3강으로 끝내기 feat. 안드로이드 개발 - 인프런 | 강의 3강으로 짧게 끝내는 코틀린 문법! 코틀린 기초 문법과 안드로이드 기초 프로그래밍은 물론, 직접 안드로이드 앱도 만들어보세요!, - 강의 소개 | 인프런... www.inflearn.com 함수 파라미터와 리턴 타입이 없을 때 fun helloWorld(){ println("hello world!") } 자바의 void 와 같다. 아무것도 리턴하지 않는 것처럼 보이지만 사실은 Unit을 리턴하고 있다. 위에 쓰인 것 처럼 생략해도 무방하다. fun helloWorld() : Unit { println("hello world!") } 파라미터와 리턴 타입이 있을 때 '변수 이름 : 변수 타..

    [Android] SharedPreferences 와 KeyStore

    해당 글을 참고했습니다. 안전하게 민감정보 저장 이슈 해당 게시글은 Android 개발자에게 해당되는 이야기다. 민감정보에대해 개발을 하면서 서비스의 운용을 위해 필요한 정보를 받는 것은 자연스러운 일이다. 그중 대표적으로 비밀번호를 말할 수 secu-lee-ty.tistory.com 들어가며 다들 그렇겠지만 전역적으로 쓰이는 정보에 한해서는 SharedPreferences 를 이용해 정보를 저장해왔을 것이다. 나의 경우 로그인기능을 개발하면서 사용자 편의를 위해 로그인 정보 저장 기능을 만들고자 했었다. 그러려면 아이디와 비밀번호 모두를 SharedPreferences 에 저장해야하는데 비밀번호를 평문으로 저장하는 것은 너무 위험하고.. 로그인 정보를 서버에 전송할 때 암호화 된 비밀번호를 전송하니 암..

    [Android] Google Play Developer API으로 앱 출시하기

    들어가며 앱을 마켓에 배포하고 나서 앱이 업데이트가 되면 사용자들에게 업데이트를 안내해야한다. 다 그런건지는 모르겠지만 앱을 다운받으면 자동 업데이트에 체크가 되어있긴 하던데.. 자동 업데이트를 선호하지 않아 해제해놓는 사용자가 있을 수 있기 때문에 인 앱 업데이트를 구현하고자 했다. 공식문서를 참고하다 우선순위를 지정할 수 있다는 것을 보게 되었다. Google Play Developer API 말 그대로 구글에서 제공하는 API로 게시 및 앱 관리 작업을 실행할 수 있다고 한다. 👉🏻 Subscriptions and In-App Purchases API : 인 앱 구매와 정기 결제 관리 👉🏻 Publishing API : 앱 업로드 및 게시, 기타 게시 관련 작업 실행 Publishing API 앱 ..

    [Android] 앱 서명

    해당 페이지를 참고하였습니다 앱 서명 | Android 개발자 | Android Developers 앱 서명 및 보안과 관련된 중요한 개념을 알아보고, Android 스튜디오를 사용하여 Google Play에 출시하기 위해 앱에 서명하는 방법과 Play 앱 서명을 선택하는 방법을 알아보세요. developer.android.com 안드로이드 키스토어 어떻게 관리하시나요? 안드로이드 개발 후 플레이스토어에 배포를 하기 위해서는 키스토어(Key Store)를 이용하여 Signing된 apk 또는 App Bundle이 필요합니다. medium.com Android 에서는 인증서를 사용해 디지털 방식으로 서명된 APK만 기기에 설치하거나 업데이트 할 수 있음 구글에서는 plat 앱 서명으로 앱의 서명 키를 관리..

    [Android] AndroidManifest.xml 의 package 속성

    프로젝트를 클론한 뒤 빌드를 하면 가령 a 프로젝트를 클론해서 b 기능을 하는 프로젝트를 생성했다 치면 a 를 빌드한 다음 b 를 빌드하면 그냥 b 만 남게 된다. 두개 다 두고 싶은데 어떡하면 좋을까! 하다가 AndroidManifest.xml 의 package 속성의 값이 같은 것을 확인했다. Package android 앱의 전체 자바 언어 스타일 패키지 이름 속성의 사용처 앱의 생성된 자바 클래스용 네임스페이스로 이 이름을 적용함 ex. 패키지가 “com.cos.ssar” 이면 클래스 A 는 com.cos.ssar.A 에 생성되는 것 매니페스트 파일에 선언되는 상태 클래스 이름을 확인하는데 이 이름을 사용 ex. 패키지 이름이 위와 같다면 로 선언된 액티비티가 com.cos.ssar.MainAct..

    [Android] 앱 로고 (앱 아이콘) 생성하기

    해당 글을 참고하여 작성하였습니다 안드로이드 Adaptive icon 적용하기 “이 포스트는 2018년 1월 원티드 제품블로그 글을 재구성한 내용입니다.” medium.com drawable > new > Image Asset mipmap-anydpi-v26/ic_launcher_img.xml anydpi-v26 폴더에는 foreground, background 가 정의된 vector 리소스가 추가된다. anydpi-v26 : 26버전부터 지원하고, 어느 dpi에 상관없이 동작이 가능함을 의미 foreground, background 두 개의 VectorDrawable 리소스 생성 생성된 리소스 중 서비스 정책에 맞는 리소스를 그대로 사용하면 된다. background 리소스의 경우 Asset Type ..