HTML / CSS / JavaScript kullanarak Masaüstü Uygulamaları nasıl geliştirilir? [kapalı]


189

İlk olarak, bunu profesyonel olarak yapmakla ilgilenmiyorum. Bir web geliştiricisiyim, yakın zamanda Spotify için bıraktığım bir iş arkadaşım ve çoğunlukla Spotify Desktop uygulaması için JavaScript'te çalışacağını söyledi. "Chrome çerçeve" kullandığını ve içindeki her şeyin bir web uygulaması (HTML / JS / CSS) gibi yapıldığını söyledi.

Masaüstü için hiçbir şey inşa etmeyen bir web geliştiricisi olarak, bu harika bir haber. Teknolojileri kullanabilirsem, bunları zaten bir çeşit "çerçeve" içine uygulayıp uygulayabilir ve yine de bir pencere veya daha iyi ama çapraz platform uygulaması oluşturabilirim.

Ben veritabanı hakkında hiçbir şey bahsetmedi biliyorum, ama web teknolojileri ile basit bir merhaba dünya masaüstü uygulaması bile devam etmek harika olurdu.

Peki bu nasıl olur? Tam olarak neye ihtiyacım var / bilmem gerekiyor?


Unutulmamalıdır ki, web uygulaması için en az iki münhasır olmayan katman vardır. Bunlardan biri istemci tarafı, tek sayfalık uygulama tarzı uygulamalar, diğeri ise bir veritabanı veya başka bir şeyle durumu koruyan bir uygulama olacaktır. (Tabii ki, en iyi uygulamalar her ikisi de.) Birini diğeri hakkında çok şey öğrenmeden nasıl yapacağınızı öğrenebilirsiniz.
Waleed Khan

Burada başka bir ilgili konu [JavaScript kullanarak Masaüstü Geliştirme yapabilir misiniz?] [1] [1]: stackoverflow.com/questions/109399/… Saygılarımızla, Ben
benbai123

Yanlış yapıyorsun. Web, masaüstü uygulamasında tasarlanmamıştır. İsterseniz iyi bir takas olan QML / QtQuick'i kullanabilirsiniz (ancak web değil masaüstü kalır!)
Stef


Yanıtlar:


74

Desktop dev için Titanium ile başlayabilirsiniz. Ayrıca Chromium Embedded Framework'e de bakabilirsiniz . Temelde krom bazlı bir web tarayıcı kontrolüdür.

C ++ ile yazılmıştır, böylece kap uygulamanızda istediğiniz tüm düşük seviyeli işletim sistemi öğelerini (Growl, tepsi simgeleri, yerel dosya erişimi, com bağlantı noktaları, vb.) Ve ardından html / javascript'teki tüm uygulama mantığını ve gui'yi yapabilirsiniz. Yerel kaynaklara hizmet etmek veya bazı özel eylemler gerçekleştirmek için herhangi bir http isteğini engellemenizi sağlar. Örneğin, http://localapp.com/SetTrayIconState?state=active adresine yapılan bir istek kap tarafından kesilebilir ve ardından tepsi simgesini güncelleştirmek için C ++ işlevini çağırabilir.

Ayrıca doğrudan JavaScript'ten çağrılabilen işlevler oluşturmanıza da olanak tanır.

JavaScript'te doğrudan CEF'de hata ayıklamak çok zordur. Firebug gibi hiçbir şey için destek yok.

AppJS.com'u da deneyebilirsiniz (Masaüstü Uygulamaları geliştirmeye yardımcı olur. HTML, CSS ve JavaScript kullanarak Linux, Windows ve Mac için)

Ayrıca, @Clint tarafından belirtildiği gibi, brackets.io (Adobe) ekibi Chromium Embedded Framework kullanarak harika bir kabuk oluşturdu ve bu da başlamayı çok daha kolay hale getirdi. Buna parantez kabuğu denir: github.com/adobe/brackets-shell Burada daha fazla bilgi bulabilirsiniz: clintberry.com/2013/html5-desktop-apps-with-brackets-shell


3
CEF, içinde js hata ayıklamak için kullanabileceğiniz chrome dev araçlarına sahiptir. AppJS ayrıca nodejs API'lerini kullanarak işletim sistemine düşük düzeyde erişime sahiptir.
Morteza Milani

1
Bracket.io'daki (Adobe) ekip Chromium Embedded Framework kullanarak harika bir kabuk oluşturdu ve bu da başlamayı çok daha kolay hale getirdi. Buna parantez kabuğu denir: github.com/adobe/brackets-shell Burada daha fazla bilgi bulabilirsiniz: clintberry.com/2013/html5-desktop-apps-with-brackets-shell
Clint

Şu anda CEF ve Eclipse'yi dev araçları olarak kullanıyorum ve CEF'yi Chrome Geliştirme Araçları'na bağlamak için --remote-debugging-port = 8080'i program bağımsız değişkenleri için çalışma yapılandırmalarına geçirip ardından localhost'a gidin: Chrome'da 8080 . Bu yüzden lütfen JavaScript'i doğrudan CEF'de hata ayıklamak çok zor. Firebug gibi hiçbir şey için destek yok. -
Telli Çocuk

Ayrıca, CEF, PhoneGap, Adobe Backet.io, Adobe, AppJS, vb temel alacak Win32, Linux, Unix gibi Mac ve SmartPhone için bir çözüm geliştirmek için Kontena Kon ン テ ナgithub.com/jhg/kontena geliştirmeye başlıyorum Çok dengesiz ve sadece bir MVP almak için şimdi bir prototip, test konsepti için Python yazılmıştır ancak QT5 (şimdi QT4 kullanın) ile C ++ / C kodunu çevirmek ve mobil için C ++ / C başlangıç ​​çeviri olacak destek.

@JHG iyi iş .. Resmi olarak piyasaya sürüldüğünde ve hata düzeltildiğinde bize bildirin
alfred

33

NW.js

(Daha önce node-webkit olarak biliniyordu)

Düğüme aşina veya JavaScript konusunda deneyimli iseniz NW.js'yi öneririm .

NW.js, Chromium ve node.js tabanlı bir uygulama çalışma zamanıdır.

Özellikleri

  • Modern HTML5, CSS3, JS ve WebGL ile yazılmış uygulamalar
  • Node.js API'leri ve tüm üçüncü taraf modülleri için tam destek.
  • İyi performans: Düğüm ve WebKit aynı iş parçacığında çalışır: İşlev çağrıları doğrudan yapılır; nesneler aynı öbektedir ve sadece birbirlerine referans verebilir
  • Uygulamaları paketlemek ve dağıtmak kolay
  • Linux, Mac OS X ve Windows'ta kullanılabilir

Burada NW.js repo'sunu ve NW.js'ye iyi bir giriş bulabilirsiniz . Node.js öğrenme fantezi Eğer iyi bağlantılar çok bu SO post öneriyoruz .


2
Destekliyorum. Harika bir araç.
Erik Reppen

Ancak bu, düğüm ve düğüm-webkit yüklemelerini istemeden insanlar arasında dağıtılamaz, değil mi?
Jānis Gruzis

@ JānisGruzis Hayır, uygulamanızı NW.js ikili dosyaları ile gönderdiniz .
approxiblue

27

Awesomium , C ++ veya .NET uygulamanızda HTML kullanıcı arayüzünü kullanmayı kolaylaştırır

Güncelleme

Önceki cevabım şimdi modası geçmiş. Bu günlerde bunun için Elektron kullanmaya bakmamak delilik olur . Bunun üzerine birçok popüler masaüstü uygulaması geliştirildi.



9

Görünüşe göre HTML / JS / CSS masaüstü uygulamalarının çözümlerinin kısa bir kaynağı yok.

Daha yeni karşılaştığım bir çözüm TideSDK: http://www.tidesdk.org/ , bu çok umut verici görünüyor ve belgelere bakıyor.

Python, PHP veya Ruby ile geliştirebilir ve Mac, Windows veya Linux için paketleyebilirsiniz.


1
Umut verici görünüyordu, ama artık geliştirilmiyor gibi görünüyor. Çekirdek ekip şimdi TideKit olarak adlandırılan bir şey üzerinde çalışıyor, ancak serbest bırakmaları sonsuza dek sürüyor - PLUS paraya mal olacak :(
TheStoryCoder

1
Evet, yazık. Ama cevap verdiğim zaman umut verici görünüyordu. Sanırım bir şeyler için önerilerle ilgili sorulara kaşlarını çattılar.
mydoghasworms

3

Maalesef Balonunu patlaması ancak Spotify masaüstü istemci olan sadece Webkit tabanlı tarayıcı . Tabii ki belirli ek işlevleri ortaya koyar, ancak yalnızca JS çalıştırabilir ve HTML / CSS oluşturabilir, çünkü bir JS motoru ve bir Chromium oluşturma motoru vardır. Bu, istemci tarafı bir web uygulamasını kodlamanıza ve birden çok platforma dağıtmanıza yardımcı olmaz.

Aradığınız şey, HTML5 uygulamalarının iOS, Android ve Blackberry cihazlarına yerel olarak dağıtılmasına izin veren bir çerçeve olan Sencha Touch'a benziyor . Temel olarak, belirli API çağrıları ile mevcut cihaza özgü işlevler arasında bir aracı görevi görür.

Appcelerator ile hiçbir deneyimim var , biraz tam olarak yapıyor gibi görünüyor - ve çevrimiçi çok olumlu eleştiriler olsun. Bir denemelisiniz (1999'a geri dönüp MS HTA ile dönmek istemiyorsanız ;)


Uygulama için webkit kullanır, ancak ana yumuşak html / js tabanlı değildir
Sucrenoir

1

Var bildiğim Sıvı ve Prizma Tek başına bir uygulaması gibi göründüğünü içine bir web sitesini yüklemek izin (kullandığım için kullanılan biri olduğunu, başkaları da var).

Chrome'da web siteleri için masaüstü kısayolları oluşturabilirsiniz. (bunu Chrome içinden yaparsanız, bunu uygulamanızla paketleyemezsiniz / etmemeniz gerekir) Chrome Frame farklıdır:

Google Chrome Frame, açık kaynaklı Chromium projesine dayanan Internet Explorer için tasarlanmış bir eklentidir; Google Chrome'un açık web teknolojilerini Internet Explorer'a getiriyor.

Web uygulamanız için böyle bir sarmalayıcıya sahip olmanız gerekir ve geri kalanı alışık olduğunuz web teknolojileridir. Uygulama çevrimdışı durumdayken veri depolamak için HTML5 yerel depolamasını kullanabilirsiniz . SQLite ile bile çalışabileceğinizi düşünüyorum.

Yine de işletim sistemine özgü özelliklere nasıl erişeceğinizi bilmiyorum. Yukarıda tarif ettiğim, herhangi bir "normal" web sitesi ile aynı sınırlamalara sahiptir. Umarım bu, nereden başlayacağınız konusunda size bir tür rehberlik sağlar.



0

CEF, kişiselleştirme için çok fazla esneklik ve seçenek sunar. Ancak eğer amaç hızlı bir şekilde gelişmekse, düğüm-webkit de iyi bir seçenektir. Düğüm-web kiti, düğüm modüllerini doğrudan DOM'dan arama özelliği de sunar.

Node-Webkit'i entegre etmek için herhangi bir yerel modül yoksa daha iyi kilometre performansı sunabilir. Yerel modüller C / C ++ veya hatta C # ile CEF ile daha iyidir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.