[Design Pattern] Strategy Pattern(전략 패턴) - 실행 중에 알고리즘을 선택할 수 있게 하는 디자인 패턴- 인터페이스를 하나 만들고 그 인터페이스를 위임받아 알고리즘을 가진 클래스를 구현한 후 필요할 때 해당 클래스의 객체를 생성하여 set하는 형태로 구현- 예제 설명 1. Player라는 클래스는 Food, Weapon이라는 인터페이스 객체를 가지고 있음 2. Apple, Meat, ArrowRoot는 Food라는 인터페이스를 위임받음 3. Bomb, IcedTuna는 Weapon이라는 인터페이스를 위임받음 4. Player 객체에서 Food와 Weapon을 변경하면서 해당 동작 수행하면서 확인 - 예제 : https://github.com/masonljh/design_pattern/tree/master/src/main/java/StrategyPa.. [Android] 안드로이드 스튜디오(Android Studio) 메모리 설정하기 맨 처음 안드로이드 스튜디오를 설치하고 나서 실행하면 메모리 할당량이 넉넉치 않다. 그래서 렉이 걸리거나 혹은 Out of Memory로 꺼지는 이슈가 있는데 다음과 같은 방식으로 해결할 수 있다. 1. [Help] -> [Edit Custom VM Options...]를 들어간다. 2. 다음 웹 페이지를 참고해서 수정한 후 저장한다. - 참고 : https://developer.android.com/studio/intro/studio-config?hl=ko 예시 : 최소, 최대 램 할당량만 수정한 경우-Xms1024m -Xmx4096m -XX:ReservedCodeCacheSize=240m -XX:+UseCompressedOops -Dfile.encoding=UTF-8 -XX:+UseConcMarkSw.. [Android] 웹뷰 onResume, onPause일 때 처리 전에 만들었던 웹앱이 있었는데 앱 자체가 내려가게 되어버렸다...... 이유는 백그라운드 상태일 때도 소리가 계속 나는 상황이었기 때문이었고 해당 처리는 Webview를 가지고 있는 activity의 onResume과 onPause에서 하면 된다. 12345678910111213@Overridepublic void onResume() { super.onResume(); webview.onResume(); webview.resumeTimers();} @Overridepublic void onPause() { super.onPause(); webview.onPause(); webview.pauseTimers();}cs [Git] gitignore 모음 https://github.com/github/gitignore 해당 링크를 타고 들어가면 각 언어 및 에디터에 맞는 gitignore를 확인할 수 있음 [Android] 커스텀 레이아웃 관련 라이브러리를 쓸 때 Prefix가 없다고 할 때 기존에 있던 프로젝트가 특정 레이아웃을 라이브러리로 만들어서 쓰고 있었는데 Lint를 통과하지 못했음에도 불구하고 빌드도 잘 되고 앱 실행도 잘 되는 특이한 현상이 있었다. 또한 수정하려고 봤더니 자동완성 기능은 이용할 수 없는 상태였고 그 특정 레이아웃 안에 있는 컴포넌트들은 똑같은 현상이 발생하였다. 일단 지금까지 발견한 해결책은 두 가지가 있는 것 같다. 1) tools:ignore="MissingPrefix"를 해당 뷰에 추가하는 것(Android Studio에서 바로 적용시켜줄 수 있는 방법)- 장점 : 2번보다 적용하기는 간단함- 단점 : 자동완성 기능을 이용하지 못함 2) v7 에 있는 View들을 사용하는 것(TextView -> AppCompatTextView 등등)- 장점 : 자동완성 .. [Android] HardCoding 되어있는 String 찾아내기(Lint 검사 결과) 기존에 있던 프로젝트가 구글에서 기본적으로 제공해주는 string.xml을 안 쓰고 지역화를 하고 있었다. 다행히 클래스로 묶여 있어서 그 부분에만 지역화 적용을 다시 했었는데 통수를 맞았다..... 하드코딩되어 있는 부분들이 꼭꼭 숨겨져있었다. 맨 처음에 ""으로 검색을 했었는데 내가 원하지 않은 하드코딩되지 않은 결과들도 나와서 방법을 찾아보니 다음과 같은 좋은 방법이 있었다. Android Studio의 경우 Lint라는 코드 스캔 도구를 통해 문제점을 체크해주는데 이 Lint 결과를 확인할 수 있는 기능이 있다. 1. [Analyze] -> [Inspect Code] 실행하기 2. Scope 정하기(Inspection Profile은 Custom하게 쓰고 있다면 그 Custom한 Profile로 .. [Android] 스크린샷 방지하고 싶을 때 Activity의 onCreate 부분에 다음 코드를 넣어주면 끝 getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE); [Naming Convention] Android Resource 관리(개인적) 여기에 적혀있는 것은 절대적인 것이 아닙니다. 개인적으로 정리해놓은 것이므로 그냥 참고를 하시거나 피드백을 해주시면 감사하겠습니다. 1. LayoutComponent Class Name Layout Name Activity UserProfileActivity activity_user_profile.xml Fragment SignUpFragment fragment_sign_up.xml Dialog ChangePasswordDialog dialog_change_password.xml AdapterView item item_person.xml Partial layout Partial layout for MainActivity content_main.xml 2. Strings__WHERE : 화면 이름 혹은 용.. 이전 1 ··· 5 6 7 8 9 다음