버스노선 검색 시스템 공공 데이터를 이용하여 버스 정보를 받아와 브라우저위에 뿌려주는 시스템으로 스프링 프레임워크와 네이버 지도 API를 사용하였다. 공공 데이터는 데이터는 컨트롤러 단에서 URL을 통하여 받아온 XML 값을 XPath를 통해 파싱하여 사용하였다. 기능은 지역별 검색, 노선별 검색, 정류장별 검색이 있고 노선정보,버스정보, 버스도착시간등을 제공한다. 몇가지 아쉬운점이 있는데 노선검색의 왼쪽 영역에 현재 버스의 위치를 나타내는 기능을 만들지 못하였다. 제일 마지막에 만들려고 미뤄둔 기능인데 막바지에 일이 바빠지면서 프로젝트에 손을 놓게 되었고 어느순간 나의기억 저멀리.... 그래서 프로젝트 마무리가 흐지부지 하게 되었고 완성도와 디자인이 아쉽게 됐다. **노선 검색(전체노선) **노선 검색(부분노선) **지역 .. 더보기 [얼굴 운동] 10년 어려지는 얼굴 운동 + 개구리 뒷다리 요즘들어 부쩍 관리해야겠단 생각이 많이든다.하루종일 멍때리면서 모니터를 봐서 그런지 얼굴이 흘러내리는 느낌도 종종들고 팔자주름도 한층 깊어졌다.... 한때 페북에서 한창 인기를 끌던 얼굴 어려지는 운동과 개구리 뒷다리~ 로 유명한 스펀지의 웃는얼굴 만들기 동영상이다.자기전 하루 30분만 투자해보자! 개발자는 관리안한다는 편견을 내가 깨버리겠어. 1. 얼굴 어려지는 운동 2. 개구리 뒷다리 더보기 19-1. 마켓 ※ 앱 서명 - 앱의 마켓에 등록하기 위해서는 보안상의 이유로 앱을 서명해야 한다. - 앱마다 고유한 키값을 줘 다른 개발자가 나의 앱을 덮어쓰면서 배포하지 못하게함. - 키는 분실하면 추후 앱 업데이트가 안되기 때문에 키값이 들어있는 파일을 잘 관리해야된다. 마켓에 올리려는 프로젝트 Export Export Android Application 클릭 후 next Project Checks 에서 프로젝트 확인하고 next Keystore selection (보안키) 에서 보안키를 저장할 위치와 비밀번호를 입력한 후 next Key Creation 에서 별명(alias), 비밀번호, 키유지기간(Validty (year))을 입력해주고 나머지 정보를 입력 후 next Destination and key/cer.. 더보기 18-1. 네트워크 ※ HttpURLConnection - url을 통해 데이터를 읽어온다. - 메인스레드가 아닌 별도의 스레드를 만들어 그 부분에서 데이터 다운로드가 작동되도록 한다. 메인스레드에서는 사용자와의 교감을 지속적으로 해줘야함. - URL 객체를 만들고 URL Connection을 만들어 인터넷에 연결한다. - Stream을 통하여 이미지, 문자열을 받아온다. MainActivity public class MainActivity extends Activity { String urlAddr = "http://www.sba.seoul.kr"; Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedIn.. 더보기 17-1. 맵 ※ 맵을 이용하기 위한 설정 - 구글맵을 이용하기 위해서는 인증을 포함한 몇 가지 설정을 해야 한다. - 인증방법 Eclipse 실행 -> Widnow메뉴 -> Preferences -> Android -> Build -> SHA1 fingerprint의 값을 구글서버에 등록해야 하므로 복사한다. 구글서버 주소는 http://code.google.com/apis/console 이다. 위의 주소에 접속하여 Google Map Android API 클릭 API 키 생성 Eclipse로 돌아와 SDK Manager 실행 Extras의 Google play service 설치 or 업데이트 import -> Android의 Existing Android Code Into Workspace 선택 AppData폴더.. 더보기 16-1. 데이터 베이스 ※ SQLite - 안드로이드에서는 SQLite라는 경량급의 DB를 사용한다. 작은 디바이스에 최적회된 RDB로 기본적으로 안드로이드 프레임워크에 포함되어 있기 때문에 별도의 설치없이 사용할 수 있다. - 데이터베이스를 사용할 때 DDMS에서는 에뮬레이터의 데이터만 볼 수 있다. 왜냐하면 핸드폰의 데이터베이스를 쉽게 읽을 수 있는것은 문제가 될 수 있기 때문이다. ※ SQLite 사용법 - SQLiteOpenHelper 를 상속받아 Helper클래스를 만들면 DB를 이용할 수 있다. - 상속받은 Helper클래스에선 Context, DB이름, 버전을 입력 받는다. - 상속받은 Helper클래스에서의 핵심 메소드 onCreate -> DB가 처음 생성 될 때 최초 한번만 실행 된다. 테이블 생성에 주로 이.. 더보기 15-1. 데이터 ※ Files 디렉토리를 이용한 I/O - 영구적으로 관리해야 하는 데이터가 있을 경우 안드로이드에서 제공하는 files 폴더를 이용하여 데이터 관리를 할 수 있다. - 오른쪽 위 + 버튼(open perspective)을 누른 후 DDMS 추가, 선택 후 File Explorer 에 들어가면 페키지명 > files 라는 폴더가 있다. 거기에 저장되어있다.(에뮬레이터 기준) ※ Resources를 이용한 데이터 처리 - 안드로이드 패키지 안에 있는 res 폴더 아래의 데이터를 소스코드안에서 읽어올수 있다. - 가저오는 법 InputStream 객체 생성 inputStream = getResources().open폴더이름Resources(R.id.파일이름) 을 통해 데이터를 가저옴 그 후 상황에 맞게 데이.. 더보기 14-1. 브로드캐스트 리시버 ※ 브로드캐스트 리시버란? - BroadCast를 받는 기능 - 시스템은 여러가지 상황에서 다양한 메세지를 방송한다(BroadCast). 예를 들어 베터리 부족, 전원 공급장치 변화 , 네트워크 환경 변화 등등.... 이러한 시스템 환경 변화에 따른 방송을 응용프로그램에서는 항상 참고하여 적절히 대응해야 한다. 응용프로그램에서 시스템의 방송에 귀를 기울이는 것을 BR(BroadCast Receiver)라고 한다. - 안드로이드 OS는 자신의 상태를 방송한다. 그때 응용프로그램(APP)에서 자신이 필요한 방송이 나왔을 때 그 상태에 맞게 응용프로그램을 변경 시켜줄 수 있다. 그 방송을 듣고 안듣고는 응용프로그램 마음이다. - 리시버 구현법은 2가지가 있다. 하지만 보통은 manifest.xml에 리시브를 .. 더보기 13-2. 스레드 ※ 루퍼(Looper) - 메세지를 핸들러에게 전달해 주는 기계 - 메인 스레드에는 루퍼가 존재하지만 새 스레드에는 루퍼가 존재하지 않는다. 그렇기 때문에 만약 새 스레드에서 핸들러를 사용하려면 루퍼를 구현해줘야 된다. 사진출처 : 서울위즈 앱 창업자를 위한 안드로이드 실무 동영상 ※ ANR & 메세지 큐를 이용한 작업 시간 조정 - 시간이 오래 걸리는 메소드를 수행할 때 메인쓰레드에서 작업을 실행하면 그 작업을 수행하는 동안 다른 작업을 할 수 없다. 그래서 작업 수행 시간을 연기하여 다른 기능들을 수행 할 수 있게한다. 이 기느은 sendMessageDeleyed를 통해 구현한다. ※ AsyncTask - 스레드를 사용자가 더 편히 사용할 수 있도록 만들어 놓은 객체 - 23강 스레드 3편 참조사진출.. 더보기 13-1. 스레드 ※ 멀티 스레드란? - 여러가지 일을 동시에 처리 할 수 있도록 해주는 것 - 실제로는 여러가지일을 동시에 하는 것이 아니라 여러가지 일을 왔다갔다 하면서 순서대로 해결하는 것이다. - 스레드에서는 UI 스레드에서만 UI를 컨트롤 할 수 있다. 그렇기 때문에 핸들러를 만들어서 핸들러를 통해 쓰레드에서 연산을 한 결과를 UI스레드로 보내여 UI를 컨트롤 한다. ※ 스레드를 만드는 법 스레드를 상속받아 만드는 법 (스레드를 상속받아 런 메소드를 재정의 해준다) private void startNum(){ mainNum ++; NewThread nt = new NewThread(); //해당 시스템이 죽으면 같이 스레도도 정지 시키기 위한 함수 nt.setDaemon(true); //run()메소드 호출 nt.. 더보기 12-2. 알람 ※ 알람의 종류 1회만 발생 주기적으로 발생(별도의 stop기능을 구현하지 않으면 지속적으로 울린다) ※ 구현 MainActivity public class MainActivity extends Activity { Button btnOneAlarm; Button btnCycleAlarm; Button btnStopAlarm; AlarmManager alarmManger; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnOneAlarm = (Button) findViewById(R.id.bt_start_.. 더보기 12-1. 노티(Notification)바 ※ Notification ? - 안드로이드 폰 최상단(상태바)에 표시되는 메시지 이다. 대표적으로 Message, Missed Call 등이 있다. 사진출처 : 서울위즈 앱 창업자를 위한 안드로이드 실무 동영상 ※ 구현 MainActivity public class MainActivity extends Activity { final static int NOTI_ID = 50; Button btnNoti; //Notification을 관리해준다. NotificationManager notiManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView.. 더보기 이전 1 ··· 9 10 11 12 13 14 15 16 다음 목록 더보기