안드로이드 달력(스케쥴 )앱입니다.리펙토링이 되어있어 코드를 쉽게 이해할 수 있습니다.컴포넌트( Component ) 화 되어 있어 쉽게 다른 Activity 나 Fragment 등에 붙일 수 있습니다.좌,우 버튼으로 월을 넘길수도 있고, 플리킹으로도 넘길 수 있습니다.오늘의 날짜는 연두색으로 표시됩니다.해당 일자를 클릭하면 그날의 스케쥴을 입력할 수도 있습니다.스케쥴이 있는 날짜는 노란색으로 표시되며, 클릭하면 입력한 스케쥴을 볼 수 있습니다.<스크린샷>좌상단 : 좌측 버튼 혹은 우측버튼을 클릭하면 달력이 scroll 되면서 월이 바뀐다.달력에 대고 플리킹을 해도 scroll 되면서 월이 바뀐다.오늘의 날짜( 7월 31일 )에는 초록색으로 표시되어 있고,스케쥴이 있는 날은 노란색으로 표시된다.저 색들은 쉽게 바꿀 수 있다.우상단 : 스케쥴을 입력하는 곳이다.스케쥴이 없는 날짜를 클릭하면 다이어로그 형태로 나타난다.좌하단 : 스케쥴이 있는 날짜를 클릭하면, 이전에 입력한 스케쥴이 다이어로그 형태로 나타난다.스케쥴을 삭제하거나 더 추가하는 것은 CalendarDBManager 를 통해 쉽게 구현할 수 있다.우하단 : project 클래스 구조.View 는 component 화 되어 있고, 스케쥴 부분은 CalendarDBManager 를 통해서 한다.MainActivity 에는 그저 setContent 로 CalendarView 를 넣어준 코드밖에 없다.
안드로이드 ( Android ) 로 제작한 날씨 위젯 ( Weather Widget ) 입니다.학기말 프로젝트로 작성된 프로그램이며, A0 를 맞았습니다.런처 또는 홈스크린 ( Launcher or Homescreen ) 에 붙을 수 있는 기본 위젯입니다.지역, 요일, 최저, 최고 온도와 날씨 상태에 대한 그림이 표시됩니다.첫번째 스크린샷은 기본 런처상태입니다.두번째 스크린샷은 화면 Long press -> Widget 으로 들어간 화면입니다. `Weather Test` 라는 날씨위젯을 확인할 수 있습니다. ( 현재는 기본 아이콘이지만 아이콘도 이쁜 녀석으로 바꿀 수 있습니다. )세번째 스크린샷은 `Weather Test`를 클릭하여 날씨 위젯을 홈스크린에 붙인 것입니다. 부산의 목요일 날씨가 나옵니다. ( 기본은 서울입니다 ) 최저온도는 11도, 최고온도는 16도입니다. 날씨는 "비" 이기 때문에 비 내리는 아이콘이 하단에 표시됩니다.네번째 스크린샷은 도시설정 activity 입니다. Preference Activity 를 사용하여 쉽게 도시나 option 을 추가할 수 있습니다.다섯번재 스크린샷은 `도시설정`을 클릭한 화면입니다. 현재는 광역시들만 추가해논 상태지만, 간단하게 xml 파일에 도시만 추가하면 원하는 도시들을 추가할 수 있습니다. 현재는 한국의 도시들만 등록해놓았지만, 도쿄, 베이징 등 외국의 도시들도 추가할 수 있습니다.여섯번째 스크린샷은 서울로 도시를 변경한 후의 스크린샷입니다. ( 기존 부산은 목요일날, 서울은 월요일날 스샷을 찍어서 요일이 다릅니다. )복수개의 위젯 ( 2개 이상 ) 도 함께 붙일 수 있고, 각기 다른 도시를 설정 할 수 있습니다.소스코드 전체에 주석을 달았기 때문에 쉽게 이해할 수 있을 것이라 생각됩니다.Broadcast Receiver 와 Activirty 의 Component 를 사용하며,AsyncTask 로 Thread 처리 ( 비동기 처리 ), Internet connection, Remote View 등의 고급기술들을 채용하였습니다.Refactoring 을 적용하여 코드가 최적화 및 보기 좋게 되어 있습니다.저희 팀은 디자이너가 없었기 때문에 기본적인 화면구성만 하였지만,디자인에 능숙한 사람이 있으면 매우 쉽게 더 이쁜 위젯으로 바꿀 수 있습니다.( 날씨상태에 대한 animation 도 추가할 수 있겠죠. )접속하는 Internet URL 에서는 일주일치의 날씨상태도 얻어올 수 있습니다.안드로이드를 조금만 안다면, 일주일치의 날씨도 나오도록 수정할 수 있습니다. ( 저는 하루치만.. )
Motivation.We have watched that ICU students enjoyed mini-games, for example, simple flash-games on the web. They said that those games can reduce students’ stress. Therefore, we decided that to make another very simple and interesting game to lose ICU students’ full stress. Additionally, we intended not to make them be addicted to this game.The process of making this gameOur team members had scheduled to meet for this term project every Mondays and Fridays from 21. March 2007.At first meeting, we discussed who would be team leader and what subject would we take. → Team leader became Min-sung and we chose to make interesting game.Min-sung assigned team .members to think of what kind of game would we make.At second meeting, many items were there, for example, Tetris, Finding differences between similar pictures, Coin-stack, Possess of lands, and so on. We played those games, which were listed above, and decided to make coin-stack.At third meeting, we analyzed “Tetris” source cords becaually GUI and Thread to make game.Kang Min-sung and Jung Jee-yoon studied about GUI components, and Lee Chang-kwon and Hong Jun-hwa (who is temporarily absent from school) studied about Thread. The amount of what we could study was too much; therefore, we skipped one meeting.At fourth meeting, we explained GUI and Thread each other.At fifth meeting, we discussed detail about game and made basic logic with first class diagram.We began to make a program.After that time, Min-sung assigned team members to make simple test file to put them together for main program (Coin-Stack). For example, Min-sung assigned himself to make test program which was changing button’s picture by clicking another button. For Chang-kwon, make the main form of game with buttons. For Jee Yoon, change score by clicking another button.On the next meeting, each person explained what source code means to others. And then, we assembled every test code into main program with modifying. Min-sung assigned team members new somewhat bored because there was not any sound. Furthermore, there were some logical errors that were about changing coins to high-value coin and calculate scores.We discussed those problems again and modified it with inserting some interesting sounds, and making our own coins.Term-project was ended.The rules of this game.You can use the →, ←, ↑, ↓ keys to make 1000 won as much as possible.1000 won will change to the score.→, ← - These keys are used to move the gamer (Tung) right and left.↓ - This key is used to throw coins into the people array from coin array.↑ - This key is used to throw coins into the coin array from people array.Coin array – 11 X 10(Dead Line – 1 X 10)People array – 6 X 10)(Player(Tung) – 1 X 10)There are 4 kinds of coins which are 10, 50 100, and 500 won....The maximum number that people can receive is 5.Tip) To make higher value of coins for 10 won coins and 100 won coins, player must take only 10 won coins or 100won coins because receiving maximum value is 5.If X 2 + 1,000 score.Ex3) 100won + 100won + 100won + 100won + 50won = 100won X 4 + 50won X 1Ex4) 500won + 500won + 500won + 500won = 2,000 score.Tip) Calculating coins do not care whether the coins are arranged in order or not. Therefore, above examples work well.If the two 500 won-valued coins are threw at once, the score will be added.Coins are added ramdonly and line by line from the top periodically. As time goes by, the time gap of pushing down the random coins gets shorter. Finally the game will be over if the coins of the coin array hit the ‘dead line’.First line-adding time is 8second. Gradually the adding time is decreased by 150ms. If adding time is reached to 1 second, the time would be fixed at that constant.If the gamer presses ←, → too much, so that the gamers work should be done at out of boundary, sound ‘a.wav’ plays to warn player that player cannot be over boundary.If the gamer throws coins which values more the 1000 won, the sound ‘2.wav’ plays to let player know disapth the previous ranks of this game. If the score is higher than the 5th ranked score, you have to input your name. If not directly show the scores which were set by other users.You can check your position. Then the program will let you know your score and the ranks.ClassesCoinStack ClassClass Diagramsourceimport javax.swing.JFrame;import javax.swing.JOptionPane;import java.io.*;public class CoinStack extends JFrame implements Runnable{static Draw baseFrame = new Draw();static int[][] coinarray;declare coinarray which is 2-dimentsional integer, and Draw object as static for access out of this class with change and save the value whenever the use call these variablepublic static void main(String args[])throws InterruptedException, IOException{coinarray=new int[11][10];baseFrame.drawbasic();baseFrame.setSize(1000,1000);baseFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);baseFrame.setVisible(true);long countTime=8000;Operation oper=new Operation();//Declare and create the variable andTime
안드로이드로 작성된 오늘의 운세 앱입니다.<안드로이드 어플리케이션 개발>의 프로젝트로 제출한 자료로 97/100을 받았습니다.오늘의 운세를 12간지와 별자리 두가지 버전으로 제공합니다.아이콘화하여 클릭으로 쉽게 내용을 볼 수 있으며, Focus 처리도 잘 되어 있습니다. 12간지와 별자리간의 전환은 손가락으로 flicking 을 하여 scroll 전환할수도 있고, 상단에 있는 버튼을 눌러 전환할 수도 있습니다. 전환시에는 부드럽게 animation 되며 전환됩니다.대부분 가능한한 Custom View, Dialog 를 만들어서 사용했습니다.소스는 리펙토링이 되어 있어 이름이 저명하고, 함수가 잘 나뉘어 있어 소스의 이해가 쉬우며, 중요한 부분에 모두 주석을 달아 놓아 소스 이해에 큰 문제가 없을 것으로 보입니다.<스크린샷>좌상단은 12간지가 아이콘으로.. 우상단은 12개의 별자리가 아이콘으로 나와있는 형태입니다.좌중단은 용띠를 클릭한 화면입니다. Dialog 형태로 운세 정보가 나타납니다. 오른쪽에 Focus 되어있는것과 같이 용띠의 일반적인 정보가 먼저 나타나며, 하단의 버튼을 이용하여 글씨크기를 확대 및 축소할 수 있습니다. 오른쪽에는 년생별 운세가 추가로 제공됩니다.우중단은 용띠중 88년생의 운세를 클릭한 경우로 88년생에만 해당하는 띠별 운세가 디스플레이 됩니다. 상단의 X 버튼을 통해 Dialog 창을 닫을 수도 있고, Back key 를 통해 닫을 수도 있습니다.좌하단은 별자리운세의 처녀자리를 클릭한 경우입니다.우하단은 처녀자리 운세에서 하단 돋보기 아이콘을 이용하여 글씨크기를 확대한 경우입니다.자정을 기하여 새로운 운세 데이터가 업데이트되며, 이 과정은 thread 로 처리하였습니다. 또한 Database(ContentProvider) 에 운세정보를 저장하여 한번 운세정보를 받아놓으면 하루종일 다운받은 운세정보를 이용할 수 있습니다. (인터넷 사용 절약) 운세정보 받아오는 시간은 단말마다 다르지만, 3G 통신의 경우 1~3초정도 걸리는 것으로 보입니다. ( LTE 는 순식간에 받겠죠? ) 초기 운세자료 다운받을 때는 Progress dialog 가 나와 User 에게 좋은 UX 를 제공합니다.운세정보는 네이버의 운세정보를 사용하기 때문에 상용어플을 만드실 경우에는 네이버쪽(혹은 원 운세정보 fortune82 )과 contact 을 하셔야 할 것으로 보입니다, 학교내 프로젝트만 할 경우에는 ( 비 상용 ) 전혀 문제가 없을 것으로 보입니다.이클립스에서 프로그램을 로드하신 후에는 F5를 통해 프로젝트를 refresh 해주시고,[Project] - [Clean] 을 통해 rebuild 작업을 거쳐주셔야 R 관련된 에러가 사라져 정상적으로 이용하실 수 있습니다.
SimpleFastGallery.최초화면(좌상단)은 sdcard 에 있는 모든 이미지를 폴더 기준으로 나누어서 보여줍니다. 폴더 view 는 List 형태로 되어 있으며, 좌측에는 가장 최근에 등록 혹은 촬영된 이미지를 대표로 보여주고, 오른쪽은 폴더명이 보여집니다.해당 폴더를 click 하면, 3 x n 의 배열로 이미지(우상단)들이 보여집니다.디코딩은 이미지가 커서 발생하는 OutOfMemory Error 가 고려되었으며, 작은 size 로 Resize 도 되어 있습니다. 이미지 하나를 클릭하면 해당 이미지의 전체보기 화면으로 넘어갑니다.전체 이미지는 오른쪽, 왼쪽으로 플리킹이 가능합니다. 가로사진은 가로로, 세로사진은 세로로 보여줍니다. 플리킹 도중 Back key 를 누르면 3xn 배열 이미지 리스트로 이동하며, 마지막으로 본 이미지의 위치에 맞게 자동 스크롤이 됩니다. 코드는 리펙토링이 되어 있어, 기능별로 클래스화 되어 있습니다. 안드로이드를 아는 분이라면 직관적으로 알 수 있을것이라 여겨집니다. 간단한 주석도 추가되어 있습니다. 디코딩의 경우 async (비동기) 로 디코딩을 하여 UI 에 영향을 주지 않도록 해놓았습니다. 추가적으로, 기본 이미지가 불리는 동안 progress bar 를 주는 등의 기본적인 UX 처리는 해놓았습니다.말 그래도 간단하고, 빠른 갤러리라고 보시면 되겠습니다.안드로이드 2.2 (Froyo) 이상부터 Compile 가능합니다. 즉 2.3 진저브레드, 4.0 아이스크림 샌드위치 등에서 모두 사용 가능합니다.이클립스에서 프로그램을 로드하신 후에는 F5를 통해 프로젝트를 refresh 해주시고,[Project] - [Clean] 을 통해 rebuild 작업을 거쳐주셔야 R 관련된 에러가 사라져 정상적으로 이용하실 수 있습니다.