Turkcell | Geleceği Yazanlar

GELECEĞİ YAZANLAR BLOG

Yeni Blog Yaz

Firefox OS ve Açık Web uygulamaları

Selim Şumlu - 27 Mart 2014

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:

  • Donanım maliyetli düşük, dolayısıyla telefonlar ucuz
  • Uygulama mağazasında kredi kartı kullanılmıyor, ödemeler operatör aracılığıyla (fatura veya kontör) alınıyor
  • İşletim sisteminin tamamı web teknolojileriyle çalıştığı için uygulama geliştirmek çok kolay
  • Web performansı, benzer donanımlı rakiplerine göre daha yüksek

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.

 

Açık web uygulamaları

Ö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.

  • Firefox OS uygulamaları, ek bir "manifest" dosyası içeren HTML5 uygulamalarıdır.
  • Manifest dosyası; erişmek istediğiniz donanımları, uygulamanızın simgelerini ve kodlarınızın konumunu içerir.
  • Ek bir uygulama geliştirme ortamına gerek yoktur, her zamanki web tasarım araçlarınızı kullanarak Firefox OS uygulaması geliştirebilirsiniz.
  • Firefox OS uygulamalarında üç katmanlı bir güvenlik modeli uygulanır. Uygulamanızın bulunduğu konuma göre (kendi siteniz, uygulama mağazası vb.) bazı özelliklere erişim kısıtlanır.
  • Firefox OS uygulamaları çevrimdışı çalışabilir.
  • Firefox OS uygulamaları basit bir dönüştürme işlemiyle diğer platformlarda da çalışabilir.
  • Uygulamaları herhangi bir web sitesinden veya Mozilla'nın uygulama mağazasından yükleyebilirsiniz.

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:

{
  "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"
}

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.

 

Erişim seviyeleri

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.

  • Barındırılan uygulama: Kendi sunucunuzda duruyor, güncellemesi çok kolay, donanıma erişimi kısıtlı
  • İzinli uygulamalar: Mozilla tarafından kontrol edilerek Marketplace’te tutuluyor, paketlenmiş ve imzalanmış olmak zorunda
  • Sertifikalı uygulamalar: Sadece Mozilla ve iş ortakları tarafından geliştirilen, işletim sistemiyle gelen uygulamalar

 

Web API'leri

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:

  • Cihaz donanımlarına erişmek için tamamen açık API belirtimleri
  • Diğer tarayıcı üreticileriyle birlikte geliştirildi ve Web standartlarını belirleyen kurumlarla paylaşıldı
  • Basit JavaScript kodlarıyla çalışıyor
  • "Event" tabanlı: Her erişimin sonucu "başarılı" veya "başarısız" olarak döndürülüyor, başarısız event’lerde neyin ters gittiğini anlamak kolay
  • Kullanılabilecek API'ler, uygulamanın erişim düzeyine göre değişiyor

Kendi sunucunuzda barındırdığınız ve Mozilla tarafından denetlenmesi gerekmeyen HTML5 uygulamaları şu API'leri istediği şekilde kullanabiliyor:

  • Vibration API (titreşim)
  • Screen Orientation (ekran yönü)
  • Geolocation API (coğrafi konum)
  • Mouse Lock API (fare kilidi)
  • Open WebApps (Açık Web Uygulamalar)
  • Network Information API (ağ bilgisi)
  • Battery Status API (pil durumu)
  • Alarm API (alarm)
  • Push Notifications API (push bildirimleri)
  • WebFM API / FMRadio (radyo)
  • WebPayment (ödeme)
  • IndexedDB
  • Ambient light sensor (ışık algılayıcısı)
  • Proximity sensor (yakınlık algılayıcısı)
  • Notification (bildirim)

Kodları Mozilla tarafından incelendikten sonra Marketplace'te yayımlanan "izinli uygulamalar" ise öncekilere ek olarak şu Web API'lerini kullanabiliyor:

  • Device Storage API (dosya depolama)
  • Browser API (tarayıcı)
  • TCP Socket API
  • Contacts API (kişiler)
  • systemXHR

Çok basit bir örnek olarak, alarm API'sinin JavaScript aracılığıyla nasıl kullanıldığına bakalım. Aşağıdaki örnek:

request = navigator.mozAlarms.add(
    new Date("May 15, 2014 08:10:00"), 
    "honorTimezone", 
    {
        mydata: "Uyanma vakti"
    }
);

 

Firefox OS'te uygulama arama

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.

 

Firefox OS ve HTML5 geliştirici araçları

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.

 

Üç adımda uygulama geliştirmek

Firefox OS için uygulama geliştirmek ve yayımlamak çoğu alternatifine kıyasla çok daha basit:

  1. HTML5, CSS ve JavaScript ile web uygulamanızı geliştirin
  2. Uygulamanızın manifest dosyasını oluşturun
  3. Uygulamayı yayımlayın

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.

 

Türkçe desteği ve bulunabilirlik

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.

4 Cevap

İbrahim Gündüz

29 Mart 2014

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ü...

Emre KARLIDAG

30 Mart 2014

Bakalım sektor bunları nasıl karsılayacak...

Esra Altıntaş

28 Ağustos 2014

Ç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?

Selim Şumlu

29 Ağustos 2014

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.

Yorum yapmak için Giriş Yapın ya da Üye olun.