Showing posts with label Android Kotlin Gratis. Show all posts
Showing posts with label Android Kotlin Gratis. Show all posts

Sunday, January 12, 2020

Peluncuran Flutter 1.2 di Mobile World Congress

Tim Flutter mengadakan Mobile World Congress di Barcelona, pertemuan tahunan terbesar industri teknologi seluler. Satu tahun yang lalu, kami mengumumkan Flutter versi beta pertama di event ini, dan sejak saat itu Flutter tumbuh lebih cepat dari yang bisa kami bayangkan. Jadi sepertinya hal yang pas untuk merayakan peristiwa tahunan ini adalah dengan rilis update stabil pertama untuk Flutter.


Flutter 1.2
Flutter 1.2 adalah update fitur yang pertama untuk Flutter. Kami memfokuskan rilis ini pada beberapa bidang utama:
Peningkatan stabilitas, kinerja, dan kualitas framework inti.

Menyempurnakan sentuhan akhir visual dan fungsionalitas widget yang ada.

Perangkat berbasis web baru untuk developer yang membangun aplikasi Flutter.

Setelah meluncurkan Flutter 1.0, kami memfokuskan banyak energi dalam beberapa bulan terakhir ini untuk meningkatkan pengujian dan infrastruktur kode kami, membersihkan tumpukan permintaan pull, dan meningkatkan kinerja serta kualitas framework secara keseluruhan. Kami memiliki daftar lengkap permintaan ini di wiki Flutter untuk mereka yang tertarik pada detailnya. Pekerjaan ini juga meliputi dukungan yang lebih luas untuk bahasa UI baru seperti Swahili.

Kami terus melakukan penyempurnaan pada set widget Material dan Cupertino, untuk mendukung penggunaan Material yang lebih fleksibel dan terus mengusahakan kesesuaian pixel-perfect di iOS. Pekerjaan yang terakhir meliputi dukungan untuk mengedit teks floating cursor, serta menunjukkan perhatian terus-menerus pada detail kecil (misalnya, kami mengupdate cara kursor pengedit teks menggambar di iOS untuk representasi yang sebenarnya dari urutan animasi dan penggambaran). Kami menambahkan dukungan untuk rangkaian fungsi kemudahan animasi yang lebih luas, terinspirasi oleh karya Robert Penner. Kami juga menambahkan dukungan untuk event keyboard baru dan dukungan untuk mengarahkan kursor mouse, sebagai persiapan untuk dukungan yang lebih mendalam bagi sistem operasi desktop-class.

Tim plugin juga sibuk di Flutter 1.2, dengan pekerjaan yang sedang berlangsung untuk mendukung pembelian dalam apl, serta banyak perbaikan bug untuk pemutar video, webview, dan peta. Dan berkat permintaan pull yang dikontribusikan oleh developer dari Intuit, kami sekarang memiliki dukungan untuk Android App Bundles, format pengemasan baru yang membantu mengurangi ukuran aplikasi dan mengaktifkan fitur-fitur baru seperti pengiriman dinamis untuk aplikasi Android.

Terakhir, Flutter 1.2 menyertakan Dart 2.2 SDK, update yang membawa peningkatan kinerja signifikan untuk kode terkompilasi bersama dengan dukungan bahasa baru untuk menginisialisasi set. Untuk informasi selengkapnya tentang pekerjaan ini, Anda bisa membaca pemberitahuan Dart 2.2.
(Sebagai tambahan, beberapa orang mungkin bertanya-tanya mengapa rilis ini diberi nomor 1.2. Tujuan kami adalah meluncurkan rilis 1.x ke saluran 'beta' setiap bulannya, dan merilis update kira-kira setiap kuartal ke saluran 'stabil' yang siap untuk penggunaan produksi. Versi 1.1 bulan lalu adalah rilis beta, dan karenanya 1.2 adalah rilis stabil kami yang pertama.)

Fitur Baru untuk Developer Flutter

Developer seluler berasal dari berbagai latar belakang dan sering kali memilih fitur pemrograman dan editor yang berbeda. Flutter sendiri mendukung fitur yang beragam, termasuk dukungan kelas satu untuk Android Studio dan Visual Studio Code serta dukungan untuk membangun aplikasi dari baris perintah, jadi kami tahu bahwa kami membutuhkan fleksibilitas dalam cara kami mengekspos proses debug dan fitur inspeksi runtime.

Bersama Flutter 1.2, kami gembira bisa memperlihatkan pratinjau rangkaian fitur pemrograman berbasis web yang baru untuk membantu developer Flutter melakukan debug dan menganalisis aplikasi mereka. Fitur-fitur ini sekarang bisa diinstal bersama dengan ekstensi dan add-in untuk Visual Studio Code dan Android Studio, dan menawarkan sejumlah kemampuan:

Widget inspector, yang memungkinkan visualisasi dan eksplorasi hierarki pohon yang digunakan Flutter untuk rendering.
Tampilan timeline yang membantu Anda mendiagnosis aplikasi pada level bingkai-per-bingkai, mengidentifikasi pekerjaan rendering dan komputasi yang mungkin menyebabkan 'sendatan' animasi dalam aplikasi Anda.

Source-level debugger lengkap yang memungkinkan Anda menyusuri kode, menyetel breakpoint, dan menyelidiki tumpukan panggilan.

Tampilan logging yang menunjukkan aktivitas yang Anda log dari aplikasi serta kejadian jaringan, framework dan pembersihan sampah memori.



Kami berencana untuk berinvestasi lebih lanjut dalam perangkat berbasis web baru ini untuk developer Flutter serta Dart dan, seiring meningkatnya pengalaman berbasis web, kami berencana untuk membangun layanan ini langsung ke fitur seperti Visual Studio Code.
Apa yang berikutnya untuk Flutter?

Selain karya engineering, kami membutuhkan sedikit waktu setelah Flutter 1.0 untuk mendokumentasikan roadmap 2019, dan Anda akan melihat bahwa kami memiliki banyak pekerjaan di depan kami.

Fokus besar untuk 2019 adalah mengembangkan Flutter melampaui platform seluler. Di Flutter Live, kami mengumumkan project bernama sandi "Hummingbird", yang membawa Flutter ke web, dan kami berencana untuk membagikan pratinjau teknis dalam beberapa bulan mendatang. Selain itu, kami terus berupaya menghadirkan Flutter ke perangkat desktop-class; ini membutuhkan usaha baik pada tingkat framework seperti dijelaskan di atas, serta kemampuan untuk mengemas dan menerapkan aplikasi ke sistem operasi seperti Windows dan Mac, di mana kami berinvestasi melalui project Flutter Desktop Embedding.
Flutter Create: apa yang bisa Anda lakukan dengan 5K dari Dart?

Kami juga bersemangat meluncurkan Flutter Create, sebuah kontes yang menantang Anda untuk membangun sesuatu yang menarik, menginspirasi, dan indah dengan Flutter menggunakan lima kilobyte atau kurang dari kode Dart. 5K tidaklah banyak -- untuk file MP3 biasa, ini sekitar sepertiga detik musik -- tetapi kami bertaruh Anda bisa membuat kami takjub dengan apa yang dapat Anda capai di Flutter dengan kode yang sangat kecil tersebut.


Kontes ini berjalan hingga 7 April, jadi Anda punya waktu beberapa minggu untuk membangun sesuatu yang keren. Kami memiliki beberapa hadiah menarik, termasuk workstation developer iMac Pro komplet dengan prosesor 14-inti dan memori 128GB yang bernilai lebih dari $10.000! Kami akan mengumumkan pemenang di Google I/O, di mana kami akan mengadakan sejumlah pembicaraan Flutter, codelab, dan aktivitas.

//developers-id.googleblog.com/2019/03/peluncuran-flutter-12-di-mobile-world.html

Saturday, January 11, 2020

Flutter Release versi 1: Langsung dari GMTC di Beijing

Hari ini di GMTC front-end conference di Beijing, kami mengumumkan Flutter Release Preview versi 1, yang menandakan fase baru pengembangan bagi Flutter selagi kita bergerak menuju tahap akhir stabilisasi untuk versi 1.0.


Google I/O bulan lalu adalah perayaan bagi tim Flutter: mencapai versi Beta, kami senang sekali bisa bertemu dengan banyak developer yang belajar, membuat prototipe, atau build dengan Flutter. Segera setelah Google I/O, kami terus melihat pertumbuhan cepat dalam ekosistem Flutter, dengan peningkatan 50% pada pengguna Flutter aktif. Kami juga melihat lebih dari 150 event Flutter individual yang diselenggarakan di lima puluh negara: dari New York City hingga Uyo, Nigeria; dari Tokyo dan Osaka di Jepang hingga Nuremberg, Jerman.


Salah satu pengukur umum dari momentum komunitas adalah jumlah bintang GitHub, dan kami juga melihat pertumbuhan yang luar biasa di sini, dengan Flutter menjadi salah satu dari 100 repo software terbaik di GitHub pada bulan Mei.

Pengumuman Flutter Release Preview versi 1
Hari ini kami mengambil langkah besar ke depan, dengan ketersediaan langsung Flutter Release Preview versi 1. Tampaknya sangat menguntungkan melakukan pengumuman ini di Beijing pada GMTC Global Front-End Conference. Cina adalah populasi developer terbesar ketiga yang menggunakan Flutter, setelah Amerika Serikat dan India. Perusahaan seperti Alibaba dan Tencent sudah mengadopsi Flutter untuk aplikasi produksi, dan terdapat komunitas lokal yang semakin bertambah yang menerjemahkan konten dan menambahkan package serta cermin untuk developer Cina.

Perubahan dari versi Beta ke ke release preview bersama rilis ini menandakan kepercayaan kami pada stabilitas dan kualitas dari apa yang kami miliki dengan Flutter, dan fokus kami pada perbaikan bug dan stabilisasi.

Kami telah memposting artikel yang lebih panjang dengan detail mengenai apa yang baru di Flutter Release Preview versi 1 di saluran Medium kami. Anda bisa mendownload Flutter Release Preview versi 1 langsung dari situs Flutter, atau cukup jalankan flutter upgrade dari penginstalan lama.

Sangat menyenangkan melihat orang lain merasakan Flutter untuk pertama kalinya. Artikel dari developer iOS yang baru saja menyelesaikan porting Aplikasi iOS ke Flutter adalah dukungan positif bagi kesiapan project ini untuk penggunaan produksi dunia nyata:

"Saya belum pernah begitu bersemangat lagi tentang teknologi sejak Ruby on Rails atau Go... Setelah mendedikasikan bertahun-tahun mempelajari pengembangan Aplikasi iOS secara mendalam, saya merasa sangat bersalah karena telah mengabaikan begitu banyak teman-teman Android di luar sana. Selain itu, mempelajari framework lintas platform lainnya pada saat itu sangat tidak menarik bagi saya karena apa yang tersedia... Menulis aplikasi Flutter telah menjadi tes lakmus dan Flutter lulus tes tersebut. Flutter adalah sesuatu yang saya rasakan benar-benar bisa saya dalami dan yang paling penting, saya benar-benar menikmatinya."

Karena kami semakin dekat memublikasikan rilis pertama saluran "stabil", kami sudah siap bagi lebih banyak developer untuk mem-build dan menerapkan solusi yang menggunakan Release Preview ini. Ada banyak penawaran pelatihan untuk membantu Anda mempelajari Flutter: dari sesi I/O hingga newsletter hingga video praktik hingga acara developer. Kami ingin segera melihat kreasi yang Anda build!

//developers-id.googleblog.com/2018/07/flutter-release-preview-versi-1.html

Friday, January 10, 2020

Aplikasi Hamilton yang dibuat dalam 3 bulan dengan Flutter meraih lebih dari 1 juta penginstalan [Video]

Aslinya diposting pada Flutter Medium oleh Martin Aguinis


Hamilton dan Posse, agensi desain dan pengembangan di New York, hanya membutuhkan tiga bulan untuk mengembangkan dan meluncurkan aplikasi seluler bagi acara Broadway yang sedang hit. Bagaimana mereka melakukannya? Menggunakan Flutter, framework UI seluler Google yang baru.

Menjangkau jutaan pengguna — dengan setengah juta pengguna aktif bulanan yang luar biasa dan dipublikasikan di App Store dan Google Play— aplikasi memungkinkan penggemar memasukkan lotre tiket, membeli merchandise, bermain trivia, berfoto selfie dengan #HamCam, membaca berita dan interviu terupdate, dan banyak lagi.

Tonton studi kasus video ini untuk melihat bagaimana Flutter terus membantu aplikasi seperti Hamilton agar berhasil di iOS dan Android. Anda bisa membaca detail selengkapnya tentang pengembangan aplikasi ini pada entri blog Posse.

Flutter gratis dan open source. Mulai sekarang di flutter.io. Kami tak sabar ingin segera melihat kreasi Anda!

//developers-id.googleblog.com/2018/04/video-aplikasi-hamilton-yang-dibuat.html

Thursday, October 24, 2019

Kotlin untuk Android

Hari ini menandai awal KotlinConf 2018 - pertemuan tatap muka tahunan terbesar komunitas Kotlin. 2018 menjadi tahun yang besar bagi Kotlin, karena bahasa ini semakin banyak diadopsi dan disukai developer. Bahkan, 27% dari 1.000 aplikasi Android teratas di Google Play sudah menggunakan Kotlin. Yang lebih penting lagi, developer Android sangat menyukai bahasa ini dengan tingkat kepuasan lebih dari 97% dalam survei terbaru kami. Tidaklah mengherankan sehingga Kotlin terpilih sebagai bahasa #2 yang paling disukai dalam survei StackOverflow 2018.

Google mendukung Kotlin sebagai bahasa pemrograman kelas-satu untuk pengembangan Android. Dalam 12 bulan terakhir, kami telah memberikan sejumlah perbaikan penting untuk pengalaman developer Kotlin. Ini termasuk SDK ramah-Kotlin, Android KTX, pemeriksaan Lint baru dan berbagai perbaikan dukungan Kotlin di Android Studio. Kami juga telah meluncurkan dukungan Kotlin dalam dokumentasi resmi kami, contoh-contoh unggulan baru di Kotlin, kursus Kotlin Bootcamp Udacity baru, #31DaysOfKotlin dan konten mendalam lainnya. Kami berkomitmen untuk terus meningkatkan pengalaman developer Kotlin.

Seiring dengan terus berkembangnya bahasa, semakin banyak developer yang menemukan keunggulan Kotlin di seluruh dunia. Baru-baru ini, kami melakukan perjalanan ke India dan bekerja dengan developer lokal seperti Zomato untuk lebih memahami bagaimana adopsi Kotlin telah menguntungkan pengembangan Android mereka. Zomato adalah layanan penelusuran & penemuan restoran terkemuka yang beroperasi di 24 negara, dengan lebih dari 150 juta pengguna setiap bulan. Kotlin membantu Zomato mengurangi jumlah baris kode di aplikasi mereka secara signifikan, dan Kotlin juga membantu mereka menemukan cacat penting dalam aplikasi mereka pada waktu kompilasi. Anda bisa menonton kisah adopsi Kotlin mereka dalam video di bawah ini.

Android Developer Story: Zomato uses Kotlin to write safer, more concise code.
Melampaui Android, dengan senang hati kami umumkan bahwa tim Google Cloud Platform meluncurkan portal Kotlin khusus hari ini. Ini akan mempermudah developer dalam menemukan sumber daya yang terkait dengan Kotlin di Google Cloud. Kami ingin membuat penggunaan Kotlin semudah mungkin bagi Anda, baik di seluler atau di Cloud.



Halaman beranda Kotlin di Google Cloud Platform
Mengadopsi bahasa baru adalah keputusan yang besar bagi kebanyakan perusahaan, dan Anda harus yakin bahwa bahasa yang Anda pilih memiliki masa depan cerah. Itulah sebabnya Google bergabung dengan JetBrains dan mendirikan Kotlin Foundation. Kotlin Foundation akan memastikan bahwa Kotlin terus berkembang pesat, tetap bebas dan terbuka. Anda bisa mempelajari lebih lanjut tentang Kotlin Foundation di sini.

Sangat menarik menjadi developer Kotlin. Jika Anda belum mencoba Kotlin, kami mendorong Anda untuk bergabung dengan komunitas global yang sedang berkembang ini. Anda bisa memulai dengan mengunjungi kotlinlang.org atau halaman Kotlin Developer Android.
Share on Twitter Share on Facebook

lihat selengkapnya disini https://developers-id.googleblog.com/2018/10/momentum-kotlin-untuk-android-dan.html

Wednesday, October 23, 2019

backup Android Anda

backup Android Anda

Android adalah semua tentang pilihan. Karena itulah, Android berusaha menyediakan banyak pilihan bagi pengguna untuk melindungi data mereka. Dengan menggabungkan Android Backup Service dan Google Cloud Titan Technology, Android mengambil langkah tambahan untuk mengamankan data pengguna sembari menjaga privasi mereka.

Mulai Android Pie, perangkat bisa memanfaatkan kemampuan baru ketika data aplikasi yang di-backup hanya bisa didekripsi oleh kunci yang dihasilkan secara acak di klien. Kunci dekripsi ini dienkripsi menggunakan PIN/pola/kode sandi kunci pengguna, yang tidak diketahui oleh Google. Kemudian, material kunci yang dilindungi kode sandi ini dienkripsi ke chip keamanan Titan di lantai pusat data kami. Chip Titan dikonfigurasikan untuk hanya merilis kunci dekripsi backup ketika menerima klaim yang benar yang berasal dari kode sandi pengguna. Karena chip Titan harus mengotorisasi setiap akses ke kunci dekripsi, ia bisa memblokir akses secara permanen setelah terlalu banyak upaya yang salah dalam menebak kode sandi pengguna, sehingga mengurangi serangan brute force. Jumlah upaya yang salah dibatasi secara ketat oleh firmware Titan khusus yang tidak bisa diupdate tanpa menghapus isi chip. Secara desain, ini berarti bahwa tidak seorang pun (termasuk Google) bisa mengakses data aplikasi backup pengguna tanpa secara khusus mengetahui kode sandi mereka.

Untuk meningkatkan kepercayaan diri kami bahwa teknologi baru ini secara aman mencegah siapa pun mengakses data aplikasi yang di-backup pengguna, tim Android Security & Privacy menyewa ahli keamanan cyber global dan mitigasi risiko NCC Group untuk menyelesaikan audit keamanan. Beberapa hasilnya mencakup hal positif seputar proses desain keamanan Google, validasi kualitas kode, dan mitigasi untuk vektor serangan yang dikenal telah dipertimbangkan sebelum peluncuran layanan. Saat ada beberapa masalah yang ditemukan selama audit ini, para engineer segera memperbaikinya. Untuk detail selengkapnya tentang cara kerja layanan menyeluruh dan laporan terperinci temuan NCC Group, klik di sini.

Mendapatkan tinjauan eksternal untuk upaya keamanan kami adalah salah satu dari banyak cara kami dalam menunjukkan bahwa Google dan Android menjaga transparansi dan keterbukaan yang pada gilirannya akan membantu pengguna merasa aman ketika menyangkut data mereka. Baik itu 100-an jam data game atau preferensi personalisasi di Google app favorit Anda, informasi pengguna kami selalu terlindungi.

Kami ingin berterima kasih atas kontribusi Shabsi Walfish, Software Engineering Lead, Identity and Authentication untuk karya ini

lihat selengkapnya disini https://developers-id.googleblog.com/2018/11/google-melindungi-backup-anda.html

Tuesday, October 22, 2019

Memperkenalkan WorkManager



Ada banyak pertimbangan dan praktik terbaik untuk menangani pekerjaan latar belakang, yang diuraikan dalam seri entri blog Google Power. Salah satu hal yang berulang kali disebut adalah library Android Jetpack yang disebut WorkManager, yang memperluas kemampuan API framework JobScheduler dan mendukung Android 4.0+ (API 14+). WorkManager beta baru saja dirilis hari ini!
Entri blog ini adalah yang pertama dari seri baru WorkManager. Kita akan menjelajahi dasar-dasar WorkManager, bagaimana dan kapan waktu yang tepat menggunakannya, dan apa yang terjadi di balik layar. Kemudian kita akan membahas kasus penggunaan yang lebih kompleks.

Apa yang dimaksud dengan WorkManager?
WorkManager adalah salah satu Komponen Arsitektur Android dan merupakan bagian dari Android Jetpack, sebuah cara baru dan ringkas dalam cara membangun aplikasi Android modern.

WorkManager adalah library Android yang menjalankan pekerjaan latar belakang yang dapat ditangguhkan saat batasan pekerjaan terpenuhi.

WorkManager ditujukan untuk tugas-tugas yang membutuhkan jaminan bahwa sistem akan menjalankannya bahkan bila aplikasi ditutup.

Dengan kata lain, WorkManager menyediakan API ramah-baterai yang merangkum evolusi bertahun-tahun dari pembatasan perilaku latar belakang Android. Ini sangat penting untuk aplikasi Android yang perlu menjalankan tugas latar belakang!

Kapan waktu yang tepat menggunakan WorkManager
WorkManager menangani pekerjaan latar belakang yang perlu dijalankan ketika berbagai batasan terpenuhi, terlepas dari apakah proses aplikasi tersebut aktif atau tidak. Pekerjaan latar belakang bisa dimulai saat aplikasi berada di latar belakang, saat aplikasi berada di latar depan, atau saat aplikasi dimulai di latar depan tetapi beralih ke latar belakang. Apa pun yang dilakukan aplikasi, pekerjaan latar belakang harus terus dijalankan, atau dimulai ulang bila Android mematikan prosesnya.

Salah satu kekeliruan umum tentang WorkManager adalah bahwa ia diperuntukkan bagi tugas yang perlu dijalankan di thread “latar belakang” tetapi tidak perlu bertahan dari penutupan prosesnya. Bukan itu masalahnya. Ada solusi lain untuk kasus penggunaan ini seperti coroutines Kotlin, ThreadPools, atau library seperti RxJava. Anda bisa menemukan informasi selengkapnya tentang kasus penggunaan ini dalam panduan pemrosesan latar belakang.

Ada banyak situasi berbeda ketika Anda perlu menjalankan pekerjaan latar belakang, dan karena itu Anda membutuhkan solusi berbeda untuk menjalankan pekerjaan latar belakang. Entri blog tentang pemrosesan latar belakang ini menyediakan banyak informasi keren tentang kapan waktu yang tepat menggunakan WorkManager. Lihatlah diagram berikut yang bersumber dari blog:



Diagram dari Modern background execution in Android
Dalam kasus WorkManager, ia cocok digunakan untuk pekerjaan latar belakang yang harus diselesaikan dan dapat ditangguhkan.

Untuk memulai, tanyakan pada diri Anda sendiri:
Apakah tugas ini harus diselesaikan?

Jika aplikasi ditutup pengguna, apakah ia masih harus menyelesaikan tugas? Contohnya adalah aplikasi catatan dengan sinkronisasi jarak jauh; setelah Anda selesai menulis catatan, Anda tentu berharap aplikasi akan menyinkronkan catatan dengan server backend. Semuanya ini tetap berjalan bahkan bila Anda beralih ke aplikasi lain dan OS harus menutup aplikasi tersebut untuk mendapatkan kembali sebagian memori. Ini juga harus tetap berjalan bahkan bila Anda memulai ulang perangkat. WorkManager memastikan tugas diselesaikan.

Apakah tugas ini dapat ditangguhkan?
Bisakah kita menjalankannya nanti, atau ini hanya berguna jika tugas dijalankan sekarang? Jika tugas bisa dijalankan nanti, berarti tugasnya dapat ditangguhkan. Kembali ke contoh sebelumnya, tentu sangat menyenangkan jika catatan Anda langsung segera diupload, tetapi bila ini tidak memungkinkan dan sinkronisasi terjadi belakangan, itu bukanlah masalah besar. WorkManager menghormati pembatasan latar belakang OS dan mencoba menjalankan pekerjaan Anda dengan penggunaan baterai seefisien mungkin.

Jadi, sebagai panduan, WorkManager ditujukan untuk tugas-tugas yang membutuhkan jaminan bahwa sistem akan menjalankannya, bahkan bila aplikasi ditutup. WorkManager tidak ditujukan untuk pekerjaan latar belakang yang membutuhkan eksekusi segera atau pada waktu yang tepat. Jika Anda membutuhkan agar sebuah pekerjaan dieksekusi pada waktu yang tepat (seperti jam alarm, atau pengingat acara), gunakan AlarmManager. Untuk pekerjaan yang harus dieksekusi dengan segera tetapi berjalan lama, sering kali Anda harus memastikan bahwa pekerjaan dieksekusi saat berada di latar depan; apakah itu dengan membatasi eksekusi ke latar depan (dalam hal ini, pekerjaan tersebut tidak lagi berjalan sebagai pekerjaan latar belakang) atau menggunakan Foreground Service.

WorkManager bisa dan sebaiknya dipasangkan dengan API lain saat Anda perlu memicu beberapa pekerjaan latar belakang dalam skenario yang lebih kompleks:

Jika server Anda memicu pekerjaan, WorkManager bisa dipasangkan dengan Firebase Cloud Messaging.

Jika Anda mendengarkan siaran menggunakan penerima siaran dan kemudian perlu memicu pekerjaan yang berjalan lama, Anda bisa menggunakan WorkManager. Perhatikan bahwa WorkManager menyediakan dukungan untuk banyak Constraints umum yang biasanya datang sebagai siaran — dalam kasus ini, Anda tidak perlu mendaftarkan penerima siaran Anda sendiri.

Mengapa menggunakan WorkManager?
WorkManager menjalankan pekerjaan latar belakang sembari menangani masalah kompatibilitas dan menjalankan praktik terbaik bagi baterai dan kesehatan sistem untuk Anda.

Selain itu, dengan menggunakan WorkManager, Anda bisa menjadwalkan tugas periodik dan rantai tugas dependen yang kompleks: pekerjaan latar belakang dapat dieksekusi secara paralel atau berurutan, dan Anda bisa menetapkan urutan eksekusi. WorkManager menangani input dan output antar tugas dengan lancar.

Anda juga bisa menetapkan kriteria mengenai kapan tugas latar belakang harus dijalankan. Misalnya, tidak ada alasan untuk membuat permintaan HTTP ke server jarak jauh jika perangkat tidak memiliki sambungan jaringan. Jadi, Anda bisa menetapkan Constraint bahwa suatu tugas hanya dapat dijalankan ketika terdapat sambungan jaringan.

Sebagai bagian dari eksekusi terjamin, WorkManager mengelola seluruh pekerjaan Anda bila perangkat dimulai ulang dan proses dihentikan secara paksa. Anda juga bisa dengan mudah menentukan strategi coba lagi jika pekerjaan Anda dihentikan dan Anda ingin mencobanya lagi nanti.

  • Yang terakhir, WorkManager memungkinkan Anda mengawasi status permintaan pekerjaan sehingga Anda bisa mengupdate UI.
  • Sebagai ringkasan, WorkManager menawarkan keuntungan berikut:
  • Menangani kompatibilitas dengan berbagai versi OS
  • Mengikuti praktik terbaik kesehatan sistem
  • Mendukung tugas tidak bersamaan dan tugas periodik
  • Mendukung tugas berantai dengan input/output
  • Anda bisa menyetel batasan kapan tugas dijalankan
  • Menjamin eksekusi tugas, bahkan bila aplikasi atau perangkat dimulai ulang

Mari kita lihat contoh konkretnya di mana kita membangun pipeline tugas bersamaan yang menerapkan filter ke sebuah gambar. Hasilnya kemudian dikirim ke tugas compress dan kemudian ke tugas upload.

Kita bisa menetapkan serangkaian batasan untuk tugas-tugas ini dan menentukan kapan mereka dapat dieksekusi:



Contoh rantai tugas dengan batasan
Semua pekerja ini menetapkan urutan yang tepat: mis. kita tidak tahu urutan pemfilteran gambar, tetapi kita tahu bahwa pekerja Compress hanya akan mulai setelah semua pekerja Filter selesai.

Cara kerja penjadwal WorkManager
Untuk memastikan kompatibilitas mundur ke API level 14, WorkManager memilih cara yang tepat untuk menjadwalkan tugas latar belakang bergantung pada API level perangkat. WorkManager bisa menggunakan JobScheduler atau kombinasi dari BroadcastReceiver dan AlarmManager.



Bagaimana WorkManager menentukan penjadwal yang akan digunakan
Apakah WorkManager siap digunakan untuk produksi?

WorkManager sekarang dalam versi beta. Ini berarti bahwa tidak akan ada perubahan yang merusak API dalam revisi utama ini.

Ketika WorkManager versi stabil sudah dirilis, WorkManager akan menjadi cara yang disukai untuk menjalankan tugas latar belakang. Karena alasan ini, sekaranglah saat yang tepat untuk mulai menggunakan WorkManager dan membantu mengembangkannya!

lihat selengkap nya disini https://developers-id.googleblog.com/2019/01/memperkenalkan-workmanager.html

Monday, October 21, 2019

Data Binding Android dan Pelajaran yang Didapat

Data Binding Library (yang selanjutnya akan kami sebut ‘DB library’ dalam postingan ini) menawarkan cara yang fleksibel dan kuat untuk mengikat data ke UI Anda, tetapi seperti pepatah lama: ‘kekuatan yang besar diikuti tanggung jawab yang besar’. Hanya karena Anda menggunakan pengikatan data, bukan berarti Anda bisa menghindar dari menjadi pelaku UI yang baik.
Saya telah menggunakan pengikatan data di Android selama beberapa tahun terakhir dan postingan ini merinci beberapa hal yang telah saya pelajari selama ini.

Gunakan pengikatan standar bila memungkinkan
Adapter pengikat khusus adalah cara terbaik untuk menambahkan fungsionalitas khusus ke View dengan mudah. Seperti banyak developer, saya bertindak agak jauh dengan adapter pengikatan dan berakhir dengan class yang penuh berisi 15 adapter dengan kualitas yang berbeda-beda.
Penyebabnya adalah sejumlah adapter yang menghasilkan string terformat dan menyetelnya di TextViews. Adapter biasanya dirujuk hanya dalam satu layout:

Meskipun ini mungkin terlihat pintar, tetapi ada tiga kelemahan besar:
Sulit mengaturnya. Kecuali jika Anda adalah seorang yang sangat teratur, Anda cenderung memiliki satu file besar yang berisi semua metode adapter Anda. Antitesis yang kohesif dan terpisah.
Anda harus menggunakan instrumentasi untuk pengujian. Menurut definisi, adapter pengikatan tidak menampilkan nilai, mereka mengambil input kemudian menetapkan properti pada tampilan. Ini berarti Anda harus menggunakan instrumentasi untuk menguji logika khusus Anda, yang membuat pengujian menjadi lebih lambat dan mungkin lebih sulit dijaga.

Kode adapter pengikatan khusus (biasanya) tidak optimal. Jika Anda memperhatikan pengikatan teks bawaan [di sini], Anda akan melihat bahwa ia melakukan banyak pemeriksaan untuk menghindari pemanggilan TextView.setText(), sehingga mengefisienkan pemberian layout yang tidak terpakai. Saya jatuh ke dalam perangkap berpikir bahwa DB Library akan secara otomatis mengoptimalkan update tampilan. Dan itu benar, tetapi hanya jika Anda menggunakan adapter pengikat bawaan yang dioptimalkan dengan cermat.

Sebagai gantinya, pisahkan logika metode Anda menjadi class yang kohesif (saya menyebutnya kreator teks), kemudian teruskan ke pengikatan. Dari sana Anda bisa memanggil kreator teks dan menggunakan pengikatan tampilan bawaan: Dengan cara ini, kita mendapatkan semua efisiensi dari pengikatan bawaan, dan kita bisa dengan mudah menguji unit kode yang menciptakan string terformat.

Menjadikan adapter pengikatan khusus Anda lebih efisien
Jika Anda benar-benar perlu menggunakan adapter khusus, karena fungsionalitas yang Anda inginkan tidak tersedia, maka cobalah membuatnya seefisien mungkin. Maksud saya adalah dengan menggunakan semua optimalisasi UI Android standar: hindari memicu perubahan ukuran/layout bila memungkinkan.

Hal ini bisa hal yang sederhana seperti memeriksa apa yang sedang digunakan oleh tampilan vs. apa yang Anda setel. Berikut adalah contoh di mana kita menerapkan kembali adapter ImageView standar untuk android:drawable: Sayangnya, tampilan tidak selalu bisa mengekspos status mengenai apa yang perlu kita periksa. Berikut adalah contoh dengan setelan toggle max-lines pada TextView. Ia memfungsikan toggle dengan mengubah properti maxLines TextView, bersama dengan transisi layout tertunda.



Supaya Anda bisa tahu tentang apa yang dilakukannya
Sebelumnya, adapter pengikatan berformat sederhana dan selalu menyetel properti maxLines, bersama dengan listener klik. TextView akan selalu memicu layout ketika setMaxLines() dipanggil, yang berarti bahwa setiap kali adapter pengikatan dijalankan, layout akan terpicu.

Jadi mari kita perbaiki. Karena fungsionalitas ini sepenuhnya terpisah dari TextView (kita hanya memanggil setMaxLines() dengan nilai yang berbeda saat diklik), kita perlu menyimpan sendiri status ‘current’. Untungnya, View memberikan kita cara praktis untuk melakukannya melalui mekanisme tag. Di sini, kita hanya menyimpan nilai collapsedMaxLines yang saat ini disetel dalam tag, dan ketika adapter dijalankan, kita memanggil setMaxLines(), dll. hanya jika nilainya berbeda.

lihat selengkapnya disini https://developers-id.googleblog.com/2019/01/data-binding-pelajaran-yang-didapat.html