The most important thing
you have to remember,
is that every time you transfer data,
no matter how small,
the radio could stay powered up
for nearly half a minute.
So every decision you make,
should be based
on minimizing the number of times
that this happens.
But of course there's a balance here.
You want to download all the data
a user is likely to need
for the current section,
in a single burst,
over a single connection
at full capacity.
But of course, you don't just want
to pull down everything
wasting battery power and bandwidth
downloading data that's
never going to be used.
Now I could go on for hours on this topic,
but Dan's getting impatient,
and you can learn the details
on how to implement
each of these best practices,
including pre-fetching,
batching, and bundling,
burying you rupdate frequency,
and minimizing your payloads,
by watching the series
of Dev Lite videos
or reading the developer guides
linked to in the instructor notes below.
Now before I leave it to Dan
to show you how to implement
a sync adapter for Sunshine
that takes advantage
of a lot of the best practices
I just described,
let's consider what the
best practice would be
if you were building something
like a news reader app.
How much data should you download
when the app is first started?
Just the front page of headlines?
All the stories and images
linked to from that front page?
Every story available,
but none of the images?
Or every story and every image
currently available?
إن أهم ما ينبغي
تذكّره
،أنه في كل مرة يتم فيها نقل البيانات
،مهما صغر حجمها
يبقى الراديو نشطًا
.لنصف دقيقة تقريبًا
،وعليه فإن كل قرار تتخذونه
لا بد أن يستند إلى
تقليل عدد المرات
.التي يحدث فيها ذلك
.لكن قطعًا هناك نوع من التوازن
بالطبع ترغبون في تنزيل جميع البيانات التي
قد يحتاجها المستخدم
،في الجزء الحالي
،في اندفاع واحد
عبر اتصال واحد
.بصورة كاملة
لكنكم طبعًا لا تريدون
تدمير كل شيء
باستنزاف البطارية والنطاق الترددي
وتنزيل بيانات
.لن تستخدموها مطلقًا
،والآن يمكنني المتابعة لساعات في هذا الموضوع
،لكن صبر Dan ينفد
ويمكنكم معرفة التفاصيل
حول كيفية تطبيق
،أفضل الممارسات
،بما في ذلك الإحضار المسبق
والإرسال في دفعات، والتجميع في حزمة
،وإخفاء معدل التحديث
،وتقليل الأحمال
من خلال مشاهدة سلسلة فيديو
Dev Lite
أو قراءة إرشادات المطورين
.الموجودة في ملاحظات المدرب أدناه
والآن قبل أن أترككم مع Dan
ليوضح لكم كيفية تطبيق
محول المزامنة مع Sunshine
والذي يستفيد من
كثير من الممارسات المثلى
،التي بينتها لكم
لنتأمل معًا
أفضل الممارسات
عند بناء تطبيق
.لقراءة الأخبار مثلاً
ما حجم البيانات التي يتم تنزيلها
عند بداية تشغيل التطبيق؟
هل تقتصر على صفحة العناوين الرئيسية؟
ثم ربط جميع القصص والصور
من هذه الصفحة الأولى؟
،أم كل القصص المتاحة
عدا الصور؟
أم كل قصة وصورة
متاحة حاليًا؟
Lo más importante
que deben recordar
es que cada vez
que se transfieren datos,
no importa cuán pequeños,
la radio se puede quedar
encendida por casi medio minuto.
Así cada decisión que se tome
se basará en minimizar
el número de veces que esto ocurra.
Pero, claro, existe un equilibrio.
Se quiere bajar todos
los datos que un usuario
probablemente necesite
para la sección presente
en una sola ráfaga,
en una sola conexión,
a toda capacidad.
Pero, claro, no quieren
bajar todo desperdiciando
energía de la batería
y ancho de banda
para bajar datos
que nunca se usarán.
Podría pasarme
horas en este tema,
pero Dan se impacientaría.
Pueden aprender los detalles
de cómo implementar
cada una de estas buenas prácticas
incluso la pre-búsqueda,
procesamiento por lotes e unión,
que reducen la frecuencia
de actualización
y minimizan las cargas
útiles con ver la serie
de videos Dev Lite o leer
las guías para el desarrollador
ligadas a las notas
del profesor abajo.
Antes de dejar que pase
Dan para que les muestre
cómo implementar
un adaptador de sincronía
para Sunshine
que aprovecha mucho
de las buenas prácticas
que acabo de describir,
consideremos
cuál sería la mejor práctica
si tuvieras que construir, digamos,
una aplicación para leer noticias.
¿Cuántos datos deberías bajar
cuando arranca la aplicación?
¿Sólo la primera
página de los titulares,
todas las historias, imágenes
ligadas a esa primera página?
¿Cada historia disponible,
pero ninguna de las imágenes?
¿O toda historia o imagen
disponibles en el momento?
Hal paling penting yang harus Anda ingat
adalah ketika setiap kali Anda mentransfer
data, seberapapun kecil ukurannya,
radio bisa dalam kondisi siap untuk
dihidupkan selama hampir setengah menit.
Jadi setiap keputusan yang Anda buat
harus berdasarkan kepada
upaya untuk meminimalkan frekuensi
terjadinya hal tersebut.
Namun tentu saja terdapat
keseimbangan di sini.
Anda ingin mengunduh semua data yang
cenderung dibutuhkan seorang pengguna
untuk bagian pada saat ini
dalam sekali rentetan,
melalui koneksi tunggal
dengan kapasitas penuh.
Namun tentu saja, Anda tidak hanya ingin
mengunduh segalanya
yang memboroskan tenaga baterai dan
bandwidth (lebar pita)
dengan mengunduh data yang
tidak pernah dimanfaatkan.
Saat ini saya bisa membahas topik ini
berjam-jam,
tapi Dan sudah semakin tidak sabar,
dan Anda bisa mempelajari detail tentang
bagaimana mengimplementasikan
semua praktik terbaik ini, termasuk
prefetching (transfer data memori),
batching (pengelompokan), bundling (paket)
di atas frekuensi update Anda,
dan meminimalkan biaya beban
(internet) Anda,
dengan menonton rangkaian video Dev Lite
atau membaca panduan pengembang berkaitan
dengan catatan instruktur di bawah.
Sekarang sebelum saya mempercayakan Dan
untuk menunjukkan cara mengimplementasikan
adaptor sinkron untuk Sunshine yang
mendapat manfaat dari
sekian banyak praktik terbaik yang
baru saya jelaskan,
mari kita pertimbangkan praktik terbaik
apa yang akan Anda manfaatkan
jika seandainya Anda membuat sesuatu
seperti aplikasi pembaca berita.
Berapa banyak data yang harus Anda unduh
bila aplikasi itu pertama kali dijalankan?
Hanya halaman depan pokok berita?
Seluruh cerita dan gambar yang berkaitan
dengan halaman pertama itu?
Semua cerita tersedia, kecuali gambarnya?
Atau semua cerita dan gambar yang
tersedia untuk saat ini?
覚えておく必要のあることで最も重要なのは
データを転送するごとに どんなに小さくても
無線は30秒近く
電源を入れたままになるという点です
そのため電源が入る回数を最小限にするために
あらゆる決断が必要ですが
バランスを考える必要があります
ユーザが必要としそうなデータを
すべてダウンロードしたいでしょう
1度のバースト、1つの接続、フルパワーで
一気にダウンロードしたいですよね
しかし当然 バッテリを消費させるデータや
絶対に使わないようなデータを
ダウンロードしたくはないでしょう
次にダンが控えているので この話は終わりますが
皆さんは優れた実装法の詳細も学べます
その方法には 先読み、一括処理とバンドル、
アップデート回数の低減、
ペイロードの最小化が含まれます
下の講師メモのリンクの
DevBytesのビデオの試聴や
開発者用ガイドを読んで学べます
では今述べた多くの優れた事例を
Sunshineで生かすための
SyncAdapterの実装法をダンに任せる前に
もし新聞アプリのようなものを作っているなら
どれが最良の手法か検討しましょう
最初にアプリを開始する時
ダウンロードするデータ量はどれくらいでしょう?
見出しのトップページだけでしょうか?
トップページからリンクされた
すべての記事と画像でしょうか?
画像なしのすべての記事でしょうか?
現在利用できるすべての記事と画像でしょうか?
기억해야 할 가장 중요한 것은
크기에 상관 없이 데이터를 옮길 때마다
라디오는 30초까지
켜져 있을 수 있다는 것입니다.
그러므로 이런 현상이
최대한 일어나지 않도록 해야 합니다.
하지만 균형을 맞추는 것도 중요합니다.
현재 섹션에서 사용자가 필요로 할 만한
모든 데이터를 한 번 연결된 상태에서
한꺼번에, 최대한 다운받아야 합니다.
하지만 사용하지 않을
데이터를 다운 받느라
배터리와 주파수를 낭비하면 안 되겠죠.
이 주제에 대해 얘기하려면
끝이 없지만 댄이 재촉을 하네요.
가장 유용한 기술들을 배울 수 있는데요.
프리페칭, 배칭과 번들링,
업데이트 빈도 감추기,
페이로드 최소화하기 등입니다.
Dev Lite 동영상을 보거나
아래 강사노트에 링크되어 있는
개발 설명서를 읽으면서 배우세요.
댄이 잠시 후 제가 설명드린 것들을
최대한 활용할 수 있는
Sunshine의 sync adapter
사용법을 보여드릴텐데요,
그 전에 여러분이
뉴스 리더 앱을 만든다고 가정하고
가장 좋은 방법을 생각해 보죠.
처음 앱이 시작될 때
얼만큼의 데이터를 다운받아야 할까요?
헤드라인의 첫 페이지, 아님
첫 페이지와 연관된 모든 기사와 이미지?
이미지를 제외한 모든 기사들,
아님 현재 올라와 있는
모든 기사와 모든 이미지?
A coisa mais importante
a lembrar
é que sempre que você transfere dados,
não importa quão pequenos,
o rádio pode ficar ligado
por quase meio minuto.
Cada decisão que você toma
deve ser baseada
em minimizar quantas vezes
isso acontece.
Mas claro que há um contraponto aqui.
Você quer baixar todos os dados
que um usuário pode precisar
para a seção atual
de uma vez
em uma só conexão
com capacidade total.
Mas é claro que você não quer
só transferir tudo,
desperdiçando bateria e largura de banda
ao baixar dados que
nunca serão usados.
Eu poderia passar horas neste tópico,
mas Dan está ficando impaciente
e você pode aprender os detalhes
sobre como implementar
as melhores práticas,
inclusive pré-busca,
processamento em lotes, compilação,
redução da frequência de atualização
e minimização das cargas
assistindo à série
de vídeos Dev Lite
ou lendo os guias do desenvolvedor
com link nas notas do instrutor.
Antes de passar para o Dan
te mostrar como implementar
um adaptador de sincronização para o Sunshine
que aproveite
muitas das melhores práticas
que descrevi,
vamos considerar qual
seria a melhor prática
se você estivesse criando
um aplicativo de notícias.
Quantos dados devem ser baixados
quando o aplicativo é iniciado?
Só a página de rosto com os títulos?
Todas as histórias e imagens
com link na página de rosto?
Todas as histórias,
mas nenhuma imagem?
Ou todas as histórias e imagens
disponíveis?
Самое важное,
что вы должны запомнить,
это то, что каждый раз,
когда вы передаёте данные,
независимо от их величины,
беспроводная связь может оставаться
включённой почти полминуты.
Любое принятое вами решение
должно быть основано
на минимизации количества раз,
когда это происходит.
Но, конечно, здесь есть некий баланс.
Вы хотите загрузить все данные,
которые, вероятно, понадобятся
пользователю
для текущего раздела в одном пакете,
за одно подключение
при полной мощности.
Но, конечно, вы не просто хотите
внести в выпадающее меню всё,
расходовать заряд аккумулятора
и снижать пропускную способность,
загружая данные, которые никогда
не будут использованы.
Я мог бы говорить об этом часами,
но терпение Дэна иссякает,
и вы можете более подробно
изучить реализацию
каждого их этих методов,
включая предварительную выборку
пакетную обработку, объединение,
скрытие периодичности обновления,
и минимизацию полезной нагрузки,
просмотрев серию видео
Dev Lite
или прочитав соответствующие разделы
руководства разработчика,
в примечаниях справочника,
расположенных ниже.
До того, как Дэн объяснит вам,
как реализовать синхронизацию
с помощью SyncAdapter для Sunshine,
который даёт преимущество
над всеми этими методами,
которые я только что описал,
давайте рассмотрим, какой метод
можно было бы применить
в том случае, если вы хотите сделать
приложение для чтения новостей.
Какой объём данных вы должны загрузить
при первом запуске приложения?
Только главную страницу с заголовками?
Все новости и связанные с ними картинки
с этой главной страницы?
Каждую доступную новость,
но без картинок?
Или каждую новость и каждую картинку,
доступную в настоящее время?
Điều quan trọng nhất mà bạn phải nhớ,
là mỗi lần bạn truyền dữ liệu, không cần biết là nhỏ hay to,
radio sẽ phải bật lên gần như là nửa phút.
Nên mỗi lần bạn quyết định, sẽ dựa trên
tối thiểu số lần xảy ra điều này.
Nhưng tất nhiên cũng phải có sự cân bằng ở đây.
Bạn muốn donwload toàn bộ data mà người dùng có thể cần
cho phần hiện tại, trong một lần,
qua một kết nối đơn với sức chứa cao nhất.
Nhưng tất nhiên, bạn không chỉ muốn lấy về mọi thứ
tốn pin và băng thông
download dữ liệu mà sẽ không bao giờ được dùng.
Giờ ta nên tiếp tục với chủ đề này, nhưng Dan đang trở nên mất kiên nhẫn,
và bạn có thể học chi tiết cách thực hiện
mỗi trong số các bài luyện tập này, bao gồm pre-fetching,
batching, và bundling, giảm số lần cập nhật,
giảm thiểu tải trọng,
bằng việc xem series của Dev Lite videos
hay đọc developer guides được link ở instructor notes bên dưới.
Giờ trước khi tôi chuyển nó cho Dan để cho bạn xem cách thêm
một sync adapter cho Sunshine mà nó tận dụng
tối đa những thứ mà tôi vừa mô tả, hãy
cân nhắc những bài luyện tập tốt nhất có thể
nếu bạn đang tạo một số thứ như một app đọc tin tức.
Bao nhiêu data mà bạn nên down khi app lần đầu chạy?
Chỉ trang đầu của headlines?
toàn bộ câu chuyện, hình ảnh được linh tới từ trang đầu?
Toàn bộ câu chuyện có sẵn, nhưng không có hình ảnh?
Hay thậm chí mỗi câu chuyện và toàn bộ hình ảnh đang có?
要记住的最重要一点是
每次传输数据时 无论数据量多小
无线电都会保持开机约半分钟
因此 你制定的每个决策都应该
以最大程度地减少这一情况的发生为出发点
不过当然 这里也存在一个平衡点
你希望通过一次连接 在满负载下一次性
下载用户在当前部分
可能需要的所有数据
但当然 你不会只希望拉取所有内容
浪费电池电量和带宽
下载绝不会用到的数据
虽然我可以就这一主题说上几个小时 但 Dan 已经不耐烦了
你可以通过观看一系列 Dev Lite 视频
或阅读以下讲师备注中链接到的开发者指南
了解有关如何实施其中每项最佳做法
(包括预提取、批处理、
打包、隐藏更新频率和最大程度地
减少负载)的详细信息
我将交由 Dan 来介绍如何实施
利用了我刚介绍过的许多最佳做法的
Sunshine 同步适配器
在此之前 让我们思考一下 如果你要
构建新闻阅读器应用等内容 最佳做法是什么?
首次启动应用时应该下载多少数据?
仅下载头版头条?
该头版链接到的所有报道和图片?
下载其中每篇报道 但不下载图片?
还是当前提供的每篇报道和每张图片?