전체 92

android studio xml tab spacing

나는 안드로이드 xml을 아직도 코드로 작업하는 습관이 남아 있기에 layout을 깔끔하게 맞추는 걸 선호한다. New Project를 생성하면 tab spacing이 초기값으로 설정되는지 따닥따닥 붙어 있는게 보기 좋지 않다. 따라서 아래의 값으로 맞춰서 작업한다. Mac OS에서 Android Studio를 사용하는 경우에는 Preferences > Appearance & Behavior > Editor > Code Style > XML Tab size : 4 Indent : 4 Continuation indent : 8

android 2020.11.17

[centos] adduser, sudo 권한 부여 (계정 추가하기)

리눅스로 서버를 관리할 때, root 계정으로 직접 관리하는 경우는 거의 없다. 다른 계정에 sudo 권한을 부여하고 관리하는게 일반적이다. 따라서 다른 계정이 없을 경우 root로 접속한 뒤, 아래처럼 계정을 생성한다. # user 추가 $ adduser your_user_name # 비밀번호 설정 $ passwd your_user_name centos에서는 wheel group의 멤버가 sudo 권한을 가지기 때문에 your_user_name 사용자를 wheel group에 추가한다. $ usermod -aG wheel your_user_name vi 에디터로 /etc/sudoers을 열어 수정한다. ## Same thing without a password # %wheel ALL=(ALL) NOPA..

linux 2020.11.17

[android] 안드로이드 웹뷰 로컬 스토리지 사용하기 옵션 (webview local storage)

최근 하이브리드 웹앱 개발을 지원해 주는 역할을 하고 있는데 웹 개발자로부터 로컬 스토리지를 사용할 수 있냐는 질문에, 알아보니 webView 옵션 중에서 domStorageEnabled 값을 true 변경해야 한다. 기본적으로 false값으로 설정이 되어 있기 때문에 적용하지 않으면 사용이 불가하다. 코틀린 코드 기준으로 webView.settings.domStorageEnabled = true 이렇게 코드 한 줄만 넣어주면 끝.

android 2020.11.10

[kotlin] 코틀린 null 처리 (.let)

예전에 C 또는 Java로 프로그래밍을 할때, NULL 처리를 하기 위해서 if문으로 감싸거나 try catch 구문을 이용하여 NullPointerException에 대한 방어처리를 했다. 하지만 kotlin 구문 중 .let을 이용하면 조금 편하게 코드를 구현 할 수가 있다. var testStr: String? = null testStr = "null 체크" // 과거 코드 방식 if(testStr != null) { var len = testStr.length() } // 코틀린 null 처리 방법 testStr?.let{ it: String var len = it.length() }

android 2020.10.16

[android] 안드로이드 AES256 암호화 복호화 (feat. java)

암호화 방식이 많이 있지만, 자주 사용하는 방식중에 하나인 AES256 이다. [code] public class AES256Util { private String iv; private Key keySpec; public AES256Util(String key) throws UnsupportedEncodingException { this.iv = key.substring(0, 16); byte[] keyBytes = new byte[16]; byte[] b = key.getBytes("UTF-8"); int len = b.length; if (len > keyBytes.length) { len = keyBytes.length; } System.arraycopy(b, 0, keyBytes, 0, len);..

android 2020.08.11

[kotlin] android EncryptedSharedPreferences example

전화번호나 비밀번호 등 민감한 개인정보를 로컬에 저장하기 위해서는 상용화 되어 있는 AES256이나 MD5같은 암호화 알고리즘 함수를 사용하여 SharedPreferences로 저장하거나 sqlite 또는 realm 등 로컬 db에 저장하고 꺼내오면서 사용을 했었다. 하지만 이제 그럴 필요없이 "암호화 + SharedPreferences 저장"을 한방에 해결할 수 있는 방법이 제공되었다.(제공된지 좀 되긴 했지만 ...) developer android의 내용을 먼저 읽어보길 바란다. EncryptedSharedPreferences | Android 개발자 | Android Developers EncryptedSharedPreferences public final class EncryptedSharedP..

android 2020.08.10

[kotlin] 안드로이드 코틀린 두 날짜 차이 계산

'현재 지금 시각'을 기준으로 날짜 차이를 계산하는 방법이다. 예를 들어 지금 시각 today값이 2020-06-16 13:11:10 일때, 1. sampleDate값이 2020-06-14 10:12:14 라면 "2일 차이남!!" 2. sampleDate값이 2020-06-14 15:12:14 라면 "1일 차이남!!" var sampleDate = "2020-06-14 10:12:14" var sf = SimpleDateFormat("yyyy-MM-dd HH:mm:ss") var date = sf.parse(sampleDate) var today = Calendar.getInstance() var calcuDate = (today.time.time - date.time) / (60 * 60 * 24 * ..

android 2020.08.08