포트폴리오2011. 10. 24. 11:33


이앱을 만들기 위해서 그전에 칼로리 계산기라던지 hugeboard라는 앱등을 만들어 보았지만 정식 App Store에 올리는 첫 앱입니다.

http://www.1004story.com

사이트를 App으로 만든것인데 서버는 WCF Rest 서비스를 이용하였고 서버에서 XML형식으로 데이터를 보내주면 아이폰에서 파싱해서 사용자들에게 보여주는 앱입니다.

이앱을 만들기 위해서 XmlManager, XmlParser를 직접 만들었으며 현재 인기를 끌고 있는 Facebook, Twitter 앱을 모티브로 해서 만들었습니다. 

구현한 기술
-Refresh to Scroll (위로 올렸다가 내리면 리로딩)
-페이징 (한번에 모든 페이지를 보여주는게 아니라 스크롤이 내리면 10개씩 데이터를 로드)
-Xml Paring (XML 파싱 라이브 러리를 사용한게 아니라 NSParser를 직접 개조해서 제작)
-Twitter,Facebook 연동
-이미지 캐시(Tableview 속도 UP)
-커스텀 테이블 뷰 구현
-달력 컨트롤 사용

등등 입니다.


앱 다운받는곳

http://itunes.apple.com/kr/app/id470488910?ls=1&mt=8



 이외에도 디자인 적용이라든지 로그인 구현이라든지 자잘한게 있지만 스크린샷으로 대체 하겠습니다.














아래는 우리 수석 디자이너 이기백씨가 수정한 이미지 입니다.




 
Posted by 동동(이재동)
Windows Phone 72011. 3. 15. 17:44

이번에 할려는 일은 About 페이지에 앱 리스트를 쭉 등록시키는일이다.

 

근데 서버로부터 앱리스트를 받고 그걸 뿌려줘야 하는데 xml을 이용하기로 했다.

 

앱은 이렇게 이미지가 나와야 한다.

 

 

description등 과 같은 string이야 xml에서 받아서 파싱하면 땡이지만

 

이미지는? 그래서 테스트 어플을 하나 만들었다.

 

일단 버튼을 하나 만들고

 

Webclient로부터 이미지를 하나 다운 받게 하였다.

 

private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            var url = "http://4.bp.blogspot.com/_HfTuDK39Rv4/SAjoBeqcFtI/AAAAAAAAAbo/UaXaUjD6yTY/s400/cuty.jpg";
            //var url = "http://fc07.deviantart.net/fs27/i/2008/139/9/9/Cuty_Rabbit_by_Willow_San.jpg";
        
            WebClient webClient = new WebClient();
            webClient.OpenReadAsync(new Uri(url));
            webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted);
        }

 

다운로드가 완료되면

 

 

void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
        {
            var resInfo = new StreamResourceInfo(e.Result, null);
            var reader = new StreamReader(resInfo.Stream);
 
            byte[] contents;
            using (BinaryReader bReader = new BinaryReader(reader.BaseStream))
            {
                contents = bReader.ReadBytes((int)reader.BaseStream.Length);
            }            
            
            using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
            {
                if (isf.FileExists("file.jpg") == true)
                {
                    isf.DeleteFile("file.jpg");
                }
                IsolatedStorageFileStream  stream = new IsolatedStorageFileStream("file.jpg", FileMode.OpenOrCreate, isf);                
                stream.Write(contents, 0, contents.Length);                
                stream.Close();
                MessageBox.Show("Finish Download");
            }
        }

 

다운로드가 완료되면 file.jpg를 하나 만들어서 IsolatedStorageFile에 저장을 한다. 그전에 저렇게 StreamResouceInfo와 StreamReader로 파일을 읽는다.

 

private void Button_Click_2(object sender, RoutedEventArgs e)
       {
           using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
           {
               IsolatedStorageFileStream stream = new IsolatedStorageFileStream("file.jpg", FileMode.Open, isf);
               var image = new BitmapImage();
               image.SetSource(stream);
 
               stream.Close();
               xImage.Source = image;
           }
       }

 

자 이제 아까 저장했던 파일을 읽어서 Image Control에 출력해보자…


참고  : http://dotnet.dzone.com/articles/operating-image-files-windows?mz=27249-windowsphone7 

대충 소스 보면 알겠지만 혹시나 모르니 소스를 첨부 한다.



Posted by 동동(이재동)