EcaHack Hackathon @ Android Developer Days 2013 Ardından

Üşengeçlikten dolayı neredeyse bir ay sonra da olsa sonunda yazıyorum :)

14-15 Haziran 2013’te, ODTÜ’de gerçekleşen Android Developer Days [0] içinde EcaHack Hackhathon [1] düzenlendi. Mikail [2] ile birlikte katıldığımız yarışmada Jüri Özel Ödülünü [Alcatel One Touch Scribe HD] kazandık. Grubumuzun ismi de Dio oldu (evet Ronnie James Dio anısına). 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

Android :: Enable / Disable Wifi

Android cihazın wifi durumuna erişip, ağa bağlı mı değil mi kontrolü yapan ve wifi durumunu etkinliştirip / devre dışı bırakan basit bir sayfa için aşağıdaki metodlar kullanılabilir. Metodların çalışabilmesi için wifi durumuna erişim ve wifi durumunu değiştirebilme izinlerini manifest dosyasına eklemek gerekir.

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

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

Android :: ADB Connection Timeout Problemi

İlki bir önceki yazım olan ve yalnızca 2 yazıdan oluşan muhteşem yazı dizime (Eclipse & Android SDK kullanırken karşılaştığım hatalar) kaldığım yerden devam ediyorum. Bu sefer uygulamayı cihaz üzerinde çalıştırmak istediğimde aldığım hata ve google amcanın yardımıyla kavuştuğum çözümden bahsedeceğim. Hata aşağıdaki gibi: Devamını Oku

Android :: AVD Başlatılamaması Problemi

Android SDK ve Eclipse ADT Plugin’ini güncelledikten sonra daha önce yaratmış olduğum AVD’lerden bir tanesini çalıştırmak istediğimde aşağıdaki gibi bir hata aldım.
invalid command-line parameter: Files.
Hint: use '@foo' to launch a virtual device named 'foo'.
please use -help for more information
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