2011년 11월 28일 월요일

Ubuntu 에서 iPhone 싱크를 쉽게..

사실 우분투에만 국한된거는 아닐테고...리눅스에 전반적인 얘기일 듯 싶은데...
몇일 전 우분투에서 아이폰 마운트에 관련된 글을 아주 간단하게 썼는데... 이를 이용해서 유용하게 한건 써먹었다.

아이폰을 구매한지 얼마 되지 않아서 iTunes라는 별로 좋지 않은(개인적인 소견임) 어플리케이션을 초보적으로 사용하면서 삽질을 하고 있는데... 벨소리 및 문자 수신 소리를 바꾸고 싶어 구글링을 열심히 해서 겨우 바궜다.
근데, 문자 수신 소리가 맘에 안들어서 바꾸려고 하니... 물리적으로 소리를 삭제해버리니 동기화에 문제가 생겨 절대로 지워지지 않는거였다.

바로 여기에 원하지 않는 소리가...

이걸 초기화해 말어.. 하고 고민은 하다가 뭐 별로 노출되지도 않는거니 그냥 놔뒀는데... 우분투에서 아이폰 마운트를 하고 나니, 이놈이 폴더 채 보이는것 아닌가?

이 폴더로 가서 삭제하면 된다.


근데 이놈이 어떤짓을 할지 몰라 조심스럽게 지웠는데... ㅋㅋ 사라져 버렸다.

블로그나 사용자 사이트에 가면 동기화한 파일을 잘 보관해야 한다는 둥... 여러가지 말들만 있고... 못찾아서 그런건지 실제적으로 나처럼 되었을 때 삭제해주는 방법이 없던데...

이런 케이스가 발생할 때 우분투 하나쯤 깔아두면 좋지 않을까 생각!

WinCalc7 1.2 업그레이드

금일 간만에 WinCalc7을 1.2로 업그레이드 했다.

주된 내용은

1. 진동 On/Off 기능 추가
2. NumberFormatException 수정

인데... 기능 추가야 그렇다 치고 NumberFormatException 은 발생 안하던데... 오류 리포트가 되어 있어 일단 try..catch로 묶고 오류 표시를 하게끔 했다.

앞으로 해야할 것들이 꽤 보이는데... 공학용 계산기와 광고 제거용 인앱 추가로... 버전 2.x로 넘어가기 전에 히스토리 기능 하나를 추가할 계획이다.

히스토리가... 난 별로 의미를 두지 않았는데 옆에 부하직원이 히스토리 잘 쓴다고 하더라...
업데이트 하니깐 노출이 많이 되서 그런지 수익도 늘던데...ㅎㅎ.. 너무 자주 하면 사용자들한테 욕먹을테고... 적당한 선에서 해야할듯

여튼...

2011년 11월 27일 일요일

FlashLight(플래시 라이트) for Android

두번째 마이앱... 플래시 라이트...

그야말로 아주 간단한 플래시 앱이다.
스위치 누르면 플래시 켜지고... 꺼지고.. 하는게 기능의 전부...


그런데 간단히 개발을 하고 테스트 하려는데... 사무실에다가 기변하고 반납하지 않은 유일한 안드로이드 테스트 폰을 두고 왔다.
그래서... 처제 폰으로 테스트를 하니...플래시가 나오질 않더라... 이유는 그야말로 단순하게도 폰에 플래시가 없었던 것... 아.. 정말 머 이런 폰이 다 있나 싶긴한데... (참고로 해당 폰은 갤럭시 S 호핀)
덕분에 테스트는 잘 해서 그림에서의 3번째 화면처럼 LED를 켜는 모드를 만들었다.

조건은 1. 플래시가 없거나, 2. 플래시에서 TORCH 모드가 지원되지 않을 경우에 제일 오른쪽 화면처럼 되게 만들었다.

아마 하드웨어를 이용하는 앱이라 보도 듣도 못한 폰들에 대해 오류 리포트가 쏟아질 듯...
근데... 일단 많이 받아줘야 쏟아지지..-_-;;

저번과 마찬가지로 QR코드도 찍어 봤다.

FlashLight for Android

안드로이드에서 버튼 눌릴 때 진동 주는 방법

어제 와이프하고 치맥을 하고 있는데 아이폰으로 메일이 왔다.
보통 그 시간에 오면 스팸메일이라 확인을 하지 않는데...

아침에 확인해보니 WinCalc7에서 버튼 누를 때 진동을 어떻게 했냐는.... 사용자이자 개발자에게 첫 피드백이 온것이다...ㅎㅎ

머.. WinCalc7는 죽을 쑤고 있지만...(그래도 계산기라는것이 스태디 셀러니깐... 나중에 공학용이라도 업그레이드 하면..) 그래도 반가운 마음에... 바로 답장을 하고 싶었지만... 결혼식 땜에 대전까지 다녀오느라고... 밤에서야 답장을 했다.

혹시나 다른 모르시는 분들을 위해 남기자면....
뭔가 특별한 방법이 있는게 아니라... 그야말로 단순한 방법이다.

1. Manifest에 진동 퍼미션을 건다.


<uses-permission android:name="android.permission.VIBRATE"/>



2. 버튼 클릭 이벤트 핸들링 함수에 진동을 추가한다. 개인적인 취향이 있겠지만 HTC 디자이어에서 40ms 정도면 딱 적당한듯 싶다. 버튼이니깐 보통 OnClick 함수일 듯...


public void onClick(View view) 
{
    Vibrator vibe = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);
    vibe.vibrate(40);
    ....

안드로이드 뿐만이 아니라 아이폰이나.. 기타 다른 디바이스에서 구현한다고 하더라도 같은 방법으로 구현했을 것이다....
단순하게 살자...ㅎㅎㅎ

2011년 11월 25일 금요일

iPhone을 Ubuntu 11.10에 마운트 하기

오늘 오랜만에 넷북을 꺼냈다. 2년정도 된듯..
그리고 주저없이 우분투를 깔았다.

아이폰을 연결했는데 마운트에 실패했다고 하더라...
얼른 구글링을 했다.

아이폰 연결한 상태에서


sudo apt-get install libimobiledevice-utils;idevicepair unpair && idevicepair pair

하면 된다.

근데 새로운 우분투 왠지 MacOS를 닮아가는듯...

2011년 11월 21일 월요일

차트 컨트롤과 뷰 커스터마이징

증권계통일을 많이하다보니 차트도 만들게 된다. 만들게 된다기 보다는 매번 프로젝트마다 고객사의 입맛에 맞게 차트를 수정해야 하는 일이 생기는데...
사실 GVM 시절부터 차트를 만들어오던 터라 그냥 만드는데 익숙해져 있다. 

이번에도 모 증권사에서 안드로이드용 앱을 새로 만드는데 기존에 만든 아이폰 차트와 동일하게 해달라는 바람에 거의 새로 만들었다.
머... 중요한거는 그게 아니고 컨트롤 혹은 뷰를 커스터마이징 하는데에 있어 예전처럼 완전 맨땅에 헤딩하는것도 아니고 View 혹은 아이폰 같은 경우 UIView를 상속받아 그림만 그려주면 되는데... 
왜! 다들 못해서 그런건지 하기 싫어서 그런건지 손도 댈 생각을 안하는지 모르겠다.

차트에 국한된 문제가 아니고... 컨트롤이나 레이아웃을 조합해서 커스터마이징하는건 해도... 선그리고 사각형 그리고 해서 만드는 오너 드로잉 컨트롤은 손도 안대려고 한다.
 아이폰이나 안드로이드의 컨트롤 시스템이 너무 잘 되있어서 개발자들의 버릇이 나쁘게 드는것 같은 생각이...
 아래 화면은 이전 소스에서 참고하긴 했지만 하루만에 만든 차트... 플리킹 스크롤 및 확대... 꾹.. 누르고 있으면 해당일자의 상세 내용도 보여주고.... 보조지표도 10개정도 있는.... 가로모드도 지원되고... 하루만에 만들었다. 내가 잘해서 그런것도 아닌데....


xml에서도 섞어 사용하려면 모든 생성자를 다 만들자. (사실 두번째를 만들면 xml에서 사용할 수 있다.)오너 드로잉 컨트롤을 만드는건... 사실 회사 제품만 아니면 위 소스를 공개해버리고 싶지만.. 생각보다 단순하다.
일단 클래스를 하나 만들고 View를 상속 받는다. 그러면 생성자 없으니 만들라고 할 것이다.
생성자 만들고... Paint 객체 하나 만들고 onDraw 상속받아 그림그리고, onTouchEvent 상속받아 조작 처리하면 된다. 지금 맥을 안가지고 나와서 아이폰을 자세히 설명할 수는 없지만 아이폰도 대동소이하다.

더 궁금하면 구글에서 ... android View 상속, 내지는 View 커스터마이징... 등 찾아보면 수두룩한 자료가 나온다. 
저런 글 쓰는 사람들 찾아서 좀 데리고와 일시켜야 겠다... ㅎ


2011년 11월 20일 일요일

애드몹 라이브러리와 허니콤(3.2)과 워닝

어느덧 개발하면서 벌어먹고 산지 만 11년이 넘었다.
이런 저런 여러 플랫폼을 하다 보니 생긴 벌이라고는 중괄호"{" 내리기와 워닝 없애기..등 여러가지 버릇들이 생겼는데, 그 중 워닝에 대해서는 자신 뿐만이 아니라 아래 개발자들에게도 엄하게 하는 편이다.
대부분의 워닝은 지역변수를 사용하지 않았다던지 쓸모없는 클래스를 임포트해서 생기기는 하지만 런타임 에러를 유발할수 있는 워닝이 그런것들하고 섞여 버리면 무심코 지나칠 수도 있기 때문이다.
그래서 최근 몇년동안의 메인 프로그래머가 돼서 직접 진행한 프로젝트들의 배포소스에는 워닝이 하나도 없었는데 이번에 결국... 그것도 개인 프로젝트를 하면서 타의적으로 워닝을 다발로 만들고 말았다.
이유는 애드몹... 대부분 배포를 생각하는 개발자들은 보다 많은 사용자들이 사용을 할 수 있게 하기 위해 최소버전에서 개발을 한다. 근데 현재 배포하는 라이브러리(GoogleAdMobAdsSdk-4.3.1.jar)는 어이없게도 허니콤(3.2)에서 컴파일하게끔 만들었는데...

Manifest에서...

<uses-sdk android:minsdkversion="7"/>

로 하고 타겟만 아래 그림처럼


하면 2.1에서도 잘 돌긴 하지만...
타켓은 13인데 최소버전은 7이라고 일단 워닝 한번 뱉으시고...

클립보드 기능 사용했더니 android.text.ClipboardManager가 Deprecate 됐다고 또 뱉어주시고.. 결국은 워닝이 12개가 찍혔다...

타겟을 2.1로 한다고 하더라도 소스상에서 컴파일이 안되는건 아니지만... 빌어먹을 Manifest에서 configChange 중 screenLayout|uiMode|screenSize|smallestScreenSize를 인식 못해 configChange 제대로 쓰라고 오류 나오더라....

여튼... 허니콤 몇명이나 쓴다고 사정 뻔히 알면서 저런식으로 만든 구글... 짜증난다.

2011년 11월 19일 토요일

QR코드 생성

한 때 업계에서 QR코드 땜에 너무 떠들썩 했던적이 있다.
주로 일하는 분야는 증권사쪽인데 증권사에서도 QR코드나 증강현실을 어떻게하면 도입할 수 있을까 했으니 말이다...

사회적인 관심을 받다가 보니 나도 먼가 한두번 살펴봤고... 주위의 사람들도 그게 먼지 물어보기도 하고... 지금은 먼지 대부분의 사람들이 알긴 하지만 말이다...

최근에 WinCalc7을 만들고 몇일 후에 구글에서 WinCalc7로 검색을 했더니만... 아마도 마켓의 html을 파싱하여 자동으로 앱소개를 하는 사이트들 인것 같던데... 그중에 하나가 내 앱에 대한 QR코드를 생성해서 보여주고 있었다.

근데 찍어보니 일단 자기네 사이트를 접속한 다음 리다이렉션으로 마켓으로 연결하는 것 같은데... 여튼 다이렉으로 가는 QR코드를 만들어야겠다고 생각하고 구글에서 "QR코드 생성"을 검색하니 쉽게 할 수 있는 사이트들이 많이 나오더라...

내가 이용한 사이트는 먼가의 회사 사이트인것 같은데

http://www.scany.net/kr/generator/

덕지덕지 광고나 플래시등이 없어서 사용하기 좋은것 같아 주소를 올려본다...

그나저나 얼마전에 장인어른께서 윈도우즈용 QR코드 및 바코드 생성 어플리케이션가지고 고생하시던데... 이런거 그때 검색해드렸다면 좋았을텐데...ㅎㅎ


2011년 11월 17일 목요일

Wincalc7(윈도우7 계산기) for Android

여지까지 수 많은(?) 남의 앱을 개발해주다가 처음으로 자신의 앱을 만들었다.
기획자도 아니고 하니.. 일단 간단한 계산기 부터...
윈도우즈 7에 있는 계산기의 클론이다.

 

범위는 표준모드에 히스토리 기능을 제외한 표준모드...
만들고 보니 클래스 2개(액티비티와 계산기 엔진)가 끝... 용량도 90K 남짓.

WinCalc7 for Android


다운로드 가능한 QR 코드도 생성해봤다. 물론 안드로이드에서 해야한다.
클론답게 만드려고... 아래처럼 삽질도 했다.
(1) 계산기 엔진을 만들면서... 연산자 우선순위 다 무시했다. PC에서 하나씩 다 눌러보면서 이식한 거라 윈도우 표준 계산기가 가지고 있는 문제점들도 그대로 이식됐다.(완벽하지는 않을 듯...)
(2) 안드로이드에 있는 멀정한 컨텍스트 메뉴를 놔두고 오른쪽 이미지 처럼 구린 윈도우의 팝업메뉴를 따라해봤다. 누르는데 공간을 늘린다고 하긴 했는데 좁아서 잘못 눌리는 경우가 있다.

머.. 그래도 기껏해야 시작해서 등록할때 까지 10시간 정도 걸린거라... 삽질한게 억울하지는 않다.
주말에는 아이폰도 만들예정... 근데 윈도 계산기라고 애플에서 리젝 주지는 않을지...