전체 글 411

Kotlin 코딩규칙 명명 규칙

패키지 이름은 항상 소문자이며 밑줄을 사용하지 않습니다. 여러 단어로 된 이름을 사용하는 것은 일반적으로 권장되지 않지만 여러 단어를 사용해야 하는 경우 함께 연결하거나 카멜 케이스를 사용할 수 있습니다.(org.example.myProject) 클래스와 객체의 이름은 대문자로 시작하고 카멜 케이스를 사용합니다. open class DeclarationProcessor{ /*...*/ } object EmptyDeclarationProcessor : DeclarationProcessor() { /*...*/ } 기능 명 함수, 속성 및 지역 변수의 이름은 소문자로 시작하고 카멜 케이스를 사용하고 밑줄은 사용하지 않습니다. fun processDeclarations() { /*...*/ } var decl..

코틀린 & Java 2021.07.07

유용한 plugin

유용한 plugin Fast-Scrolling : ctrl 누르고 스크롤시 빠르게 스크롤 됨. JSON To Kotlin Class : json을 긁어다가 넣으면(API 같은 것) kotlin data 클래스로 만들어줌. Rainbow Bracket : 괄호 등 색깔을 주어 코드를 보기 편하게 해줌. Nyan Progress Bar : 프로그래스바 스타일 변경 intellij-touch : 맥북의 터치바 커스텀 해줌. Background Image Plus : 안드로이드 스튜디오에 이미지 배경 넣을 수 있음

Kotlin 코딩규칙 소스 코드 구성

소스 코드 구성 디렉토리 구조 순수 Kotlin 프로젝트에서 권장 디렉터리 구조는 공통 루트 패키지가 생략 된 패키지 구조를 따릅니다. ex) 프로젝트의 모든 코드가 org.example.kotlin 패키지와 하위 패키지에 있는 경우 org.example.kotlin패키지가 포함 된 파일은 소스 루트 바로 아래에 배치해야 하며 파일은 소스 루트 org.example.kotlin.network.socket의 network/socket 하위 디렉토리에 있어야 합니다. 소스 파일 이름 Kotlin 파일에 단일 클래스(관련 최상위 수준 선언 포함)가 포함 된 경우 이름은 .kt확장자가 추가된 클래스 이름과 동일해야 합니다. 파일에 여러 클래스가 포함되어 있거나 최상위 선언만 포함 된 경우 포함에 포함된 내용을 ..

코틀린 & Java 2021.07.07

구글 번역 시트 (Android, IOS) 뽑아내기

Android, IOS 문구 관리를 찾다가. 구글 번역 시트를 통해서 파일을 뽑아내는것을 찾았다. 1. 구글 시트 작성 2. 도구 -> 스크립트 편집기 -> 소스 붙여 넣기 var appName = "AppName"; function onOpen() { var sheet = SpreadsheetApp.getActiveSpreadsheet(); var entries = [ { name : "리소스 생성", functionName : "exportResources" } ]; sheet.addMenu(appName, entries); }; // Export resources function function exportResources() { // Folders var appFolder = createOrGet..

Android registerForActivityResult

startActivityForResult(), onActivityResult() 가 deprecated 되었습니다. ActivityResult를 받기위한 Callback등록 1. A액티비티에서 할일은 registerForActivityResult함수를 사용해서 Callbak을 등록해주는 것 입니다. 인자로 들어가는 것은 ActivityResultContracts클래스의 Static함수들이다. Result를 받기 위해서 Activity를 실행하는 StartActivityForResult()함수를 넣어 줍니다. 람다식에는 result로 받아온 값을 어떻게 사용하는지 정의해 주면 됩니다. result객체를 이용하면, resultCode와 data에 접근할 수 있다. 2. 실행하는 액티비티 private lat..

안드로이드 2021.06.23

StorageScope 작업하면서 직면한 문제

* 사진 촬영 후 uri 받아온 것으로 File 변환시 lack 에러 남. : Uri lacks 'file' scheme: content://media/external/images/media/97 에러 참조 : python2.net/questions-163593.htm * Q이전과 Q이후 둘다 content: Uri이면 파일로 바꿀시에 lack 에러 남. - 파일을 카피해서 toFile로 해보았으나 그래도 lack? 에러가 남. : 전에 했던 프로젝트는 Crop라이브러리를 사용한 다음에 uri받은것을 toFile해서 되는듯(실제 확인) CROP result.uri : file:///data/user/0/com.kidsnote.examtarget/cache/cropped2279498036139754061...

안드로이드 2021.06.16

Android 11 분석

왜 사용자 정보 보호와 관련된 기능 및 변경사항이 매번 새 안드로이드 버전이 출시 될 때마다 추가 되고 되던 기능을 막는건가? - 개인정보 보호 관점에서 스마트 디바이스가 더욱 중요한 역할을 하고 있기 때문 사용자 정보 보호 원칙 - 최소한의 권한만 요청 - 필요할 때 권한 요청 - 사용자가 권한을 허용하지 않더라도 올바르게 처리 일회성 권한 -대표적인 변경사항 : 카메라, 마이크, 위치권한 Android 11에 이번만 허용이 추가되었음 (앱이 Foreground일 경우에만 허용) : 앱이 백그라운드에 진입 하면 시스템 내부에 타이머가 시작됩니다. 그 후 타이머가 만료되면 권한을 사용할 수 없습니다. 백그라운드 위치 권한 Android 10 : ACCESS_BACKGROUND_LOCATION 권한 필요 ..

Android Clean Architecture란?

Clean Architecture 사용 이유? Clean Architecture는 프레임 워크에 독립적입니다. Clean Architecture는 일부 기능이 포함된 라이브러리 (곧 프레임워크)에 의존하지 않습니다. 이를 통해 프레임워크의 제약에 시스템을 맞추는 것이 아니라, 시스템의 도구로써 프레임워크를 활용할 수 있게 합니다. Clean Architecture는 테스트를 용이하게 해줍니다. The business rules(Entity)를 테스트하는데에 외부 요소를 필요로 하지 않습니다. Clean Architecture는 UI에 독립적입니다. 다른 시스템 변경 없이, UI를 쉽게 변경할 수 있습니다. (UI 변경의 용이성을 줍니다.) 예들 들면, 웹 UI에서 Console UI로 변경한다 할때, T..

안드로이드 2021.05.27

SAF(Storage Access Framework)

SAF(Storage Access Framework)는 문서 및 이미지 등 각종 파일을 탐색하고 저장하는 작업을 간편하게 하려고 도입하였습니다. SAF의 특징은 다음과 같습니다. 디바이스에는 여러 프로바이더가 존재할 수 있습니다. 사용자는 프로바이더들이 제공하는 모든 파일을 탐색할 수 있습니다. 앱은 프로바이더가 제공하는 문서에 대한 접근 권한을 가질 수 있습니다. 이 접근 권한으로 앱은 파일을 추가, 편집, 저장 및 삭제할 수 있습니다. USB가 연결되었을 때 USB의 데이터를 제공하는 프로바이더도 있습니다. 필요한 권한 파일에 접근할 때 SAF는 권한을 요구하지 않습니다. 대신 Selector UI를 띄워 사용자가 앱이 파일에 접근할 수 있도록 허락해야 합니다. 파일 읽기 먼저 Selector 화면을..

안드로이드 2021.05.25