PyS60

Reklamlarda gelişmiş telefonları görüyorsunuz. Cep telefonları artık sadece bir “telefon” değil. Teknolojinin gelişmesiyle birlikte bir çok gelişmiş model bir ofise dönüştü. Bir çok dilde cep telefonları için hazırlanmış kütüphaneler mevcut olmalı(bilmem bakmadım), bu diller çalışırken Python boş duramazdı Nokia tarafından geliştirilen PyS60 işte bunun için var. Bu yazımda PyS60’ın ne olduğu üzerinde biraz duracağım bir noktadan sonrada konuyu ilerletip belki ufak yazılımlar hazırlamaya başlayabilirim.

Burada yazılanlar bir kaç kaynaktan alınmış konuların bir açıdan özetidir. Yazıyı okuyanların bunun bir nevi kendim için hazırladığım özet olduğunu unutmaması ve burada yapılacak hataların düzeltilmesi için katkıda bulunabileceklerini unutmalarını isterim. Hadi başlayalım

Evet PyS60 Nokia tarafından geliştirilmiştir, kullanılacağı yer Nokia’nın S60 serisi Symbian işletim sistemi kullanan telefonlarıdır. Özgürleşmiş Symbian üzerinde çalışmak için gerekli olan bu PyS60 kütüphanesi iki kısıma ayrılabilir:

Yerleşik(built-in) birinci kısım e32 ve appuifw isimli iki modül içerir. Bunlar standart python modüllerinin erişemediği Symbian işletim sistemi servislerine erişir ve kullanıcı arayüzü için bir çatı sağlar.
İkinci kısım dinamik şekilde yüklenebilen uygulamalardan oluşur. Bunlar S60’ın yazılım programa arayüzünün çeşitli fonksiyonlarına erişir. Yerleşik modüllerin tersine bunlar sadece gerektiğinde çağırılır. Bunlara ilerki yazılarda ayrıntı şekilde girecem, şimdilik 16 modül olduğunu bilmeniz yeterli. Bir kaçının adını verdiğimde ne işe yaradıklarını tahmin edebileceğinizden buyurun: audi, camera, telephone, calendar, sysinfo… anladınız sanırım 🙂

Python ile uygulamar yazarken çeşitli servislere bağlanacağız bunlar farklılık göstersede izleyeceğimiz yol temel üç aşamadan oluşmakta:

-kullanılacak servis objelerinin hazırlanması,
-gerekli ayarların yapılması,
-telefonun fonksiyonlarını kullanacak metotların çağırılması.

Eğer kullanacağınız modül bir yerleşik modülse birinci aşama kesinlikle gerekli ama dinamik modüller için başlangıçta hazırlamaya gerek yok çünkü onların fonksiyonlarına direkt olarak erişebilirsiniz. Bunun sebebi bu modüllerin statik olmasıdır örnek verelim

input= query(u”Text Girin”,”Text”)

Bunun yanında bir ses yüklemek istersek objeleri hazırlamamıza gerek yok. Çünkü Sound modülü statik(durağan) ve istediğimiz zaman open metodunu kullanarak .waw uzantılı dosyamızı çağırabiliriz. Örnek vereyim:

Sound.open(“deneme.waw”)

İkinci aşamada ise gerekli ayarları yapmamız gerekiyor statik metotlar kullanırsanız ayarlarıda statik ayarlayıcılar üzerinden yaparsınız. Tüm python sınıflarında olduğu gibi bu ayarları onjeleri kullanıma hazırlarken belirtebilirsiniz. Örnek olarak selection_list’in tüm erişilebilir fontları listelemesini sağlayalım aşağıdaki kodlar kullanıcının fontları listelemesini ve birini seçmesini sağlar.

li=avaliable_fonts()
si=selection_list(li,1)

Bununla birlikte ses düzeyini ayarlamak için basitçe set_volume() metodunu çağırabiliriz çünkü buda statiktir. Aşağıdaki örnekte ses 10 olarak ayarlanır.

Sound.set_volume(10)

Son aşamada ise kullanacağımız fonksiyonlar için gerekli metotlar çağırılır. Burada yine iki çeşit örnekleme mevcut mesela kullanıcıdan bir giriş alalım ve bunu yine kullanıcıya geri döndürelim, burada kullanıcıyla iletişime geçiyoruz:

data=entry(u”Koy istedini aga:”,”text”)
note(u”Bunu koydun sen:” +data,”info”)

veya cihazın Sound modülünün play() metodunu getirelim böylelikle cihaz bir sesi çalacak ve duracak onun özelliğini kullanmış olacaz(cihazla iletişime geçtik):

Sound.play()

İlerki yazılarımda ayrıntıya girmeyece başlayacağım, bu konuda kullandığım kaynaklar:
http://www.devshed.com/c/a/Python/Mobile-Programming-in-Python-using-PyS60-Getting-Started/2/ (ingilizce)
http://wiki.opensource.nokia.com/projects/Python_for_S60 (İngilizce)
http://downloads.sourceforge.net/pys60/PythonForS60_1_4_4_doc.pdf?modtime=1214578033&big_mirror=0 (Pdf – dökümasyon download linki- ingilizce)