Spring Android ve Gson

Spring Android, Spring topluluğunun Android native uygulamaları geliştirilmesi için sağladığı kütüphanelerden oluşuyor. Spring Android bir web kütüphanesi değil, Android projelerine eklenen bir kütüphanedir.

Gson ise Google’ın Java dünyasına kazandırdığı başarılı kütüphanlerden biri. Objeleri JSON’a; JSON’ı da objelere çok hızlı şekilde çevirebiliyor.

Bu konuda bir örnek sunmak için spring-andoid adında bir proje yaptım. Bu proje Android 2.2 için oluşturulan bir projedir.
Projede lib dizini oluşturarak gson-2.0.jar, spring-android-core-1.0.0.M4.jar ve spring-android-rest-template-1.0.0.M4.jar kütüphanelerini ekledim.




Daha sonra bu kütüphaneleri proje üzerine sağ tuş ile tıklayıp Java Build Path -> Libraries tabından Add JARs.. diyerek projeye gösterdim.








Artık bu kütüphanelerin sağladığı sınıfları kullanabiliriz.

Akademik Bilişim 2012 için hazırladığım sunucu taraflı API’de her bir oturum hakkında bilgileri JSON olarak sunuyorum.

Bu sunulan JSON aslında Oturum adlı bir Java sınıfının JSON’a dönüşmüş halidir.

Mesela A salonundaki 1 oturumda hangi sunumların olduğunu öğrenmek için şöyle bir talep gönderebilirsiniz:

http://www.gelecekonline.com/oturum?salon=A&oturumSira=1

Dönen sonuç aşağıdaki gibidir:




Sunucu tarafındaki Oturum sınıfının aynısını Android tarafında da yapıyorum.






Bu sınıftan dönen kaydı çekmek için Android projesine bir Button ve altına TextView ekledim:




Butonun onClick eventı için Activity sınıfında bir method yaptım:

public void getObject(View v){

Oturum oturumList=null;

RestTemplate restTemplate = new RestTemplate();
    restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory());
    List<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>();
    Gson gson = new GsonBuilder().create();
    GsonHttpMessageConverter messageConverter = new GsonHttpMessageConverter();
    messageConverter.setGson(gson);
    messageConverters.add(messageConverter);
    restTemplate.setMessageConverters(messageConverters);
    try {
    oturumList = restTemplate.getForObject(new URI(URL), Oturum.class);
} catch (RestClientException e) {
Log.e("MainActivity", e.getMessage());
} catch (URISyntaxException e) {
Log.e("MainActivity", e.getMessage());
}
    if(oturumList!=null)
    for (Oturum oturum :oturumList.getOturumList()) {
    metinText.setText(oturum.getBaslik());
}
}


Bu method aslında bir Spring Android RestTemplate yaratıyor ve messageConverters ‘ına GsonHttpMessageConverter set ediyor.

Bu örnek projeyi ve Akademik Bilişim 2012 için hazırladığım proje kodlarını aşağıdaki adreslerden indirebilirsiniz:

http://gomobil.in/spring-android.zip
http://gomobil.in/ab2012.zip

Tizen sunumu

08 February 2012 Wednesday
Etiketler: tizen sunum
Akademik Bilişim 2012'de arz etmeye çalıştığım Tizen sunumunu Slideshare'e yükledim.

Bu sunum, daha önceki yazılarımın derlenip toplanmış halidir.

Tizen IDE ile yazılım geliştirme

Tizen ile ilgili yazılara devam ediyorum. İlk iki bölümde Tizen SDK kurulumu ve emülatörüne bakmıştık, bu yazımda Tizen’in IDE’sini kullanarak yazılım geliştirmeyi anlatmaya çalışacağım.

Şimdilik sadece 32 Bit Ubuntu üzerine kurulabilen Tizen SDK kurulumu ile Eclipse Ingido tabanlı geliştirme ortamı da kuruluyor. Yani Android’de olduğu gibi SDK ile IDE ayrı ayrı kurulmuyor.


Bu geliştirme ortamına Appications -> Other -> Tizen IDE menüsünden ulaşabiliyoruz.





Devamı

Tizen emülatörü

Tizen emülatörünü düzenlemek ve çalıştırmak için  Emulator Manager yazılımı kullanılıyor. Emulator Manager yazılımını açınca 480 x 800 piksellik bir hazır cihaz olduğunu görüyoruz.


Devamı

Yeni bir mobil işletim sistemi ve geliştirme ortamı: Tizen

Nokia’nın MeeGo’dan tamamen desteğini çekmesi üzerine Intel Samsung ile işbirliği yaparak Linux Foundation çatısı altında MeeGo kodları ile yeni bir işletim sistemi çalışmasına başladı ve ortaya Tizen çıktı. Tizen akıllı telefonlarda, tabletlerde, araç cihazlarında, televizyonlarda kullanılabilecek açıkkaynak kodlu ve Linux tabanlı bir mobil işletim sistemi. Tamamen HTML5 düşünülerek ortaya çıkmış olan Tizen’de uygulamalar HTML, Javascript ve CSS ile yazılıyor.

Aşağıdaki mimari çiziminden de anlaşılacağı üzere çok ince bir kernel ve servis katmanı üzerinde asıl Tizen’in odaklandığı Web API ve Web Uygulamaları bulunuyor.




Devamı

Forum açmak

Birkaç günlük çalışmanın sonuda muharremtac.com forumu aktive ettim.
Şimdi bu zamanda forum mu açılır diyebilirsiniz, doğru da söylersiniz ama önce bazı konuları açıklamama izin verin.
1999 ve 2000 yılından beri Bulletin Board'lar, forumlar içerisinde aktif olarak bulundum. Efsanevi ocal.net forumundan sonra uzunca bir süre ceviz.net'te aktif olarak paylaşımlarda bulunmaya çalıştım ve arada bazı başka yazılım forumlarında da aktif olarak bulundum.

Sosyal medya patlaması ile pek çok sosyal ağda da aktif olmaya çalıştım.

Bu yazı yazıldığı sırada,
Google Plus'ta 2700'ün üzerinde kişinin çevrelerindeyim, 
Twitter'da 1200'ün üzerinde takipçim bulunuyor,
Facebook'da 800'ün üzerinde arkadaşım var, bütün sosyal medya dostlarıma sevgilerimi saygılarımı sunuyorum. 

Bunları anlatmamın nedeni birden bire neden forum açma ihtiyacı hissettiğim. Zaten bana ulaşmak isteyen ulaşabiliyorsa foruma ne gerek var?

Bunun bir kaç nedeni var.

Neden 1) Java ile forum olur mu? Yapılır mı yapılsa kullanılır mı sorularına bir yanıt vermek. JForum adlı daha önce de kullandığım forumu Türkçeleştirerek ve üzerinde epey çalışarak bu soruya bir yanıt vermeye çalıştım. JForum bir kaç yıl öncesinde kendi yardım forumu olan büyük bir platformken birden gelişmesi durmuş halde karşıma çıktı. Ama ben halen ümitli olduğumdan tercihimi ondan yana kullandım. Yoksa başka Java ile yazılmış forumlar da yok değil.

Neden 2) Mail ile, sosyal ağlar ile bana ulaşıp soru soran dostlarıma bu sorulara blog yazarak yanıt vermeye çalışıyordum ama bu soruların bir forumda olmasının daha anlamlı olacağını düşündüm. Eski bir yapı gibi görünse de forumlar bilgilere ulaşmanın halen en başarılı yolu. Bütün büyük bilişim sitelerimizin de forumu var.

Neden 3) Gelecekonline için kuracağımız forum için bir altyapı hazırlığı olması için kendi forumumu canlı ortama aktardım. Buradan gelecek geribildirimler ile farklı bir forum seçebileceğiz ya da bu forumda karar kılacağız.

 
Evet forumum açıldı. Bazı içerikleri forumdan da paylaşacağım.  Her türlü sorunuzu buradan yöneltebilirsiniz.

En derin saygı ve muhabbetlerimle. 


Phonegap ve HTML5 ile Android’de native uygulama geliştirmek

05 January 2012 Thursday
Etiketler: HTML5 Phonegap android
Phonegap, Nitobi şirketi tarafından duyurulmuş açık kodlu bir mobil uygulama geliştirme platformudur. Nitobi Adobe tarafından satın alınmıştır. Phonegap’de yazılım geliştirme HTML, CSS ve JavaScript ile yapılmaktadır ve bu özelliği pek çok avantajı beraberinde getirmektedir:

Bu avantajları şöyle sıralayabiliriz:

HTML - CSS - JavaScript bilgisi ile yazılım geliştirme ve dolayısıyla daha çabuk öğrenme imkanı,
Aynı kodlama ile farklı platformlarda uygulama geliştirme,
Gelecek nesil web deneyimini uygulama,
Geniş topluluk (community),
Başarılı dokümantasyon,
Adobe desteği.

HTML5’in gücünü kullanarak sistem kaynaklarına / sensörlere erişmek teorik olarak bir dereceye kadar mümkündür ancak burada dikkat edilmesi gereken nokta Phonegap’in bu işlemi yaparken native uygulama içerisinden erişim yetkilerini alarak HTML5’e aktarmasıdır.

Devamı

Android üzerinden SQL Server iletişimi

"Android cihazlardan SQL Server'a nasıl erişirim" şeklinde bana ulaşan bir soruya yanıt olması açısından bu blogu yazıyorum umarım yararlı olur.

Öncelikle bilinmesi gereken önemli bir nokta var: veritabanlarına mobil cihazlardan doğrudan veritabanı protokolü üzerinden iletişim kurmak doğru değildir. Bunun bir kaç nedeni var:

1) Veritabanlarının portları farklı olabilir ve bu portlar güvenlik duvarları ile kapatılmış olabilir. Bu portlar üzerinden bağlantı kurmak da güvenlik duvarları neneniyle engellenmiş olabilir.  
2) Veritabanları dış erişimlere tamamen kapalı olabilir.
3)  Mobil uygulamalara veritabanı sürücüsü (database driver) eklemek harici bir kütüphane olduğundan uygulamanın boyutunu artırır.

Uygun olan yöntem API veya Web Servisi kullanmaktır.

Fakat gerçek hayat bazen bazı uygun olmayan koşulları zorunlu kılıyor ve bir mobil ugyulamanın bir veritabanına erişmesi ihtiyacı ortaya çıkabiliyor. Bu durumda da Android'in framework altyapısı olan Java'nın veritabanı bağlanırlığı (JDBC) yardıma yetişiyor.

Yani Android cihazlardan JDBC ile veritabanlarına bağlanmak mümkün.

Android cihazlardan SQL Server'a bağlanmak için dikkat edilecek hususlar şöyle:


1) Android uygulamasına AndroidManifest.xml dosyasından internet izni vermek gerekiyor.
<uses-permission android:name="android.permission.INTERNET" /> 

2) net.sourceforge.jtds.jdbc.Driver sürücüsünü kullanmak gerekiyor. Microsoft'un kendi sürücüsü ile bu işlem gerçekleşmiyor.

3) net.sourceforge.jtds.jdbc.Driver sürücüsünün bağlantı şekline dikkat etmek gerekiyor. Örnek : jdbc:jtds:sqlserver://IP_ADRESI:1433;databaseName=VERITABANI_ADI

Bunların dışında normal JDBC bağlantısını aynen yapabilirsiniz. Örnek:


        Connection conn = null;
String url = "jdbc:jtds:sqlserver://IP_ADRESI:1433;databaseName=VERITABANI_ADI";
String driver = "net.sourceforge.jtds.jdbc.Driver";
 
String userName = "KULLANICI_ADI";
String password = "SIFRE";
try {
  Class.forName(driver).newInstance();
  conn = DriverManager.getConnection(url , userName, password);
  conn.close();
} catch (Exception e) {
   e.printStackTrace();
}

Android projenize SQL Server JDBC sürücüsünü kütüphane olarak tanıtmanın yöntemi de aşağıda mevcut (üzerine tıklarsanız büyük haline ulaşırsınız).




Bu şekildeki bir bağlantıyı yaptığım ve kendi lokal ağımda denediğim bir örneği aşağıdaki adresten indirebilirsiniz:

http://download.muharremtac.com/android_sqlserver.zip
 

2012

Ocak Şubat Mart Mayıs

2011

Ocak Şubat Nisan Haziran Temmuz Ekim

2010

Ocak Şubat Nisan Haziran

2009

Ocak Şubat Nisan Mayıs Haziran Temmuz Ağustos Eylül Ekim

2008

Ocak Nisan Haziran Temmuz Ağustos Eylül Ekim Kasım Aralık

2007

Şubat Mart Nisan Mayıs Haziran Temmuz Ağustos Eylül Ekim Kasım Aralık

2006

Ocak Şubat Nisan Ağustos

2005

Ocak Şubat Mart Nisan Mayıs Haziran Temmuz Ağustos Eylül Ekim Kasım Aralık

2004

Ocak Şubat Nisan Ağustos Eylül Ekim Kasım Aralık

2003

Ocak Şubat Mart Nisan Mayıs Haziran Temmuz Ağustos Eylül Ekim Kasım Aralık

2002

Ağustos Eylül Ekim Kasım Aralık



Gerçek bir arkadaş, iki gövdede yaşayan tek bir ruhtur.
Aristo


  
Bu site açık kaynak kodlu uygulamalar ve kütüphaneler kullanılarak yapılan mblog içerik yönetim sistemi ile sunulmaktadır.
© 2002 - 2012 Muharrem Taç
Sürüm : 5.4.8