"ekrem.yildiz" tarafından yazılmış yazıları görüntülüyorsunuz

Merhabalar,

Bir önceki yazımda shared preferences ile veri saklama metodundan bahsetmiştik. Bunun üzerine ekleme yaparak bir xml dosyasından kullanıcıya seçenek sunabileceğimiz bir preferences örneği yapalım. İlk olarak Preferences adlı yeni bir android projesi açıyoruz. Daha sonra main.xml de resimdeki TextView yerine bir tane buton koyalım. Bu butona tıkladığımızda başka bir sayfada olan seçenekleri getirelim.

 

 

 

 

 

Main.java dosyamızda eklemiş olduğumuz butonumuzu aşağıdaki gibi tanımlıyoruz

protected void onCreate(Bundle savedInstanceState) {

	super.onCreate(savedInstanceState);
	setContentView(R.layout.main);
	Button b= (Button) findViewById(R.id.button1);
	b.setOnClickListener(new OnClickListener() {
	        @Override
		public void onClick(View v) {
	        }
	});
}

Daha sonra butona tıkladığımızda çağıracağımız sayfamızı oluşturuyoruz. Bunun için Package Explorer penceresinden mevcut Package’ımız üzerinde sağ tıklayıp New->Class diyoruz. Yeni class’ın adını Preferences olarak veriyoruz.

Yeni sayfamızı oluşturduktan sonra, normal aktiviteden farklı olduğu için Preferences aktivitesini “import android.preference.PreferenceActivity;” ile import ediyoruz ve normal aktivitede olduğu gibi OnCreate eventini oluşturuyoruz. Bu işlem sonunda Preferences sayfamızdaki kod bloku aşağıdaki gibi olacaktır.

import android.os.Bundle;
import android.preference.PreferenceActivity;
public class Preferences extends PreferenceActivity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
       }
}

Bu işlemden sonra da çağıracağımız XML dosyasını oluşturmak için New Android XML diyoruz. Resimdeki gibi adını prefs.xml Resource Type’ını Preference olarak seçiyoruz.

 

 

 

 

 

 

 

 

 

 

Prefs.xml dosyamızı oluşturduktan sonra, xml içinde aşağıdaki kod blokları ile iki tane checkbox oluşturuyoruz.

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
    <CheckBoxPreference android:key="first"
        android:title="Seçenek 1"
        android:summary="Bu ilk seçenektir" />

    <CheckBoxPreference android:key="second"
        android:title="Seçenek 2"
        android:summary="Bu ikinci seçenektir" />
</PreferenceScreen>

Oluşturmuş olduğumuz xml dosyamızı Preferences.java dosyamıza yüklemek için Oncreate eventimizde aşağıdaki kodu yazmamız gerekecektir.

protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		addPreferencesFromResource(R.xml.prefs);
	}

addPreferencesFromResource ile xml klasörü altında bulunan tanımlamış olduğumuz prefs.xml deki verileri yüklemiş oluyoruz. Bundan sonra ise, AndroidManifest.xml de sonradan eklemiş olduğumuz Preferences class’ımızı tanımlamamız gerekiyor. Bunu ise AndroidManifest.xml dosyamıza <activity android:name=”.Preferences” /> ifadesini yazarak yapıyoruz. “.Preferences”  oluşturmuş olduğumuz class’ımızdır.

Son olarak Main.java dosyamızda butonumuza tıkladığımızda Preferences sayfamızdaki verileri getirecek kodumuzu aşağıdaki şekilde yazıyoruz.

public void onClick(View v) {
	Intent intent= new Intent(Main.this,Preferences.class);
	startActivity(intent);
}

Intent tanımlamasını da yaptıktan sonra projemizi artık çalıştırabiliriz. Projemizi çalıştırdığımızda aşağıdaki resimdeki gibi ilk önce Seçenekler butonunun olduğu ekran karşımıza gelecektir. Seçeneklere tıkladığımızda oluşturmuş olduğumuz Preferences classımızı gelecektir.

 

Preference’ın en ön önemli özelliği Seçeneklerden herhangi birini check’ini kaldırdığınıza o kaydedilecektir. Bunun için tekrar bir kod yazmanıza gerek yoktur. Projenizi tekrar çalıştırdığınıza nasıl seçili bıraktıysanız o şekilde seçenekler karşınıza gelecektir :)

 

Merhabalar,

Bu yazımda Android’te veri depolama metodlarından biri olan Shared Preferences’a ait bir örnek paylaşacağım.

Share Preferences veri tabanı gibi yüksek veri depolamalarda kullanılmasa da ufak verileri depolama ve erişme özelliği ile veritabanı yerine kullanılabilecek bir metodtur. İlk olarak Eclipse’de Shared_Preferences isimli bir proje oluşturuyoruz. Main.xml dosyamıza resimdeki gibi sadece giriş yapabileceğimiz bir EditText widget’ı ekliyoruz.

 

 

 

 

 

 

 

EditText widget’ını projemize ekledikten sonra Main.java dosyamızda aşağıdaki kod bloklarını yazmamız gerekecektir. Kod bloklarındaki comment ler ile ne işe yaradıklarından bahsedeceğiz.

import android.os.Bundle;
import android.app.Activity;
import android.content.SharedPreferences;
import android.view.Menu;
import android.widget.EditText;

public class Main extends Activity {
	private EditText et;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		et= (EditText) findViewById(R.id.editText1); //EditText1 widget'ımızı et'ye tanımlıyoruz.
		SharedPreferences setting=getSharedPreferences("Pref", 0); //SharedPreferences'ı oluşturuyoruz. Buradaki Pref dosya ismidir. Xml dosyası oluşturup bundan da çağırabileceğiniz gibi var olmayan bir dosyanın oluşmasını da bu şekilde sağlayabilirsiniz.
		et.setText(setting.getString("textvalue", ""));// textvalue burada keyvalue ü ifade etmektedir. textvaluedan sonra yaptığımız "" ifadesi EditText widget'ının ilk olarak içinin boş gelmesini sağlıyoruz.
	}
 //Şu duruma kadar projenizi ilk çalıştırdığınızda EditText widget'ının içinin boş gelmesini sağladık. Bundan sonra programdan çıkış işlemi yaparken widget içindeki ifadenin saklanmasını sağlamak için stop eventinde aşağıdaki kod blogunu yazacağız.
	@Override
	protected void onStop() {
		// TODO Auto-generated method stub
		super.onStop();
		SharedPreferences setting=getSharedPreferences("Pref", 0);
		SharedPreferences.Editor editor=setting.edit(); //Tanımlanan preferences'ta değişiklik yapmak için editor tanımlıyoruz.
		editor.putString("textvalue", et.getText().toString()); //editor'un putstring metoduyla EditText widgetımızdaki değeri saklıyoruz.
		editor.commit();
	}
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}
}

Projemizi ilk çalıştırdığımızda EditText widget’ının boş geldiğini göreceğiz. Daha sonra içine istediğimiz bir yazıyı yazıp Emulator’den “Back” tuşuna basalım. Bu uygulamadan çıktığınız anlamına gelmektedir. Eğer “Home” butonuna tıklarsanız çıkış işlemini yapmış olmazsınız. Back tuşuna bastıktan sonra Emulator’den uygulamayı tekrar açtığınızda resimdeki gibi yazdığınız yazının EditText widgetı içinde kayıtlı olduğunu göreceksiniz.

 

Biz bu örnekte basit bir Shared Preferences yöntemini uyguladık. Buna dair başka bir örnek te xml dosyası kullanarak, kullanıcının uygulamayı kaç defa açtığına dair sayaç kontrolü yapılabilir :)

Merhabalar,

Bu yazımda CreateJS Tool hakkında yaşadığım tecrübeyi paylaşmak istedim.

Öncelikle CreateJS Tool nedir ondan bahsedelim. CreateJS Tool’u Adobe Flash CS6 ya eklenti olarak sonradan indirebileceğiniz bir araçtır. Bu araç ile Flash’ta yapmış olduğunuz uygulamaları HTML5 formatında yayınlamanız mümkündür. Bunun için yapmanız gereken http://www.adobe.com/tr/products/flash/flash-to-html5.html adresinden bu aracı indirmek ve kurmak.

Kurma işlemini yaptıktan sonra Flash programını açtığınızda Window->Other Panels ->Toolkit For CreateJS seçerek resimdeki gibi bu toolun paneline ulaşabilirsiniz.

Buraya kadar her şey sorunsuz gözüküyor. Flash’ta yapmış olduğunuz bir uygulamayı ya da animasyonu bu tool aracıyla Publish ettiğinizde Adobe TV’nin sayfasında gösterdiği gibi sorunsuz HTML5′e çeviremiyoruz. Burada dikkat etmeniz gereken asıl şey mevcut dosyanız Actionscript 2.0 ‘da mı ya da 3.0′da mı geliştirildi.

Eğer 2.0′da geliştirildiyse File->Publish Settings’ten dosyanızın Target’ını en düşük Flash Player 9.0, Script’i de ActionScript 3.0 olarak değiştirmeniz. Daha sonra ActionScript 2.0′da yazılmış kodların 3.0′a uyarlanması gerekecektir. Sayfanızın tamamen ActionScript 3.0 olarak ayarlanmasını sağladıktan sonra bu tool’u kullanmanız gerekecektir. Yoksa tool pek bir işe yaramayacaktır.

Peki dosyamız ActionScript 3.0′da yapılmış bir flash dosyasıysa direk Publish işlemini yapmamız HTML5 formatını almamız için yeterli olacak mıdır? Maalesef ki hayır. Aslında burada hem bu tool’un yetersiz olması hem de mevcut browserların html5 desteğinin yetersiz olması sorun olarak karşımıza çıkıyor. Ben elimdeki ActionScript 2.0 dosyayı 3.0′a çevirerek bu işlemi yaptığımda Chrome’da sorunsuz çalıştırırken, Internet Explorer ve Firefox’ta sorun yaşadım. Daha önceki yazımda bahsettiğim gibi html5 desteği olmayan browserlar buna en büyük sebep aslında. Bunun kontrolünü http://html5test.com/ adresinden yapmakta yarar var.

Adobe her ne kadar böyle bir güzellik yapsa da, bana göre Flash’tan HTML5′e çevirmek için diğer tool’ları araştırmakta fayda var :)

Merhabalar,

Bir önceki yazımda mobil öğrenme’nin öneminden, avantajlarından ve bazı örneklerden bahsetmiştim. Bu yazımda ise mobil öğrenme ile ilgili bir çalışma yaparken stratejimiz ne olmalıdır  ve başarı faktörleri nelerdir ondan bahsetmeye çalışacağım.

Öncelikle her süreçte yapıldığı gibi Gereksinimi Belirleyin! kuralını unutmamız gerekiyor. Çünkü yanlış yapılan bir gereksinim çalışması sonradan başımızı çok ağrıtacaktır. Bir yazılım geliştirme sürecinde en önemli başarısızlık faktörlerinden biri gereksinim çalışmasının düzgün yapılamamış olmasıdır. Bu noktada konudan konuya değişecek olmakla beraber, süreçte kendimize aşağıdaki soruları sormamız gerekecektir;

- Hedef Nedir?:  Hedefimizi belirlememiz gerekli ki daha sonra yaptığımız bu yatırımın geri dönüşümünü hesaplayabilelim ve başarılı olup olmadığımızı görelim.

 

- Neden Mobil Öğrenme?: Neden süreçte mobil öğrenmeye yöneliyoruz? Bu ihtiyacın sebebi nereden kaynaklanıyor? Sorun tam olarak nedir? Başka seçenekler olamaz mı? Bu değerlendirmeleri yaparak önce neden mobil öğrenmeyi seçtiğimiz ile ilgili olarak kendimiz ikna olalım ki yöneticimizi de ikna edebilelim :)


- Eğitimde Karşılaşılabilecek Zorluklar Neler?: Karşılaşabileceğimiz zorlukları önceden belirlememiz daha sonradan ön gördüğümüz bu problemlere karşı çözümleri
de üretmemizi sağlayacaktır.

Yukarıdaki soruları ve daha fazlasını sorarak gereksinimi belirledik. Peki daha sonra ne yapmalıyız? Artık hazırlıklarımızı değerlendirmeliyiz. Bu noktada hedef kitle profilini incelemek, şirket içindeki mevcut öğrenme stratejisinin mobil öğrenmeye uygun olup olmadığını analiz etmek ( uygun olmazsa izlenebilecek yollar nedir belirlemek) vb. mevcut hazırlıklarımızı değerlendirmemiz gerekecektir.

Mobil öğrenme yapacağımıza artık ikna olduk ve bütün hazırlık çalışmalarımızı tamamladık. Peki sonraki adım nedir?

Bu adımımız Geliştirme Seçeneklerini değerlendirmek olacaktır. Geliştirme seçeneklerinde aşağıdaki başlıklara göre soruları sormamız uygun olabilir;

Flash mı HTML5 mi?: Mevcut durumda Flash ve HTML5′in savaşı devam ediyor. Peki biz Flash mı yoksa HTML5 mi içerik geliştireceğiz buna karar vermemiz lazım. Gartner’ın raporuna göre 2015’e kadar, 2011 yılındaki uygulamaların %50 si HTML5 olacak.

LMS: Mevcut LMS’imiz mobil desteği var mı? Varsa aşağıdaki soruları sorabiliriz;

  • Takip etmek istediğiniz veriler neler?
  • Bu veriler nasıl kullanılacak?
  • SCORM gerekli mi?

Geliştirme Ekibi: Çalıştığınız ekibin önemi her zaman yüksektir. Kim geliştirecek, Hangi geliştirme araçlarını kullanacak ve geliştirme sonrasında sürdürülebilirliği açısından kim destek verecek sorularını cevaplamamız hem geliştirme sürecinde hem de sonrasında bize kolaylık sağlayacaktır.

Ayrıca bunlara ek olarak İçerik Türü’nün (Informal, Formal içerik) belirlenmesi, Performans desteği, Güvenlik konularını(Rol tanımlamaları, şifre korumalı cihazlar)  unutmamız gerekiyor. 2015 yılına kadar internet kullanımının %85′nin mobil cihazlar üzerinden olacağını düşünürsek, mobil öğrenme tarafında yapılacak çalışmalar daha da artacaktır. Burada şirket içi bilgilerin korunması açısından güvenlik konusu da önemli bir durum olacaktır diye düşünüyorum.

Yukarıda bahsettiğimiz maddeler üzerinden gittik ve sorularımızın cevaplarını bularak çalışmamızı yaptık. Buna ek olarak çalışmadaki başarı faktörlerini  aşağıdaki başlıklarda da toplayabiliriz. Bu başlıklar başarının değerlendirilmesi açısından da faydalı olacaktır;

  • Mobil Öğrenme uygulanması için gerçek ihtiyacın belirlenmesi,
  • Kurum kültürü ve hazır olması,
  • Paydaşların bağlılığı,
  • Kullanıcıya uygun gerçek tasarımın sağlanması (It is the learner who is mobile),
  • Mobil uyumlu bir web sayfası,
  • LMS desteğinin olması,
  • Pilot çalışma yapılması ve değerlendirilmesi,
  • Kullanıcı geri bildirimlerinin alınması ve uygulanması,
  • Mobil öğrenmenin gerçek yararlarının sağlanması; çevrim içi ve çevrim dışı kullanım, uzmanlara erişim, paylaşım vb.
  • Her 3-6 aylık periyotlarda stratejinin tekrar değerlendirilmesi.
Kaynaklar:
M. BULUN, Eğitimde Mobil Teknolojiler, 2010.