Bugün mobil platformlar için uygulama geliştiren yazılımcılar ve operatörler, bir platform için yazdıkları uygulama ve servisleri daha sonra diğer platformlar için baştan yazmak zorunda kalıyor. Bu müthiş işgücü ve para kaybı, ne yazık ki kullanıcılara da avantaj olarak dönmüyor: Farklı üreticilerden telefon, tablet, e-kitap okuyucu, oyun konsolu, akıllı televizyon gibi cihazlar satın alan kullanıcılar, en sevdikleri uygulamaları her cihaz için ayrı ayrı satın almak zorunda kalıyor. Oysa bugün hemen hemen tüm dünyanın erişebildiği, herkesin özgürlüğünü korumaya çalıştığı, hayallerinizi inşa etmek için kullanabileceğiniz bir platform daha var: Web.
Modern Web'in öncülerinden biri olarak kabul edilen Mozilla, mobil uygulamalar için de Web'in yeterli olacağını düşünerek Firefox OS'i geliştirdi. İşletim sisteminin kendisi de dâhil olmak üzere Firefox OS'teki her şey HTML5 tabanlı web sayfalarından oluşuyor.
Öncelikle belirtmek gerekir ki Firefox OS'in hedefi iOS ve Android'in hâkim olduğu pazarlar değil. Firefox OS'in temel amacı, yeni ve gelişmekte olan pazarlarda mobil internet erişimini kolaylaştırmak ve Web'e yeni kullanıcılar kazandırmak. Bu pazarlardaki kullanıcılar genellikle bilgisayar yerine mobil cihazlar üzerinden Web'e erişiyor, ancak akıllı telefonlar bile onlar için bir lüks. Bu nedenle Firefox OS, çok uygun maliyetli donanımlarda bile yüksek performansla çalışacak şekilde tasarlandı. Bu sayede kullanıcılar, klasik bir telefon (feature phone) fiyatına Firefox OS'li bir akıllı telefon sahibi olabiliyor.
Üç farklı üretici tarafından üretilen Firefox OS'li telefonlar şu anda 15 ülkede 21 mobil operatör tarafından satılıyor. Firefox OS, iOS ve Android için verimli görünmeyen pazarlardaki kullanıcılara ulaşmayı amaçlıyor. Bu nedenle onu güncel iOS ve Android sürümleriyle karşılaştırmaktansa yeni bir pazar olarak görmek gerekiyor.
Bu pazarlara uygun olarak, Firefox OS'li telefonlar şu özelliklere sahip oluyor:
Firefox OS’in birçok alternatif işletim sisteminden önemli bir farkı da kapalı bir platform olmaması. Firefox OS'in tamamı açık web teknolojileriyle, web standartlarına uygun olarak geliştirildi. Dolayısıyla Firefox OS için geliştirdiğiniz bir uygulama Firefox OS'te kalmaya mahkûm değil: Web uygulamanız diğer mobil tarayıcılarda, masaüstü Firefox'ta ve hatta basit birkaç müdahaleyle iOS ve Android uygulaması olarak bile çalışabilir.
Özetle, "tek bir işi iyi şekilde ve tek başına yapabilen küçük program"lara "uygulama" diyoruz. Aslında mobil uygulamalarla yapabildiğimiz birçok şeyi web siteleri üzerinden de yapmak mümkün ama tarayıcıyı açıp adresi yazmak ve sekmeler arasında dolaşmaktansa "uygulama"yı açıp sadece o uygulamanın yaptığı işe odaklanmak gerçekten daha kolay. İşte bu noktada HTML5 ve modern web teknolojileri devreye giriyor. HTML5 o kadar esnek ki, istediğiniz görevi yerine getirecek bir web sitesi oluşturabilir ve onu dakikalar içinde uygulamaya dönüştürebilirsiniz.
Bir web sitesini Açık Web uygulamasa dönüştürmek için tek yapılması gereken şey, basit bir “manifest” dosyası oluşturmak. Örnek bir manifest dosyası şu şekilde görünüyor:
[code]{ "name": "Uygulama Adı", "description": "Uygulamanızın açıklaması buraya yazılacak.", "launch_path": "/index.html", "icons": { "128": "/img/icon-128.png" }, "developer": { "name": "Adınız veya şirketinizin adı", "url": "http://www.siteadresiniz.com" }, "default_locale": "tr" }[/code]
Bazı uygulamalar için biraz daha uzun bir manifest dosyası yazılması gerekse de temel mantık değişmiyor. Açık Web uygulamalarının çevrimdışı çalışmaları için tüm kaynak dosyalarının (HTML, CSS, JavaScript, manifest vb.) bir .zip dosyasında sıkıştırılması yeterli oluyor. Firefox Marketplace'te veya kendi web sitenizde yayımlanabilen bu uygulamalara paketlenmiş uygulama deniyor.
Firefox OS'te üç uygulama türü var: Kendi sitenizde barındırdığınız uygulamalar (hosted), izinli uygulamalar (privileged) ve sertifikalı uygulamalar (certified). Barındırılan uygulamalarda HTML5 ile yapabileceğiniz her şeyi yapabilirsiniz ama güvenlik nedeniyle Firefox OS işlevlerine çok kısıtlı bir şekilde erişebilirsiniz, çünkü bu uygulamalar Mozilla'nın denetiminden geçmiyor. İzinli uygulamalarsa Mozilla tarafından incelendikten sonra resmi uygulama mağazası Firefox Marketplace'e ekleniyor. Bu uygulamalar cihazın donanım özelliklerine erişebiliyor. Sertifikalı uygulamalarsa işletim sistemiyle birlikte (veya güncellemeyle) geliyor, sadece Mozilla ve iş ortakları tarafından geliştirilebiliyorlar.
Peki, standart HTML5 kodlarıyla mobil cihaz donanımlarına komut vermek mümkün olmadığına göre Firefox bunu nasıl başarıyor? Mozilla öncülüğünde tamamen açık bir biçimde geliştirilen Web API'leri, mobil cihazların donanımına JavaScript aracılığıyla güvenli bir şekilde erişmenizi mümkün kılıyor. Mozilla, Web API'lerini geliştirirken diğer tarayıcı üreticileri ve Web standartlarına yön veren kurumlarla ortak çalışmalar yürüttü. Şu anda bu API'lerden bazıları diğer tarayıcılar ve sistemler tarafından da destekleniyor (örn. geolocation) ama şimdilik hepsini destekleyen tek işletim sistemi Firefox OS. Mozilla, Web standartlarının önemini bilen diğer üreticilerin de zaman içinde tüm bu açık standartları destekleyeceğini umuyor. Web API’leri şu özelliklere sahip:
Kendi sunucunuzda barındırdığınız ve Mozilla tarafından denetlenmesi gerekmeyen HTML5 uygulamaları şu API'leri istediği şekilde kullanabiliyor:
Kodları Mozilla tarafından incelendikten sonra Marketplace'te yayımlanan "izinli uygulamalar" ise öncekilere ek olarak şu Web API'lerini kullanabiliyor:
Çok basit bir örnek olarak, alarm API'sinin JavaScript aracılığıyla nasıl kullanıldığına bakalım. Aşağıdaki örnek:
[code]request = navigator.mozAlarms.add( new Date("May 15, 2014 08:10:00"), "honorTimezone", { mydata: "Uyanma vakti" } );[/code]
Uygulama geliştiricilerin yaşadığı en büyük sıkıntılardan biri de uygulamalarının "bulunabilir" olmaması. Firefox OS, bu sorunu gidermek için dinamik arama adı verilen yeni bir arama arayüzüne sahip. Firefox OS'te yapılan uygulama aramaları sadece uygulama adlarını aramıyor, arama sorgusunun konusunu belirleyip bunu uygulamalarla eşleştiriyor. Örneğin, sevdiğiniz bir filmin adını arattığınız aman, sinemayla ilgili veya bilet satışı yapan uygulamalar karşınıza geliyor; uygulama adında o filmin adı geçmek zorunda değil. Üstelik arama sonuçları farklı pazarlara göre özelleştirildiği için, örneğin Netflix'in hizmet vermediği bir ülkede Netflix sonuçları gösterilmiyor ve yerel servisler öne çıkarılıyor, böylece yerli geliştiricilerin gelir elde etmesi kolaylaşıyor.
Firefox OS uygulamaları, arama sonuçlarındaki herhangi bir sonuca dokunduğunuz anda çalışıyor: Bir uygulamayı denemek için indirme-kurma-silme süreci yok. Bu da uygulamanızın sabırsız kullanıcılara daha kolay ulaşacağı anlamına geliyor. Kullanıcı uygulamayı beğenirse sistemine eklemek için basılı tutması yeterli.
iOS ve Android'in aksine, Firefox OS için sabit bir SDK, IDE'ler ve araçlar yoktur. Firefox OS uygulamaları HTML5 uygulamalarıdır ve tıpkı web sayfaları tasarlarken/geliştirirken olduğu gibi her türlü araçtan faydalanmak mümkündür. Bununla birlikte, Mozilla, geliştiricilerin işini kolaylaştıracak bazı araçlar hazırlamış durumda. Bunlardan bazıları tarayıcı özelliği olarak, bazıları da eklenti olarak sunuyor. Bu sayede, Firefox tarayıcısını kurabileceğiniz her bilgisayarda rahat bir şekilde geliştirme yapmak mümkün. Bu araçların birçoğu masaüstü Firefox tarayıcısındaki Geliştirici menüsünde yer alıyor.
Firefox OS uygulamalarını geliştirmek, test etmek veya yayımlamak için Firefox OS'li bir cihaza ihtiyacınız yok. Elbette uygulamalarınızın performansını ve fiziksel bir cihazdaki çalışma şeklini test etmek için gerçek bir cihaz kullanmak ideal ama masaüstü Firefox’a eklenti olarak kurulan simülatör, Firefox OS uygulamalarınızı bilgisayar ekranında test etmenizi sağlıyor.
Firefox OS için uygulama geliştirmek ve yayımlamak çoğu alternatifine kıyasla çok daha basit:
Uygulamanızı geliştirirken hazır web sitenizi veya web uygulamanızı temel alabilirsiniz. Uyumlu (responsive) web tasarım teknikleriyle geliştirilmiş bir mobil web siteniz varsa işiniz çok daha kolay olacaktır.
Masaüstü Firefox'taki uyumlu tasarım görünümü aracı (Firefox menüsü > Geliştirici > Uyumlu tasarım görünümü) web site ve uygulamanızın Firefox OS'li cihazlarda ve diğer mobil platformlarda nasıl görüneceğini anında görmenizi sağlar. Yine Firefox'un Geliştirici menüsünde bulacağınız web konsolu, denetçi, hata ayıklayıcı, stil editörü gibi araçlar; diğer masaüstü tarayıcıların web geliştiricilerine sunamadığı düzeyde ayrıntılara hiçbir ek yazılım kurmadan ulaşmanızı sağlayabilir.
Açık Web uygulamaları geliştirmeye yönelik ipuçları ve ayrıntıları Firefox Marketplace Geliştirici Merkezi’nde yer almakta. Hazır olduğunu düşündüğünüz uygulamalarınızı Marketplace’e ücretsiz olarak gönderebilirsiniz.
Diğer Mozilla ürünleri gibi gönüllü Mozilla Türkiye ekibi tarafından yerelleştirilen Firefox OS, 1.1 sürümünden itibaren %100 Türkçe desteğine sahip. Firefox OS'li telefon sahipleri isterlerse telefonlarını Türkçe olarak kullanabiliyor ama ne yazık ki şu anda Türkiye'de satışta olan Firefox OS’li bir cihaz yok. Firefox OS'li cihazların resmi satışı her ülkede mobil operatörler tarafından yapılıyor. Pazarı iyi bilen operatörler ve iş ortakları, telefonları dilediği gibi özelleştirebiliyor. Geliştirici telefonlarıysa internet üzerinden satın alınabiliyor ama mevzuat nedeniyle posta yoluyla Türkiye'ye telefon sokmak mümkün olmadığı için sipariş vermenizi önermiyoruz.
Çok güzel, anlaşılır ve faydalı bir yazı olmuş öncelikle elinize sağlık. Firefox OS şu an ne durumda bu konuda bilgilendirmeniz mümkün mü acaba?
Firefox OS ekosistemi büyümeye devam ediyor. 3 ayda bir yeni sürüm yayımlama sözümü de tutuyoruz. Bu yazı yazıldığında 1.3 sürümündeydik, şu anda 2.0 üzerinde çalışıyoruz. Yol haritamız yenilikler konusunda fikir verebilir.
Firefox OS'un gelmesi ile HTML5 CSS3 javascript'e olan inancım arttı. Android uygularımı diğer platformlara taşımakdan sa en kısa zamanda html5,css3,jquerymobile gibi dilleri öğrenip çalışmalara başlamak lazım :))
bu işte gelevek var çünkü...
Bakalım sektor bunları nasıl karsılayacak...