Electron (yazılım kütüphanesi)
Orijinal yazar(lar) | GitHub |
---|---|
Geliştirici(ler) | OpenJS Vakfı |
İlk yayınlanma | 15 Temmuz 2013[1] | )
Güncel sürüm | 31.2.1 / 15 Temmuz 2024 | )
Önizleme sürümü | 32.0.0-alpha.10 / 19 Temmuz 2024 | )
Programlama dili | C++, JavaScript, Objective-C++, Python, Objective-C |
İşletim sistemi | Linux, macOS, Windows |
Platform | IA-32, x86-64, ARM |
Lisans | MIT Lisansı[2] |
Resmî sitesi | electronjs.org |
Kod deposu |
Electron (eski adıyla Atom Shell[3]), GitHub tarafından geliştirilen ve bakımı yapılan özgür ve açık kaynaklı bir yazılım iskeletidir.[4] Çerçeve, Chromium tarayıcı motorunun bir çeşidi kullanılarak oluşturulan web teknolojilerini (esas olarak HTML, CSS ve JavaScript ancak ön uç çerçeveleri ve WebAssembly gibi diğer teknolojiler de mümkündür) ve Node.js çalışma ortamını kullanarak masaüstü uygulamaları oluşturmak için tasarlanmıştır.[5] Ek olarak, Düğüm hizmetleriyle yerel entegrasyon ve süreçler arası iletişim modülü gibi şeylere izin vermek için çeşitli API'ler de kullanır.
Başlangıçta Atom için hazırlanmıştır.[3] Electron; Atom, GitHub Desktop, Light Table,[6] Visual Studio Code, WordPress Desktop,[7] ve Eclipse Theia dahil olmak üzere birçok açık kaynaklı projenin arkasındaki ana GUI çerçevesidir.[8]
Mimari
[değiştir | kaynağı değiştir]Elektron uygulamaları birden fazla işlemi içerir. "main" süreci ve birkaç "render" süreci vardır. Ana işlem, uygulamanın mantığını çalıştırır (örn. menüler, kabuk komutları, yaşam döngüsü olayları) ve daha sonra, HTML ve CSS'yi görüntüleyen bir kullanıcının ekranında görünen bir pencereyi yükleyen BrowserWindow
sınıfının bir örneğini başlatarak birden çok oluşturucu işlemini başlatabilir.
Ana nodeIntegration
alanı true
olarak ayarlanmışsa, hem ana hem de oluşturucu işlemleri Node.js entegrasyonu ile çalışabilir
Electron'un API'lerinin çoğu C++ veya Objective-C ile yazılmıştır ve ardından JavaScript bağlamaları aracılığıyla doğrudan uygulama koduna maruz bırakılır.[9]
Tarihçe
[değiştir | kaynağı değiştir]Eylül 2021'de Electron, Chromium Extended Stable'ın yayın döngüsüne uymak ve tarayıcı tabanlı uygulamaların en son sürümlerden 2 ana sürümde olmasını gerektiren Microsoft Mağazası'nın tarayıcı motorunun serbest bırakılmasını isteyen yeni gereksinimine uymak için ana sürümler arasında 8 haftalık bir sürüm döngüsüne geçti.[10]
Electron, en son üç kararlı ana sürümü aktif olarak destekler.[11] Eylül 2021'den Mayıs 2022'ye kadar, sürüm döngülerindeki değişiklik nedeniyle dört ana sürüm geçici olarak desteklendi.
Tepkiler
[değiştir | kaynağı değiştir]Electron ile oluşturulmuş masaüstü uygulamaları arasında Atom,[12] balenaEtcher,[13] Eclipse Theia,[8] Microsoft Teams,[14] Slack[15] ve Visual Studio Code bulunur.[16][17] Ek olarak, Brave Browser, doğrudan Chromium'u kullanarak yeniden yazılmadan önce Electron temelli idi.[18]
Electron'un en yaygın eleştirisi, basit programlar için kullanıldığında yazılım şişmesi gerektirmesidir.[19] Sonuç olarak, Michael Larabel, çerçeveyi "çoğu Linux masaüstü kullanıcısı arasında kaynak açısından yoğun olması, çoğu masaüstüyle iyi bütünleşmemesi ve genel olarak küçümsenmesi nedeniyle kötü şöhretli" olarak nitelendirdi.[20] Bu arada Joey Sneddon, Electron'un platformlar arası yazılım geliştirme ve bakım maliyetini büyük ölçüde azalttığı için bu ödünleşimin mantıklı olduğunu belirtiyor.[21]
Araştırmacılar, düz metin JavaScript dosyaları aracılığıyla erişildiğinden, Electron'un geniş özellik setinin kötü amaçlı yazılımlar tarafından ele geçirilebileceğini göstermiştir.[22] Electron'un her zaman Chromium'un en yeni sürümünü temel almadığı gerçeğinden endişe duyanlar, alternatif olarak ileri web uygulamalarını önerdiler.[23]
Ayrıca bakınız
[değiştir | kaynağı değiştir]- Apache Cordova
- Chromium Embedded Framework (CEF)
- HTML Application
- Qt WebEngine
- XULRunner
- JavaFX WebView
- DotNetBrowser
Kaynakça
[değiştir | kaynağı değiştir]- ^ "electron/electron". GitHub. 2 Ağustos 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 8 Mayıs 2018.
- ^ "electron/LICENSE at master". GitHub. 12 Mayıs 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 3 Temmuz 2020.
- ^ a b "Atom Shell is now Electron". Electron. 23 Nisan 2015. 9 Kasım 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Ocak 2022.
- ^ "electron/electron". GitHub. 18 Nisan 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 8 Mayıs 2018.
- ^ "Electron Internals: Using Node as a Library". electronjs.org. 8 Ağustos 2016. 9 Kasım 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 3 Temmuz 2020.
- ^ "Light Table 0.8.0". lighttable.com. 10 Aralık 2015. 13 Aralık 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 3 Temmuz 2020.
- ^ "GitHub Repository". GitHub. 19 Şubat 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 16 Haziran 2019.
- ^ a b "Theia - Cloud and Desktop IDE Platform". theia-ide.org. 20 Nisan 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 31 Aralık 2021.
- ^ "From native to JavaScript in Electron | Electron Blog". electronjs.org. 19 Mart 2019. 26 Nisan 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Nisan 2019.
- ^ "New Electron Release Cadence | Electron". electronjs.org. 14 Temmuz 2021. 14 Temmuz 2021 tarihinde kaynağından arşivlendi.
- ^ "Electron Support | Electron". electronjs.org. 21 Eylül 2021 tarihinde kaynağından arşivlendi.
- ^ "Atom Shell is now Electron". Electron. 23 Nisan 2015. 16 Ekim 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Temmuz 2017.
- ^ "Etcher on GitHub". GitHub. 16 Kasım 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Temmuz 2020.
- ^ "How Microsoft Teams uses memory - Microsoft Teams". docs.microsoft.com (İngilizce). 1 Temmuz 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 12 Kasım 2021.
- ^ "Building hybrid applications with Electron". Several People Are Coding. 25 Ekim 2016. 16 Ekim 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 12 Ağustos 2017.
- ^ "Microsoft's new Code editor is built on Google's Chromium". Ars Technica. 29 Nisan 2015. 7 Mayıs 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 18 Kasım 2015.
- ^ "Open Source project". GitHub. 29 Mart 2022. 23 Kasım 2015 tarihinde kaynağından arşivlendi.
- ^ Singh, Jagmeet (3 Ocak 2017). "People are now even doing machine learning in JavaScript". Open Source For U. 7 Ocak 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Ağustos 2022.
- ^ Proven, Liam (19 Kasım 2021). "Some FOSS gems: Franz, RamBox, Pidgin and more". The Register. 19 Kasım 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Ağustos 2022.
- ^ Larabel, Michael (9 Şubat 2019). "Electron Apps Are Bad, So Now You Can Create Desktop Apps With HTML5 + Golang". Phoronix. 26 Ağustos 2022 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Ağustos 2022.
- ^ Sneddon, Joey (23 Temmuz 2017). "Seriously folks, Electron apps aren't that bad". OMG Ubuntu. 16 Mayıs 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Ağustos 2022.
- ^ Gallagher, Sean (7 Ağustos 2019). "Skype, Slack, other Electron based apps can be easily backdoored". Ars Technica. 7 Ağustos 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Ağustos 2022.
- ^ Hoffman, Chris (15 Ağustos 2019). "That native app is probably just an old web browser". How To Geek. 15 Ağustos 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Ağustos 2022.