본문 바로가기

전체 글

(258)
실질적인 안드로이드 디자인 안드로이드 어플리케이션은 개발 설계 과정뿐만 아니라 디자인이 굉장히 중요하다. 디자인으로 인해 앱의 품질이 좌우 되기때문이다. 이렇게 디자인적인 요소로 고객 이탈을 최소화 하는데 도움이 되는 몇가지 구체적인 단계를 적어 보겠다. 리소스 분할을 통한 디자인 크게 4가지의 스크린으로 리소스 분할을 할 수 있다.일반적인 폰5인치 이상의 폰7인치 이상의 테블릿10인치 이상의 테블릿 4가지의 그룹을 나누고 각각의 스크린에 따라 디자인하게되면 최적의 결과를 제공한다. 네이밍 규칙 안드로이드 리소스 네이밍 규칙에 대해 알고 있다면 디자인시 많은 도움이 된다. drawable-hdpidrawable-xhdpi 이미지 리소스를 만들때, 각 폴더에 적절한 이미지를 넣으면된다. 예를 들어 어플리케이션 아이콘을 만든다면 해상..
안드로이드 주요기기 해상도 정보 Samsung Galaxy S II 800 x 480 px (533 x 320 dp) / hdpi / Normal screen Portrait Details No navigation bar found Title bar height:38 px (25 dp) Status bar height:38 px (25 dp) Content View:724 x 480 px (482 x 320 dp) Landscape Details No navigation bar found Title bar height:38 px (25 dp) Status bar height:38 px (25 dp) Content View:404 x 800 px (269 x 533 dp) Samsung Galaxy S III 1280 x 720 px (..
안드로이드 PullToRefresh 오픈소스 2가지의 구현방식 안드로이드의 새로고침 View중 가장 흔하게 쓰이는 것은 Chris Banes가 오픈소스로 공개한 PullToRefresh이다. 현재 지원이중단된 Android-PullToRefresh와 새롭게 만든 ActionBar-PullToRefresh 2가지의 종류로 구분된다. Android-PullToRefresh의 구현 방식 ListView에 Layout을 한번더 감싸서 터치이벤트에 대한 처리를 통해 새로고침 콜백을 처리 하는 방식으로 각각의 스크롤되는 View에 대해 새로고침 View를 구현했다. ActionBar-PullToRefresh의 구현방식 Layout의 터치이벤트에 대한 새로고침 상태를 콜백(delegate) 해주는 방식이다. PullToRefreshLayout을 통해 내부에 스크롤되는 뷰가 있다..
Mac 프로그램을 쉽게 삭제하자. - AppCleaner Mac에서 프로그램을 삭제 하려면 Launchpad를 통해서 삭제가 가능한데, 프로그램별로 삭제가 가능한것과 불가능 한것이 있어 삭제를 못하는 경우가 있다. AppCleaner 프로그램을 이용하면 설치했던 프로그램뿐만 아니라 기본 프로그램도 삭제가 가능하다. http://www.freemacsoft.net/appcleaner/ 여기에서 AppCleaner를 다운 받는다. 받은 후 실행 후 Application을 누르면 아래와 같은 화면이 열리는데, 여기서 삭제 하고 싶은 프로그램을 체크한 후 하단에 Search버튼을 누른다. (기본 프로그램은 비활성화 된것 처럼 보이는데, 체크박스를 더블 클릭하면 체크된다.) Search버튼을 누르면 관련된 프로그램의 파일을 검색 해주는데, 하단에 Delete버튼을 누르..
Android Studio Project is using an old version of the Android Gradle plug-in Error Android Studio 0.4.0으로 업데이트 되면서 이전에 만들었던 프로젝트를 불러 오려면 다음과 같은 오류가 발생한다. Project is using an old version of the Android Gradle plug-in. The minimum supported version is 0.7.0. Please update the version of the dependency 'com.android.tools.build:gradle' in your build.gradle files. 해결책: Gradle Plugin 0.7.0과 gradle-wrapper 1.9로 사용하도록 변경하면된다. build.gradle 파일 buildscript { repositories { mavenCentral()..
블로그를 안드로이드 앱으로 만들다. 블로그를 바로 접속 할수 있는 안드로이드 앱을 만들었습니다. WebView를 이용해서 웹페이지를 띄우도록 작업했는데, 만드는데 4시간 정도 걸린것 같네요. 재미요소를 주기위해 로딩할때와 하단메뉴가 나타날때 바운딩되는 애니메이션을 개발하는데 시간이 많이 걸린것 같습니다. 큰 부가적인 기능은 아직없고, 앞으로 조금씩 추가 해나가야 할것 같습니다. 아직 손좀 봐야 할 부분이 있지만 반응형웹으로 만들어 놓았기 때문이 간단하게 만들 수 있었습니다. 그리고 하단 메뉴 버튼을 추가 해서 부가적인 페이지로 이동할 수 있는 기능도 추가 했습니다. 반응형 웹을 앱으로 만들시 장점: - 지속적인 방문 유입 유도 - 제한된 웹보다 다양한 기능 추가가능 파워블로그의 경우 앱으로 개발한다면 좀 더 다양한 경험을 줄 수 있고, 지..
Android Dumpsys gfxinfo를 이용한 프레임 측정 안드로이드의 화면 프레임 성능을 측정할 수 있는 툴이 Jelly Bean(4.2.2) 개발자 옵션에 추가되었다. 이것을 통해서 화면에 얼마나 부드럽게 끊기지 않게 매끄럽게 그려지고 있는지에 대해 측정 할 수있다. (4.3부터는 화면에 실시간으로 직접 보여주는 기능도 추가되었다.) #>adb shell dumpsys gfxinfo 패키지명 쉘스크립트 명령을 통해서 현재 실행되고 있는 앱의 프레임을 측정 할 수 있다. 아래와 같이 명령을 통해 앱의 프레임 상태를 덤프뜬것이다. ~ kmshack$ adb shell dumpsys gfxinfo com.kmshack.BusanBus Applications Graphics Acceleration Info: Uptime: 382691 Realtime: 382691 ..
안드로이드 웹뷰에서 안드로이드 네이티브 코드 액세스 안드로이드 앱에서 웹뷰를 사용할 경우 네이티브 코드를 호출 해야 하는 경우들이 있다. 예를 들어 웹뷰에서 어떤 값을 입력받아 서버에서 시간이 오래걸리는 연산이 필요한경우 웹뷰 화면을 멍하게 내버려 두면 사용자입장으로선 상태가 진행되고 있는지 알 수가 없다. 그럴 경우 네이티브의 ProgressDialog 띄우면 좋을 것이다. 이를 위해 웹뷰에서 네이티브코드를 실행 하는 방법을 알아보자. 이렇게 네이티브 메소드를 콜하기 위해서는 WebView의 JavascriptInterface Class를 구현하면 된다. 구현한 name과 method이름을 html에서 Javascript를 통해 호출 가능하다. JavaScriptInterface Class구현 public class JavaScriptInterface ..