본문 바로가기

Log (Computer)/프로그래밍

스마트 TV에 필요할 만한 프로그램 개발 앞서 개발하게 된 이유나 구현방법등은 리모컨 앱 글에 적었으니 필요한 부분만 적겠다. 구현은 C#으로 하였고 플레이어는 검색하다 어디서 발견한 플레이어를 수정해서 제작해보았다. 프로그램은 정말 간단하다 제공되는 영상은 두개만 넣어놨는데 TV의 개념으로 봤을때 항목을 광고와 TV 프로그램으로 나누고 그 해당되는 것의 마지막 화면모드를 기억하고 있다가 바뀌면 그 모드로 바뀌는 구조를 갖는다. 이리 써노니까 쓰면서도 이해가 잘 안되긴 하지만 아무튼... 그냥 영상이 나오다가 리모컨 앱으로 연결을 시도하고 성공하게 되면 화면 모드를 컨트롤 할 수 있게되고 미리 저장해 놓았던 SNS 계정으로 자동 접속하게 된다. 이걸 구현하다가 미쳐버리는 줄 알았는데 하나의 계정만 등록해서 사용하면 자동 로그인이 가능하지만 여러.. 더보기
리모컨 앱 스마트 TV와 관련하여 요즘 여러가지로 화제가 되고있습니다. 그거와 관련하여 TV 시청과 동시에 SNS 를 이용할 수 있는 좀 더 좋은 프로그램이 없을까 하는 거에서 출발하여 스마트폰으로 컨트롤이 가능한 간단한 프로그램을 구현해 보았습니다. 리모컨 앱인데요. 스마트 TV 로 프로그래밍 하는 법도 모를뿐아니라 일단 이런식으로 구현하는거에 중점을 두어서 컴퓨터로 구현하게 되었습니다. 리모컨 앱의 구성은 간단히 화면 모드를 제어하는 버튼과 컴퓨터와 연결하는 버튼 각종 정보를 저장하는 설정 버튼으로 구성하였습니다. 컴퓨터와의 연결은 간단한 소켓으로 구현하였습니다. 접속하고자 하는 컴퓨터의 아이피 주소로 접속하게 됩니다. Facebook 이나 Twitter 아이디와 패스워드를 저장해 자동 로그인을 하게 합니다. .. 더보기
아이폰 앱 개발기 - 2 저번에 이어 완성된 앱에 대해서 올리는데요. 음 완성된지 거의 두달이 다 되어 가는거 같은데 이놈의 귀차니즘 때문에 이제야 올리는 거 같습니다. 원래 구현하고자 하는 것은 다 구현하였고 html 파싱도 해보았습니다. html 파서는 hpple 파서를 이용하였습니다. 이건 다른 블로그에 친절하게 나와있는것이 많으므로... 순위 란인데요 각 조별 순위는 페이지 컨트롤로 구현하였습니다. 4개의 페이지로 구성했고 팀명 승 무 패 득실 승점의 정보는 제 블로그에 있는 글에서 html 파서로 긁어와서 뿌려주게 됩니다. 골 랭킹과 어시시트 랭킹도 동일 합니다. 경기 결과 란인데요. 이 부분도 다 파싱으로 긁어올 수 있었지만 스코어를 제외한 다른 정보들은 디비를 사용해서 작성하였습니다. 스코어 부분만 인터넷에서 긁어와.. 더보기
아이폰 앱 개발기 - 1 3학년 2학기 수업중 모바일 프로그래밍 이라는 수업이 있습니다. 모바일 앱을 개발하는게 목적인데 챔피언스리그 소개 및 정보 전달이라는 주제를 가지고 앱을 제작하기로 했습니다. 일단 구성은 탭바를 기본으로 하는 정보 전달식의 앱으로 생각하고 진행했습니다. 일단 절반정도 완성되었는데 진행사항 입니다. 시작 화면입니다. 앱이 커질때 로딩 및 심심함을 없애기 위해 만들었습니다. 앱이 실행되는 맨 처음에 이미지가 뜨게 해주는 것인데요. 맥부기에서 참고하여 작성해봤습니다. 정말 친절하게 잘 작성해놓으셔서 사용했습니다. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { .. 더보기
아이폰 프로그래밍 스터디 예제5 방학 중에 하는 아이폰 스터디중에는 이번이 마지막이 될 거 같다. 이번에는 Sqlite을 좀 더 제대로 사용해보는 예제인데 대구육상선수권대회 경기일정을 디비로 제작하고 날짜별로 출력해주는 프로그램이다. 기본 메인은 탭바베이스로 출발하였고 테이블뷰에 날짜별로 목록을 띄어주었다. - Daegu 탭에 첫화면이다. - 날짜를 클릭하면 그날 경기가 시간별로 쭈욱 뜨게된다. 셀의 색깔은 남자경기는 파란색 여자경기는 빨간색으로 뜨게 하였다. 디비제작시 팁 보통 디비파일 생성 및 테이블 생성은 아래보이는 SQLite Database Browser 프로그램을 이용해서 만들고 그리고 내용입력은 아래와 같은 SQLite Manager 프로그램을 이용해서 제작하면 편리하게 제작가능하다. - 두번째 탭인 스타크래프트 유닛인데 .. 더보기
다익스트라 알고리즘을 이용한 지하철 최단경로 프로그램 전에 알고리즘에 올렸던 지하철 최단거리를 C언어로 구현해 보았습니다. 어떻게 구현할지에 대해서 생각이 되어있다보니 구현을 하기까지 그렇게 어렵지는 않았습니다. 일단 최단경로에 주로 쓰이는 다익스트라 알고리즘을 사용하였습니다. 하지만 이 프로그램에 메인은 지하철역간을 걸어가서 운동하는 시간을 추가하는 것인데요. 프로그램의 제목이기도한 30분 걷기라는 주제로 도착시간과 소요시간을 고려하여 어디부터 어디까지 걸어라는 식으로 표시하게 만들었습니다. 원래 시작은 버스로 구현하기로 하였지만 하고하고하던중 버스 구현에는 오랜 시간이 소모되고 능력이 약간 부족하여 일단 쉬운 지하철로 구현을 하게 되었습니다. dat 파일은 역간 소요시간 및 역간 거리 정보를 일일이 따왔습니다. 아래 소스 첨부합니다. 20171201 추.. 더보기
아이폰 프로그래밍 스터디 예제4 벌써 네번째다. 아직 못써본 기능들이 많지만 반이상은 써본 거 같다. 이번 예제에서는 전화번호부 앱인데 지금까지 해왔던 거와 크게 다르지 않다. 하지만 이번엔 데이터를 DB로 저장하는 방법을 택했다. sqlite3를 사용하여 구현하였다. 책을 보고 따라했기 때문에 책내용대로 하면 터미널로 DB 파일을 생성하고 Sqlite 에서 내용을 DB 에 테이블을 생성하고 인 서트 시키고 생성된 디비파일을 리소스에 추가시키는 코드를 구현하였다. 앱에 디비의 이름과 경로를 지정하여 사용하게 하는 메소드의 구현 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Over.. 더보기
아이폰 프로그래밍 스터디 예제3 이번이 세번째이다. 이번엔 xml(rss)파싱에 도전해보기로 한다. 뉴스가 있는 rss 정보를 파싱해오고 덧붙여 테이블뷰에 내용을 추가버튼을 구현하여 추가창을 모달뷰로 띄우고 저장된 내용이 테이블뷰에 다시 업데이트 되는 앱이다. 그리고 그 셀을 클릭시 해당되는 뉴스기사들이 테이블뷰로 쫙 뿌려지는 앱이다. 이앱을 기반으로 뉴스 앱을 만들 수 있을 것이다. 메인화면이다 우선 세가지정도의 뉴스 싸이트를 미리 저장해 두었다. 이건 전 예제에서 했던 거라 어렵지 않았다. 그러나 추가를 구현하기 위해서는 DB 나 pList로 데이터를 구현해야 했는데 여기선 pList로 구현해보았다. 리소스에 plist 파일을 하나 생성하고 코드에 - (void)viewDidLoad { [super viewDidLoad]; NSSt.. 더보기
아이폰 프로그래밍 스터디 예제2 첫번째 과제를 하며 이제 막 아 이런식으로 하는구나 xib 로 간단하게 배치할 수 있고 연결만 해주면 프로 그램이 구현이 되는구나라는 것을 알았다. 이번엔 첫번째 과제를 응용한 것에 탭바 컨트롤러를 이용한 앱을 구현해 보았다. 시작은 간단히 탭바 베이스드로 출발하였다. 뭐 탭바의 항목을 늘린다던지 하는것은 쉬우니 패스... 일단 앱의 구성은 탭바의 항목을 세개로 나누고 1,2 번째 탭바는 웹뷰를 넣어서 모바일 웹화면이 뜨게 하 였고 마지막 탭바는 첫번제 예제에서 살짝 변형한 항목을 추가하였다. - 웹뷰에서의 브라우져 띄우기 - (void)viewDidLoad { //주소창의 프레임을 제외한 아래 웹페이지가 나오는 부분에 대한 정의 CGRect webFrame = [[UIScreen mainScreen] .. 더보기
아이폰 프로그래밍 스터디 예제1 오브젝티브 C 이론적인 부분만 어느정도 공부하고 바로 아이폰 프로그래밍에 대해서 하나도 모른채 그냥 덤벼들여서 시작한 초보 앱개발 방법 정말 간단간단한 구현부터 시작해서 모든 지원가능한 메뉴들에 대해 다뤄보려고 한다. 뭐 MESA 공통 과제로 다들 똑같이 하고는 있지만서두 ... 첫번째 앱 정말 간단한 앱이다. 테이블 뷰에 배열을 띄우고 클릭시 DetailView가 뜨게 하는 간단한 앱 change 버튼 클릭시 배열의 이름들이 바뀌도록 구현했다. 버튼 클릭시 배열에 저장되는 항목이 다르게 하였다. - (IBAction) button1Changed { if (changeNumber == 0) { changeNumber ++; NSMutableArray *tmpArray = [[NSMutableArray a.. 더보기