Dari semua fitur baru iOS 8 dipresentasikan pada WWDC, yang paling penting, mungkin, adalah ekstensi (diperpanjang). Mereka harus memiliki dampak yang besar pada perkembangan lebih lanjut dari OS. Seringkali fitur ini digambarkan sebagai "kemampuan aplikasi pihak ketiga untuk berinteraksi satu sama lain." Ini, tentu saja, terlalu dibesar-besarkan, karena interaksi bukan satu-satunya kemungkinan ekstensi, dan mereka tidak dapat berkomunikasi langsung satu sama lain, tepatnya.
Kami memiliki membaca dokumentasi pengembang dan video dari WWDC, untuk memahami bagaimana ekstensi bekerja dan bagaimana Apple telah menemukan kompromi antara keterbukaan sistem dan data pengguna keamanan dan ingin membicarakannya Anda.
Jadi apa yang ekspansi?
Memungkinkan aplikasi pihak ketiga untuk mengakses satu sama lain, hanya satu masalah, yang adalah untuk memecahkan ekspansi. Sisi keyboard; integrasi aplikasi dengan penyimpanan awan lainnya, selain iCloud; widget di Pusat Pemberitahuan - semua ini juga ditanggung oleh ekstensi.
Bahkan, tidak semua iOS dapat "ditingkatkan" pengembang pihak ketiga. Misalnya, jika Anda ingin mengganti aplikasi bawaan atau menambahkan switch di ruang kontrol - Anda tidak akan bekerja. Apple menyediakan tidak begitu banyak jelas "ekstensi poin» (ekstensi poin), untuk menunjukkan pengembang dengan setiap bagian dari sistem operasi mereka dapat bekerja. Daftar titik-titik ini sebagai berikut:
- ekspansi Hari ini (Ekstensi Hari) atau widget - digunakan untuk memberikan informasi instan di Pusat Pemberitahuan. Anda dapat mempertimbangkan mereka sebagai respon terhadap live tiles Windows Phone dan Android widget home screen.
- meningkatkan pertukaran (Share ekstensi) - memungkinkan Anda untuk mengirim foto, link atau file lainnya dari aplikasi di layanan online. Seperti posting foto di Pinterest atau upload file ke Dropbox atau onedrive langsung dari aplikasi.
- scaling up (Aksi ekstensi) - digunakan untuk "manipulasi atau konten melihat dalam konteks aplikasi lain." Dengan kata lain, ini berarti bahwa Anda dapat mengedit foto, yang terkandung dalam dokumen teks, atau, Misalnya, seperti yang ditunjukkan dalam presentasi, penggunaan sesuatu seperti Bing Terjemahkan untuk menerjemahkan teks dalam jendela Safari.
- Ekstensi untuk mengedit foto (Photo Editing ekstensi) - dapat menggunakan kemampuan mengedit aplikasi lain saat melihat gambar dalam kamera roll.
- penyimpanan diperluas (Storage ekstensi Provider) - memungkinkan aplikasi untuk membuka dokumen dari sejumlah penyimpanan awan. Sebagai contoh, Anda dapat menggunakan untuk menyimpan dokumen Anda Dropbox dan akses langsung dari Kantor iPad atau Pages.
- Ekstensi untuk keyboard pihak ketiga (Ekstensi Keyboard Custom) - mengganti keyboard standar di iOS.
Kata ekstensi iOS, tapi banyak dari mereka (termasuk widget bertukar dan ekspansi al.) Berjalan di OS X Yosemite, serta di iOS. aplikasi dari pengembang App Store Mac wajah pembatasan serupa sandbox dan pelaksanaan ekstensi menggigit mempermudah hidup mereka. Padahal, kemungkinan besar, banyak pengembang terus menghindari mereka, menghindari Mac App Store sama sekali.
Ini daftar awal ekstensi poin berbeda dari maksud sistem (sistem Niat), bekerja di Android. Aplikasi di Android menggunakan filter untuk memahami sistem operasi apa tindakan yang bisa mereka melakukan dan menangani. Misalnya, Twitter dan Facebook bisa posting foto dan link; Google Drive, dan Dropbox dapat men-download berbagai file; Chrome dan Firefox dapat membuka halaman web, dll pengembang pihak ketiga bahkan dapat mengatur filter diri mereka sendiri, yang akan beroperasi di sistem operasi.
Pada saat yang sama, iOS jauh keterbatasan dalam hal ini, meskipun tidak tanpa alasan. Namun, untuk pengguna biasa tidak akan melihat semua ini dan memperluas sedikit daripada akan berbeda dari rekan-rekan mereka Android, iOS tetap menjaga kebijakan keamanan.
Cara menginstal ekstensi, dan bagaimana mereka bekerja?
Serta semua aplikasi resmi untuk iOS, ekstensi didownload dari App Store. Keterbatasan terbesar di sini adalah bahwa Apple tidak memungkinkan pengembang untuk menerbitkan ekstensi di "bentuk murni". Setiap ekstensi harus didistribusikan sebagai bagian dari aplikasi (berisi aplikasi), yang pada gilirannya akan membawa setiap fungsi dasar dan berguna bagi pengguna. Artinya, pengembang tidak bisa mempublikasikan ke App Store hanya widget atau hanya keyboard, seperti yang terjadi sekarang di Android. Pada saat yang sama, Apple tidak memaksakan pembatasan pada jumlah dan jenis ekstensi, yang dapat berisi aplikasi Anda.
rekomendasi lain untuk pengembang Apple tidak diperlukan. Hal ini berlaku untuk desain ekstensi, yang harus sesuai dengan aplikasi OS standar: widget tidak berbeda dari widget yang ada di Pusat Pemberitahuan, dan foto editing menu di Camera Roll - radikal berbeda dari asli. Mungkin ada orang-orang yang gagal untuk mematuhi rekomendasi ini, tetapi terutama karena mayoritas pengembang dan mematuhi dengan filosofi Apple saat membuat aplikasi mereka.
Setiap ekstensi diaktifkan dengan cara yang berbeda. Widget - dari Pusat Pemberitahuan, keyboard - dari pengaturan sistem regional. Perluasan mengedit foto dan penyimpanan dipanggil hanya dalam situasi tertentu aplikasi yang menyediakan interaksi dengan mereka. Meningkatkan pertukaran dan tindakan dapat dipanggil dari aplikasi apapun, tetapi pengembang harus menambahkan aturan aktivasi untuk memperluas dan menentukan data yang akan diproses. Jika ekstensi Anda hanya menyediakan untuk pertukaran foto, Anda perlu menentukan dalam aktivasi aturan bahwa ekspansi tidak muncul ketika pengguna ingin berbagi link atau dokumen.
Terlepas dari kenyataan bahwa semua ekstensi harus "dikemas" dalam (aplikasi yang mengandung) aplikasi, mereka dapat bekerja secara independen. Setiap ekstensi - ini adalah biner .appex-file yang kecil, yang membuka pekerjaan yang dilakukan dan ditutup tanpa harus memulai aplikasi utama. Untuk ekstensi yang melakukan tugas yang sama sebagai aplikasi utama mereka (misalnya Instagram, digunakan untuk menambahkan filter untuk gambar) dianjurkan untuk menggunakan built-in kerangka kerja untuk transmisi kode dieksekusi diperlukan untuk tugas masing-masing. Buat kerangka, memasukkan kode tersebut di sana dan Anda akan mampu membangun kerangka ini baik dalam aplikasi dan ekstensi. Satu-satunya batasan di sini adalah bahwa aplikasi ini akan membutuhkan iOS versi 8 ke atas, tidak akan berjalan pada sistem operasi sebelumnya.
Salah satu alasan untuk perluasan dijalankan secara terpisah dari aplikasi daripadanya, Apple keras batasan pada jumlah memori yang dikonsumsi. Secara khusus ini berlaku untuk widget, sebagai pengguna dapat memiliki beberapa widget bersamaan.
Selain itu, widget tidak bekerja untuk waktu yang lama, dan secara paksa dihapus dari perangkat setelah penutupan. Untuk ekstensi yang melakukan tugas-tugas latar belakang yang panjang, seperti men-download file, Apple menyarankan untuk mentransfer ini sistem tugas, dan kemudian menutupnya.
Itu semua poin utama, pada ekstensi iOS. Seperti yang Anda lihat semua ekstensi yang mungkin ketat didokumentasikan, tetapi adalah penting untuk fakta bahwa meskipun kekuatan ditingkatkan, disediakan oleh pengembang dan aplikasi mereka, mereka tidak melanggar sudah ada kebijakan keamanan dan bekerja dalam nya "Sandbox".
Keamanan data pengguna. Perbedaan dari Android
Singkatnya, perbedaan antara pendekatan untuk privasi dan keamanan data iOS dan Android pengguna Ini adalah bahwa yang terakhir menyediakan pengembang dengan sejumlah tali, yang cukup untuk menggantung dirinya sendiri.
Bahkan, jika pengguna Android menggunakan pengaturan keamanan default sebelum instalasi setiap aplikasi membaca daftar ekstensif hal yang dapat dilakukan - bahaya data pribadi mereka kepada pihak ketiga atau infeksi malware tidak begitu besar. Tapi aplikasi semua hak-hak ini menyebabkan kebingungan. Sebagian orang memilih untuk menginstal aplikasi tidak hanya dari Google Play, tetapi juga dari sumber lain; orang lain ingin mendapatkan root-akses, untuk menginstal distribusi alternatif - tidak ada masalah, semuanya mungkin dengan Android. Hal-hal seperti yang menarik beberapa pengguna untuk platform, tetapi mereka melakukan semuanya risiko Anda sendiri.
Lihatlah iOS, yang, bahkan dengan pengenalan ekspansi masih erects hambatan antara aplikasi dan ekstensi dan data mereka aplikasi untuk pengguna melindungi (dan informasi mereka) dari diri mereka sendiri. Seperti yang telah kami katakan, masih aplikasi tidak dapat mengatasi satu sama lain secara langsung, karena ekspansi adalah file biner kecil yang dijalankan secara terpisah dari aplikasi yang mengandung. Setiap aplikasi yang menyebabkan (app tuan rumah dalam terminologi Apple) ekspansi mengacu untuk memperluas, tetapi tidak untuk aplikasi yang terdiri dari (mengandung aplikasi). Dalam hal ini, ketika aplikasi host perlu menggunakan ekstensi, ia akan mengirimkan permintaan melalui kerangka sistem, daripada langsung, dan tidak akan pernah memiliki akses ke data aplikasi.
Pengembang FortyTwo Inc. Eduardo Fonseca menjelaskan bagaimana mengelola untuk menjaga iOS, dan ekstensi "pada jarak yang aman."
"Setiap ekstensi - ini adalah bundel terpisah (bundel) di dalam aplikasi bundel utama yang berisi executable terpisah" - kata Fonseca. "Yang lucu di sini adalah bahwa ekspansi bukan aplikasi. Hal ini disebabkan melalui kerangka sistem Apple, menggunakan antarmuka yang jelas, yang memulai proses memulai ekspansi. Dalam hal ini, kode dijalankan secara terpisah, dan ini menunjukkan bahwa kinerja kode pihak ketiga tidak dapat berada di dalam aplikasi. Oleh karena itu, tidak ada risiko bahwa aplikasi yang akan mendukung ekstensi (seperti Safari), Anda mungkin mengalami masalah ketika Anda menggunakan ekstensi dalam aplikasi lain. Mereka seperti minyak dan air - mereka tidak campuran ".
Bahkan jika ekspansi perlu untuk merujuk untuk memiliki aplikasi yang sama, itu Buet hanya terjadi melalui sistem API. Secara default, aplikasi berisi perpanjangan dan perluasan itu sendiri tidak dapat mengakses data masing-masing.
Untuk pertukaran data antara mereka, Anda perlu membuat mereka bagian dari kelompok aplikasi (App Group), yang akan memungkinkan mereka untuk memiliki beberapa informasi umum dalam wadah eksternal, baik di luar sandbox. Anda mungkin memperhatikan bahwa setelah login ke akun Anda di Google Chrome di iOS, Anda juga akan login dan untuk Google Maps dan Google Drive - itu adalah hasil dari menggunakan App Group. Tetapi bahkan kelompok-kelompok ini terbatas pada jenis tertentu dari data yang dapat ditukar. Diizinkan informasi rekening cache database pertukaran. Namun, untuk dokumen lokal dan file media ini tidak terjadi - mereka masih dilarang.
Sederhananya, Apple tidak ingin beberapa aplikasi untuk memiliki akses ke sandbox lainnya. Ekstensi adalah sandbox kecil dalam sandbox lain, yang akan memfasilitasi interaksi aplikasi yang berbeda, tetapi tidak pernah diizinkan dekat meluncurkan aplikasi (host aplikasi) aplikasi data yang berisi ekstensi (mengandung app).
Mekanisme menjalankan Ekstensi juga berbeda dari aplikasi. Jika Anda menjalankan ekstensi yang sama di beberapa aplikasi, seperti Safari dan Mail, sistem akan membuka dua salinan dari ekspansi ini, yang akan berjalan di proses terpisah. ekstensi ini disimpan dalam area memori yang berbeda. Dengan demikian informasi dari kedua aplikasi disimpan di tempat yang berbeda, dan mereka hanya memiliki akses ke data mereka. Untuk alasan yang sama, browser membuka berbagai situs di tab terpisah.
Android menyediakan model sandbox sendiri, yang juga bertujuan untuk melindungi data yang tersimpan dalam satu aplikasi dari aplikasi lain yang tidak memiliki akses kepada mereka (meskipun, jika diinginkan, pengembang dapat dengan mudah bekerja di sekitar itu). Terutama berbahaya di sini adalah pemberian hak untuk membaca dan akses tulis ke semua data dari aplikasi yang usang bahkan Android 4.2., meskipun aplikasi ini masih dapat mengakses data lainnya aplikasi.
Sekali lagi, semua mekanisme ini hanya efektif bila digunakan dengan benar, tetapi orang-orang cenderung langka membaca perjanjian lisensi dan hanya setuju dengan permintaan tersebut, yang menyediakan perangkat lunak untuk menginstal, mengekspos data mereka risiko. Apple sangat cocok untuk masalah ini, dan bahkan sekarang di iOS memiliki pengaturan yang nyaman dengan switch privasi, yang dapat dilihat dengan jelas apa yang prilolzheniya menggunakan beberapa informasi. Sesuatu seperti Google mengumumkan Android 4.4, tetapi dalam rilis final ini, sayangnya, tidak ada. Tidak memiliki hubungan langsung dengan ekstensi, tapi ini adalah contoh yang baik tentang bagaimana iOS 8, terus mengorbankan fleksibilitas demi keamanan dan privasi pengguna.
Apple juga menerapkan pembatasan lain pada ekspansi - mereka tidak dapat menggunakan semua API, yang diakses oleh aplikasi. Dalam keyboard kustom khusus sejumlah persyaratan wajib dan aturan terbatas. Mekanisme ekstensi Apel interaksi berbeda dengan penggunaan bahwa Google dan, pada kenyataannya, iOS 8 tetap tertutup sistem operasi, dibandingkan dengan Android. Aplikasi pihak ketiga masih tidak dapat berkomunikasi secara langsung antara mereka, dan unsur-unsur sistem seperti home screen atau layar kunci tidak setuju untuk kustomisasi, serta aplikasi untuk Default.
Namun demikian, tampaknya bahwa Apple akhirnya mendengarkan keluhan terbesar tunggal tentang platform mobile dan telah mengambil langkah-langkah, tapi karakteristik untuk gayanya, tanpa tindakan drastis, yang bisa meningkatkan persyaratan memori atau ancaman keamanan pengguna. Sekarang, sementara iOS 8 belum diterbitkan, sulit untuk menilai keuntungan dan kerugian dari pendekatan semacam itu, tapi di atas kertas itu semua terlihat sangat menjanjikan.
(melalui)