Java :: Jersey ile RESTful Webservislere Eclipse, Maven ve Apache Tomcat Kullanarak Giriş Yapalım

Java ile RESTful webservice yazabilmek için kullanılabilecek araçlardan biri de Jersey. Bu yazının geri kalanında Java ile RESTful webservice yazma üzerine bir “hello world” sürecinin aşamaları anlatılacaktır. Platform olarak Java, IDE olarak Eclipse, management tool olarak Apache Maven, application server olarak Apache Tomcat ve REST için de Jersey kullanılmıştır. Devamını Oku

Android :: JSON Parse İşlemleri – 2

Android :: JSON Parse İşlemleri – 1 yazımdaki örneğin aynısını manual parsing yerine gson kullanarak parse etmeyi inceleyelim. google-gson [0] için proje sayfasında şöyle de bir açıklama mevcut:

Gson is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON string to an equivalent Java object. Gson can work with arbitrary Java objects including pre-existing objects that you do not have source-code of.

Devamını Oku

Android :: JSON Parse İşlemleri – 1

Bu yazıda Android SDK kullanarak bir URL‘den JSON veri çekip parse etmekten bahsedelim. Burada kullanılacak yöntem veriyi manual parse etmek üzerinedir. URL’de bulunan JSON’ı String olarak alıp, sonrasında bu String’den bir JSONObject oluşturacağız. Son olarak da oluşturduğumuz bu JSONObject‘i parse edeceğiz. Devamını Oku

Android :: Sayfalar Arası Veri Aktarımı – 1

Passing data between activities in Android

Android’te sayfalar arasında veri aktarmak için birden fazla yöntem kullanılmaktadır. Sıklıkla kullanılan bir tanesi de bir Bundle oluşturup verilerimizi onun içine depolamak, Bundle‘ı sayfa geçişi için kullanılan Intent‘e eklemek ve hedef sayfadan da Bundle‘ı alıp, içindeki verileri kullanmak. Php’de kullandığımız GET ve POST gibi.

Bundle kullanarak byte, byte array, char, boolean, String, int, long gibi temel türleri gönderebiliriz. Eğer bir Object göndermek istersek de, classımız Parcelable[0] ya da Serializable[1] interface’lerinden birini implement etmelidir. Devamını Oku

Android :: Webservisten Dönen İç İçe Yapıdaki XML’in Parse Edilmesi

How to parse the SOAP response with complex objects in Android
Android :: Ksoap2 Kullanarak Webservislere Erişme yazımda Android üzerinden webservislerin nasıl çağrılacağı hakkında bir şeyler yazmıştım. Oradaki örnekte gelen yanıtın derinliği 1’di ve parse edilecek tüm değerler aynı seviyede property’ler olarak gelmişti.

Eğer iç içe yapıda bir yanıt gelirse ya da gelen yanıt bir obje listesi olursa ve listenin boyutu önceden belli değilse ilk örneğimizdeki kod yetersiz kalacaktır. Bu gibi durumlarda ne yapmak gerektiğini bir örnekle inceleyelim. Devamını Oku

Android :: Ksoap2 Kullanarak Webservislere Erişme

İçerik: Android üzerinden webservislere erişim, gelen yanıtın parse edilmesi ve kullanılması.
Bu seferki yazım bir yıldan fazla zamandır sıkça kullandığım, Android üzerinden SOAP [0] webservislerine bağlanma ve kullanma konusunda kolaylıklar sağlayan ksoap2 [1] hakkında olacak. E-mail doğrulaması yapan public bir webservisi kullanan örnek bir uygulama üzerinden gideceğim. Devamını Oku

Java :: XML Dosyası Oluşturma

Java’da XML dosyası oluşturmam gerektiğinde bulduğum kodu, başkalarının da işine yarar umuduyla buraya da yazayım.
Amaç şu aşağıdaki formatta bir XML dosyası oluşturmak:

<sirket>
	<calisan id="1">
		<ad>İsim</ad>
		<soyad>SOYİSİM</soyad>
		<maas>1000</maas>
	</calisan>
	<calisan id="2">
		<ad>İsim2</ad>
		<soyad>SOYİSİM2</soyad>
		<maas>1000</maas>
	</calisan>
</sirket>

Devamını Oku

Java :: Email Regex

Üzerinde çalıştığım bir Android projesinde EditText alanına girilen e-mail değerinin gerçekten de bir e-mail adresi mi olduğunun kontrol edilmesi gerekiyordu. Bunun için aşağıdaki kodu bulup kullandım.

boolean isEmailValid(String email) {
		String expression = "^[\\w\\-]([\\.\\w])+[\\w]+@([\\w\\-]+\\.)+[A-Z]{2,4}$";
		CharSequence inputStr = email;

		Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
		Matcher matcher = pattern.matcher(inputStr);
		return matcher.matches();
	}

Girilen tüm değerleri doğru test ediyor mu bilemem ama benim işimi görecek kadar iyi çalışıyor. Aşağıdaki kod bloğu ile test ettiğimde;

		ArrayList addresses = new ArrayList();
		addresses.add(" ");
		addresses.add("test");
		addresses.add("test.com");
		addresses.add("test@com");
		addresses.add("test@test.com");
		addresses.add("test@test.com.");
		addresses.add("test@test.com.tr");
		addresses.add("test.test@test.com.tr");
		addresses.add("test@türkçe.karakter.tr");

		for (int i = 0; i < addresses.size(); i++) {
			System.out.println(addresses.get(i) + " :: "
					+ isEmailValid(addresses.get(i)));
		}

şu aşağıdaki çıktıyı verdi:
:: false
test :: false
test.com :: false
test@com :: false
test@test.com :: true
test@test.com. :: false
test@test.com.tr :: true
test.test@test.com.tr :: true
test@türkçe.karakter.tr :: false

Yeniden anlamış olduk ki regular expressions hayat kurtarır :)
Kaynak: zparacha.com

Java :: Objelerin Sıralanması

Java’da List, ArrayList, Set vb Collections framework yapıları ve bunların metodları (add, remove, sort vb) sağladığı kolaylıklar sebebiyle bolca kullanır. Örneğin bir ArrayList içinde String ya da Integer tipinde nesneler varsa ve bunları sıralamamız gerekiyorsa Collections.sort(liste_ismi); şeklinde bir kullanımla listeyi sıralı hale getirebiliriz. Buna küçük bir örnek verelim. Aşağıdaki kod parçası bir ArrayList oluşturup içine 5 tane String tipinde eleman ekliyor, elemanları sıra ile konsola yazdırıyor, sıralıyor ve son olarak sıralı listeyi konsola yazdırıyor. Devamını Oku

Android :: SdCard İçinde Alt Klasör Oluşturma

Android’in veri saklama yöntemleri ile alakalı daha önce Android :: Shared Preferences yazısını yazmıştım. O listedeki external storage cihazın harici hafızasına, yani şimdilik sd karta tekabül ediyor.

Üzerinde çalıştığım projelerin birinde mp3 dosyalarını saklamam gerekiyordu. Sayısı birden fazla ve her birinin ortalama boyutu 10 mb civarında mp3 dosyalarını dahili hafızaya ya da uygulama paketi içinde bir yerlere yazsam kısa süre sonra cihaz kullanılmaz hale gelebilir. Bu durumda çözüm olarak dosyaları sd kart üzerine yazmaya karar verdim (Umarım doğru bir karar vermişimdir :) Devamını Oku