안드로이드 웹뷰에 대해서 한번 정리했었는데요.. 안드로이드 웹뷰(WebView) 사용하기 안드로이드 웹뷰에서 뒤로가기 버튼 처리 - 웹페이지 리다이렉트 경우 웹에서 액티비티 호출하기 웹뷰를 사용하다보면 카카오링크와 같이 인텐트로 외부 앱을 모바일에서 실행하는 경우가 있습니다. 폰에 내장된 브라우저에서는 잘 되는데, 안드로이드 4.4. SDK부터 Chrominum 기반으로 웹뷰가 변경되면서 웹뷰에서 인텐트를 지원하지 않는 이슈가 있습니다. 인텐트를 지원하도록 WebViewClient를 상속한 함수에서 shouldOverrideUrlLoading 메소드를 다음과 같이 수정하면 됩니다. private class MyWebViewClient extends WebViewClient { public static f..
모바일에서 많이 사용하는 탭 스타일을 구성할 때, 안드로이드 5.0이후 Material Tab Design을 추천하고 있다. 안드로이드에서 Material Design은 직관적이면서 일관된 UI/UX를 제공하는 것을 말한다. 다시 말해 UI/UX의 일관성을 위해 구글이 제시한 가이드가 바로 Material Design이다. 탭 UI/UX와 관련된 샘플을 살펴보니 프래그먼트를 활용하여 탭 사이를 빠르게 이동하고, 좌우로 스와이프(Swipe)하는 기능을 제공하고 있다. 안드로이도 예제인 SlidingTabsBasic과 SlidingTabsColors를 다운 받아서 살펴보면 이해할 수 있을 것이다. 안드로이드 탭 스타일 SlidingTabsBasic을 기반으로 안드로이드 탭 구성을 살펴보도록 하자. 기본적으로..
안드로이드에서 웹뷰를 적용하는 강좌는 지난번에 올렸었다. 뒤로가기 버튼까지 처리를 했지만, 사용하다 보면 한가지 문제가 발생한다. 웹 페이지에서 다른 페이지로 이동한 후, 내부적으로 여러번 리다이렉트가 발생할 경우이다. 이때, 기존의 방식대로 뒤로가기 버튼을 처리하면 원하는대로 동작하지 않는다. 바로 이전 페이지로 이동하기 때문에 다시 현재 보고 있는 페이지로 돌아오게 되는 것이다. 이런 문제를 해결하기 위해서 다음과 같은 방식을 사용해봤다. 현재 URL을 변수에 저장하고 새로운 URL이 로딩되었는데 아직도 현재 URL이면 뒤로 이동하도록 처리하는 것이다. WebViewClient를 상속한 클래스의 shouldOverrideUrlLoading 함수에서 처리하면 된다. private class WebVie..
대부분의 앱은 처음 시작할 때 인트로 화면을 제공한다. 아이폰에서는 기본 이미지(Default.png)를 추가하거나 설정해 주고, 앱 론칭이 끝났을 때 실행되는 함수에서 일정시간만을 주는 다음 한줄 코드로 인트로 화면이 해결된다. [NSThread sleepForTimeInterval:3]; 하지만, 안드로이드에서는 인트로를 위한 별도의 기능을 제공해 주지 않는다. 그렇다고 인트로 화면을 전혀 제공해 줄 수 없는 것은 아니다. 인트로를 위한 액티비티를 하나 만들고, 앱이 실행될 때 해당 액티비티가 먼저 뜨도록 구성하면 된다. 그리고 일정 시간이 지나면 실제 처음 나오는 액티비티가 실행되도록 하면 된다. AndroidManifest.xml 파일 설정 먼저 처음 실행하는 액티비티가 인트로 화면이 되도록 An..
안드로이드 디자인과 관련한 책으로 안드로이드의 다양한 화면 크기의 특성에 맞춰 디자인하는 방식을 잘 설명하고 있다. 보통 개발자들은 기능에 집중해 UI 구성이나 디자인을 소홀히 하는 측면이 있다. 그러나 사용자가 맨 처음 접하는 것은 앱의 기능보다는 화면 디자인이 먼저이다. 당연히 UI 디자인이 앱의 첫 인상을 결정하게 될 것이다. 사람도 첫인상이 중요하듯이 앱도 첫인상이 계속 사용하느냐의 여부를 정하게 된다. 어쨋든 이런 관점에서 볼 때 박수레 님의 이 책은 상당히 유용하다. 개발자보다는 디자이너 관점에서 보면 더 좋을 것 같다. 48dp의 리듬이나 UI 설계, 레이아웃 등의 내용은 디자이너 뿐만 아니라 기획자, 개발자에게도 도움이 될 것 같다. 안드로이드 앱을 준비하고 있다면 한번쯤 봐야 하지 않을까..
슈퍼드로이드 카페 (http://cafe.daum.net/superdroid)의 박성근님이 쓴 안드로이드 책이다. 안드로이드 개발은 인터넷 여기저기에 많은 소스들이 있어 접근하기 쉽다. 그러나 안드로이드 개념과 구조를 잘 이해하지 못하면, 문제가 발생했을 때 해결하기 어려운 것도 사실이다. 그래서 인터넷의 단편적인 자료만 볼 것이 아니라, 전반적인 구조를 설명하는 개발서도 반드시 읽어야 한다고 생각한다. 이런 측면에서 볼 때, 이 책은 안드로이드의 기본 개념부터 활용까지 저자의 경험을 기반으로 잘 설명하고 있다. 처음부터 끝까지 읽어보면 안드로이드의 전체적인 개념이 잡히지 않을까 한다. 안드로이드 개발에 있어 꼭 참고해야 하는 부분이 주로 뒤부분에 있기 때문에 꼭 끝까지 읽어봤으면 한다. 개인적으로는 서..
안드로이드 스튜디오로 개발하는데 있어 기존 방식과 약간 다른 부분이 있어 해당 부분들을 정리해 보려고 한다. 앱 버전 및 SDK 버전 설정 예전에는 어플 버전을 설정하기 위해 manifest.xml 파일에 versionCode와 versionName을 지정하면 되었다. 또한 지원하는 안드로이드 버전을 설정하기 위해서는 use-sdk 태그에 minSdkVersion과 targetSdkVersion을 지정했다. 그러나 안드로이드 스튜디오에서 생성한 프로젝트는 아무리 manifest.xml을 수정해도 적용되지 않는다. 그 이유는 바로 Gradle Script가 우선 적용되기 때문이다. 위 그림에서 build.gradle이란 파일을 열어 보면 앱 버전이나 SDK 버전을 설정할 수 있는 스크립트가 있다. 바로 이..
안드로이드에서 웹서버로 통신할 때 주로 사용하는 포맷이 JSON이다. 웹에 접속해서 데이터를 가져오는 방식은 안드로이드 네트워크 연결하기 (Network On Main Thread Exception 처리) 을 참고하기 바란다. 이렇게 가져온 데이터가 JSON 타입일 경우, 안드로이드에서 이를 처리해서 배열에 저장해 보자. 웹에서 가져온 데이터를 JSONArray로 변환하고, For문을 중첩해서 돌리면서 각 항목의 값을 가져오는 것이다. 그리고 String[][] 2차원 배열에 가져온 값을 저장하는 형태로 매우 간단하다. 소스를 한번 살펴보자. try { JSONArray jArray = new JSONArray(result); String[] jsonName = {"name","age","exam"}; ..
안드로이드에서 네트워크 연결하기 위해 자바에서처럼 코딩하면 십중팔구는 다음과 같은 오류 메시지를 만난다. android.os.NetworkOnMainThreadException 메시지를 살펴보면 Main Thread에서 네트워크를 호출하면서 발생한 오류라고 나온다. 즉, 안드로이드에서 Main Thread에서는 네트워크 연결을 하지 못하도록 한 것이다. 아마도 안드로이드 앱에서 네트워크 호출하면서 에러가 발생한 것을 사용자들이 안드로이드의 오류로 인식하기 때문에 그런 듯 하다. AsyncTask 쓰레드 클래스 이해 그럼 안드로이드에서는 어떻게 네트워크에 연결할 수 있을까? AsyncTask라는 쓰레드 클래스를 상속받아 네트워크 연결하는 부분을 만들면 된다. AsyncTask는 상속시 3개의 Generic..
웹앱을 만들다보면, 웹에서 안드로이드 앱의 특정 액티비티를 호출해야 하는 경우가 종종 발생한다. 오늘은 HTML의 링크를 클릭했을 때, 안드로이드 액티비티를 호출하는 간단한 방식을 정리해 보도록 한다. 웹뷰를 작성하는 코드는 안드로이드 웹뷰(WebView) 사용하기 를 참고하기 바란다. 이 소스에 HTML 링크를 처리하는 부분을 추가할 것이기 때문이다. 웹에서 액티비티 호출 방식 웹에서는 HTML의 태그를 활용해서 액티비티를 호출한다. Call Activity 이런 형태로 호출하고, 안드로이드 액티비티에서 URL 로딩하는 부분에서 app://로 시작하는 것을 별도로 처리하면 된다. 필요에 따라서 app:// 이후 문자열을 가지고 특정 파라미터를 전달하는 형태도 가능할 것이다. 웹 HTML 소스 간단한 테..
- Total
- Today
- Yesterday
- 애플
- 도서
- 프로젝트
- java
- 안드로이드
- 분석
- 자바
- 맥
- HTML
- 모바일
- 하둡
- 마케팅
- r
- 책
- 클라우드
- Hadoop
- 아이폰
- mysql
- ms
- XML
- 구글
- 웹
- fingra.ph
- 빅데이터
- 자바스크립트
- SCORM
- 통계
- 세미나
- 디자인
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |