2010-08-06 3 views
1

웹 서버에서 다운로드하는 데 도움이 필요합니다 ... 현재 내가하는 일은 이미지 위치가 포함 된 웹 서버에서 XML 파일을 가져 와서 XML을 파싱하고 각 이미지를 다운로드하고 아이폰에 이미지를 저장하는 것입니다. SQL 데이터베이스에 이미지 이름을 저장합니다. 다운로드 할 이미지가 많고 하나씩 다운로드하기 때문에 시간이 많이 걸립니다.많은 양의 이미지를 다운로드하고 더 빠르게 만들기

재미 무엇 검토가 다운로드가 너무 깁니다 decieded 때문에 단지 거부있어 내 애플 업데이트 ..., 문제없이 통과 마지막 두 업데이트 ..

내가 서버에 그 이미지를 압축하는하고 zip 파일을 전송에 대해 생각했다 아이폰, 압축 해제 또는 바이너리와 함께 이미지를 포장하여 사과에 보냅니다.

다운로드 속도를 높이는 방법에 대한 조언을 보내 주시면 감사하겠습니다. 감사.

+0

일반적으로 많은 대규모 다운로드가 필요한 이유에 대해 더 많은 상황이 필요합니다. 지금 당장은 전체적인 질문이 하나의 큰 나쁜 생각처럼 보입니다. 나는 당신이 괜찮다면 앱에 대한 링크를 게시한다고 말하고 싶다. –

+0

여기 앱에 대한 링크를 게시하는 것이 좋다고 생각합니다. 필요한 작업을 이해하는 데 많은 도움이됩니다. 일부 회사 데이터도 도움이됩니다. 얼마나 많은 이미지가 있는가, 이미지의 평균 크기는 바이트 단위입니까? – JosephH

+0

http://itunes.apple.com/hr/app/crotune/id378647284?mt=8 iTunes에서 앱 설명을 읽을 수 있으며 모든 이미지를 다운로드해야하는 이유를 이해할 수 있습니다. 고객에게 휴가철에 앱을 가져 와서 로밍 요금없이 7 일간 휴가에 사용할 수 있습니다. 그들이 업데이트를 확인하는 데 사용할 수있는 와이파이가있을 때만 ... 나는 내 고객에게 말했고 모든 것이 바이너리로 모든 이미지를 묶는 데 동의했지만 그는 여전히 그것에 대해 생각할 것이라고 말했기 때문에 아마도 해결책이 될 것입니다. 어딘가에 약 3000 명의 피사체가있을 것입니다. 각 이미지는 약 8k입니다. :-) – kviksilver

답변

1

이미지를 자주 변경합니까? 아니면 릴리스 당 한 번만? 각 릴리스마다 변경된 경우에만 패키지 할 것입니다. 변경 사항이 거의없는 경우 한 번 다운로드하면됩니다 (사람들이 업데이트 할 때 다시 다운로드 할 필요가 없습니다). 자주 변경되는 경우 파일별로 파일을 다운로드하지만 한 번에 2-3 개의 파일을 사용해보십시오. 비동기 다운로드 (지원되는 경우).

+0

내 클라이언트는 앱 스토어가 Wi-Fi없이 애플리케이션을 다운로드하는 데 20MB 데이터 캡을 사용하지 않으려하고 있으며 일부 이미지는 매주 바뀝니다. 현재 응용 프로그램은 서버를 확인하고 마지막 업데이트에서 변경된 내용과 새 이미지를 다운로드하여 변경된 이미지를 관리합니다. 따라서 중간 업데이트는 문제가되지 않습니다. 첫 번째 파일은 하나의 큰 파일로 이미지를 압축하고 아이폰에 압축을 푸는 방법은 무엇입니까? 나는 네트워크 연결을 줄이면 얻을 것이라고 생각했지만 시간이 지날수록 아이폰이 그 파일들을 풀어내는 데 필요한 시간을 잃을 것입니다 ... – kviksilver

0

이미지를 빠르게 다운로드하는 방법 중 하나는 CDN에 저장하는 것입니다. Limelight와 같은 일부 CDN은 모바일 장치에 데이터를 전송하기위한 특별한 네트워크 최적화 기능을 제공합니다. 그들은 또한 단순히 콘텐츠 라우팅의 더 나은 작업을 수행하고 콘텐츠 전송 용량을 높입니다. 이 접근 방식에 대해 좋은 점은 앱을 변경하지 않아도된다는 것입니다. 그러나 CDN은 비싸 질 수 있습니다.

3

나는 지퍼로 이미지를 도울 수 없습니다. 그들은 이미 압축되어 있으므로 오버 헤드가 추가됩니다. 이미지가 디스플레이에 필요한 것보다 크지 않은지 확인하십시오. Mario가 제안한 것을 여러 비동기 호출로 다운로드하십시오. 적어도 하나의 큰 호출을 비동기로 만드십시오.

UI 디자인의 핵심 원칙 사용자가 진행 상황을 이해할 수 있도록 부분 결과를 표시하는 것입니다 (잘못되었거나 오도 된 경우 제외).

모든 이미지를 유효하게 만들려면 이미지를 약간만 다운로드하여 회색으로 표시하거나 (알파 = 0.4) 부분적인 결과라는 것을 분명히 알 수 있지만 진행 상황을 확인하십시오. . 리뷰 작성자는 시작하는 데 너무 오래 걸리는 것으로 느꼈을 것입니다.

+0

글쎄, 나는 다운로드가 시간이 걸릴 것임을 사용자에게 알려주고, 다운로드 한 각 항목에 대한 진행률 표시 줄을 모두 표시합니다. 책과 그들은 여전히 ​​내가 모든 물건을 다운로드하는 시간을 줄이길 바래. 내 모든 응용 프로그램이 쓸모가 없으면 추가 도움말을 위해 UI 디자인을 확인할 수 있도록 응용 프로그램 자체에 링크를 게시 할 수 있습니다 (무료). 필요한거야? 고마워요 ... – kviksilver

+0

+1 앱이 사용할 수있는 모든 이미지가 필요합니다. –

+0

우편이 도움이되지 않는다고 말하는 것은 완전히 사실이 아닙니다. 작은 이미지가 많으면 다운로드 시간은 연결 설정 시간과 각 항목에 대한 http 헤더의 오버 헤드에 비하면 정말 작을 것입니다. 하나의 zip 파일을 가지고 하나의 헤더 세트로 단일 연결의 모든 이미지를 다운로드하면 개선 될 수 있습니다. 즉, zip을 사용하는 것이 최선의 해결책이라고는 할 수 없습니다. – JosephH

0

이미지가 너무 큽니다. 20MB 앱 제한에 대해 걱정한다고 말했지만, 그 시점에서는 이미지가 휴대 전화에 비해 너무 큽니다.

파일을 압축하는 대신 이미지 크기를 줄이는 것이 좋습니다. 뿐만 아니라 필요할 때 필요한 것을 다운로드해야합니다.

대량 다운로드를 계속 사용하려는 경우 기본 구현 대신 측면 옵션으로 사용하지 않으시겠습니까?

1

1) 백그라운드에서 한 번에 3 개의 이미지를 다운로드하려면 NSOperationQueue와 같은 것을 사용합니다. 그것보다 훨씬 더 UI가 고르지 시작합니다.

2)이 작업이 진행되는 동안 로딩 표시기가 표시됩니다.

3) 이미지의 형식은 무엇입니까? 네트워크를 통해 전송하는 경우 JPG를 사용해야하며 품질 수준을 더 작은 것으로 설정하는 것을 고려하십시오 (예 : 6 ~ 5).품질 저하를 상쇄하기 위해 더 큰 픽셀 수를 사용하더라도 더 큰 이미지를 전송할 수 있으므로 저품질 압축으로 쉽게 제거 할 수 있습니다.

4) 투명도를 유지하기 위해 PNG를 사용해야하는 경우 보내기 전에 이미지에 PNGCrush를 사용하는 것이 좋습니다. 언급했듯이 zip은 거의 아무 것도 할 수 없습니다.

관련 문제