Pertama, saya tidak tertarik melakukan ini secara profesional. Saya seorang pengembang web, rekan kerja saya baru-baru ini berangkat ke Spotify dan mengatakan ia akan bekerja sebagian besar dalam JavaScript untuk aplikasi Desktop Spotify. Dia mengatakan menggunakan "bingkai Chrome" dan semua yang ada di dalamnya dilakukan seperti aplikasi web (HTML / JS / CSS).
Sebagai pengembang web yang tidak pernah membuat apa pun untuk Desktop, ini adalah berita bagus. Jika saya bisa menggunakan teknologi saya sudah tahu dan menerapkannya di dalam semacam "bingkai" dan masih bisa membangun windows atau aplikasi lintas platform yang lebih baik.
Saya tahu saya tidak menyebutkan apa pun tentang basis data, tetapi bahkan aplikasi desktop hello world sederhana dengan teknologi web akan sangat bagus untuk memulai.
Jadi, bagaimana orang melakukannya? Apa tepatnya yang perlu / perlu saya ketahui?
Jawaban:
Anda dapat mulai dengan Titanium untuk dev desktop. Anda juga mungkin melihat Kerangka Tertanam Chromium . Ini pada dasarnya kontrol browser web berdasarkan chromium.
Ini ditulis dalam C ++ sehingga Anda dapat melakukan semua hal OS tingkat rendah yang Anda inginkan (Growl, ikon baki, akses file lokal, port com, dll) di aplikasi wadah Anda, dan kemudian semua logika aplikasi dan gui di html / javascript. Ini memungkinkan Anda untuk mencegat setiap permintaan http untuk melayani sumber daya lokal atau melakukan beberapa tindakan kustom. Misalnya, permintaan ke http://localapp.com/SetTrayIconState?state=active dapat dicegat oleh wadah dan kemudian memanggil fungsi C ++ untuk memperbarui ikon baki.
Ini juga memungkinkan Anda untuk membuat fungsi yang dapat dipanggil langsung dari JavaScript.
Sangat sulit untuk men-debug JavaScript secara langsung di CEF. Tidak ada dukungan untuk apa pun seperti Firebug.
Anda juga dapat mencoba AppJS.com (Membantu membangun Aplikasi Desktop. Untuk Linux, Windows dan Mac menggunakan HTML, CSS, dan JavaScript)
Juga, seperti yang ditunjukkan oleh @Clint, tim di brackets.io (Adobe) membuat shell yang mengagumkan menggunakan Chromium Embedded Framework yang membuatnya lebih mudah untuk memulai. Ini disebut shell kurung: github.com/adobe/brackets-shell Cari tahu lebih lanjut di sini: clintberry.com/2013/html5-desktop-apps-with-brackets-shell
sumber
NW.js
(Sebelumnya dikenal sebagai node-webkit)
Saya akan menyarankan NW.js jika Anda terbiasa dengan Node atau berpengalaman dengan JavaScript.
Anda dapat menemukan repo NW.js di sini , dan pengantar yang bagus untuk NW.js di sini . Jika Anda suka belajar Node.js saya akan merekomendasikan posting SO ini dengan banyak tautan bagus.
sumber
Memperbarui
Jawaban saya sebelumnya sudah usang. Hari-hari ini Anda akan gila untuk tidak melihat menggunakan Elektron untuk ini. Banyak aplikasi desktop populer telah dikembangkan di atasnya.
sumber
CATATAN: AppJS sudah usang dan tidak direkomendasikan lagi.
Lihatlah NW.js sebagai gantinya.
sumber
Tampaknya solusi untuk aplikasi desktop HTML / JS / CSS tidak kekurangan.
Salah satu solusi yang baru saja saya temui adalah TideSDK: http://www.tidesdk.org/ , yang tampaknya sangat menjanjikan, melihat dokumentasi.
Anda dapat mengembangkan dengan Python, PHP atau Ruby, dan mengemasnya untuk Mac, Windows atau Linux.
sumber
Maaf meledak gelembung Anda tapi klien Spotify desktop yang adalah hanya browser berbasis WebKit . Tentu saja memperlihatkan fungsi tambahan spesifik, tetapi hanya dapat menjalankan JS dan membuat HTML / CSS karena memiliki mesin JS serta mesin rendering Chromium. Ini tidak membantu Anda dengan coding aplikasi web sisi klien dan penyebaran ke berbagai platform.
Apa yang Anda cari mirip dengan Sencha Touch - kerangka kerja yang memungkinkan aplikasi HTML5 untuk digunakan secara native ke perangkat iOS, Android dan Blackberry. Ini pada dasarnya bertindak sebagai perantara antara panggilan API tertentu dan fungsionalitas khusus perangkat yang tersedia.
Saya tidak punya pengalaman dengan appcelerator , sedikit tampaknya melakukan hal itu - dan mendapatkan ulasan online yang sangat menguntungkan. Anda harus mencobanya (kecuali jika Anda ingin kembali ke tahun 1999 dan bergabung dengan MS HTA ;)
sumber
Saya tahu ada Fluid dan Prism (ada yang lain, itu yang dulu saya gunakan) yang memungkinkan Anda memuat situs web ke dalam apa yang tampak seperti aplikasi mandiri.
Di Chrome, Anda dapat membuat pintasan desktop untuk situs web. (Anda melakukannya dari dalam Chrome, Anda tidak bisa / seharusnya tidak mengemasnya dengan aplikasi Anda) Chrome Frame berbeda:
Anda harus memiliki semacam pembungkus seperti itu untuk aplikasi web Anda, dan sisanya adalah teknologi web yang biasa Anda gunakan. Anda dapat menggunakan penyimpanan lokal HTML5 untuk menyimpan data saat aplikasi offline. Saya pikir Anda bahkan dapat bekerja dengan SQLite.
Saya tidak tahu bagaimana cara mengakses fitur spesifik OS. Apa yang saya jelaskan di atas memiliki batasan yang sama dengan situs web "biasa". Semoga ini memberi Anda semacam panduan di mana untuk memulai.
sumber
Anda dapat membuat aplikasi Javascript dengan Adobe AIR ... http://www.adobe.com/products/air.html
sumber
CEF menawarkan banyak fleksibilitas dan opsi untuk penyesuaian. Tetapi jika tujuannya adalah untuk mengembangkan node-webkit dengan cepat juga merupakan pilihan yang baik. Node-web kit juga menawarkan kemampuan untuk memanggil modul simpul langsung dari DOM.
Jika tidak ada modul asli untuk mengintegrasikan Node-Webkit dapat menawarkan jarak tempuh yang lebih baik. Dengan modul asli C / C ++ atau bahkan C # lebih baik dengan CEF.
sumber